OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

乱数ってなんですか?

  • すぐに回答を!
  • 質問No.215007
  • 閲覧数139
  • ありがとう数3
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 37% (14/37)

なんどもすいません。配列のはなしなんですが、まずAという配列の中の0~10番目の中身をランダムに動かして、Bという配列に再編成させたいのですが、
乱数を使えば簡単になるよと知り合いにはいわれたのですが、乱数がどうゆうもの
だかあまりよくわかりません。
自分は今VC++のMFCで作ってるのですが、乱数自体がわからないので教えてください。
それとこの方法でいくと日本語の時は配列を2個づつランダムに変えることになると思うのですが、それはぜんぜん予想もできません。教えていただけると助かります。お願いします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.4
レベル14

ベストアンサー率 30% (2593/8599)

皆さん、お答えが難しすぎるみたいですね。
「乱数」と言うのは、「サイコロ」を振ると言うのと同じです。
例えば、既に回答の出ている rand関数を実行するとコンピュータがサイコロを振ってその答えを返してくれます。

rand関数の答えは(言語によって違いますが)ここでは0<=n<1と言う事にしておきましょう。

小数点以下10桁で近似すると0.0000000000~0.9999999999と言う事になります。

ここで1~50の乱数が欲しいとします。
このときは INT(乱数*50)+1とすれば(0~49)+1で目的が達成されます。INTは切り捨て(正のときのみ)

> すると、呼ぶたびに違う値といってましたが同じ数字が来りはしないのでしょうか?

「サイコロ」ですから同じ数字も来てしまいます。これを防ぐ方法(テクニック)は有ります。3日前の質問の回答を見てください。(下記URL)

同じ悩みを持つ人は多いのです。
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル10

ベストアンサー率 23% (43/184)

乱数というのは簡単に言うとでたらめな数なんですが、実際にはちゃんと計算したりしないとうまくでたらめになってくれません(計算だけでなくハードウェアの状態を拾ったりしてそれを含めて計算しているのもあります)。で、C言語だと rand() という関数があります。それと乱数計算の種になる値を与えるための srand() という関数があります。(コンパイラ付属のライブラリはこれだけではないと思います。調べてみてくだ ...続きを読む
乱数というのは簡単に言うとでたらめな数なんですが、実際にはちゃんと計算したりしないとうまくでたらめになってくれません(計算だけでなくハードウェアの状態を拾ったりしてそれを含めて計算しているのもあります)。で、C言語だと rand() という関数があります。それと乱数計算の種になる値を与えるための srand() という関数があります。(コンパイラ付属のライブラリはこれだけではないと思います。調べてみてください)。

で、要するに rand() 関数は呼ぶたびに違う値を返してくるんです。ライブラリによっても違うかも知れませんがたとえば 0 から 0x7fff の間の値を返してくるようになっていて、その値を利用して 0 から 9 までの範囲にする場合こんな計算をしたりします。

int n = rand() * 10 / 0x8000;

意味わかりますよね? rand()が 0 ~ 0x7fff の内の何れかを返すのであれば上記の計算結果は 0 ~ 9 になります。
補足コメント
channel6

お礼率 37% (14/37)

返事ありがとうございました。内容は半分ぐらいは理解できましたがわからないとこもあるので聞こうとおもいます。
まず、配列での話となるんですが、この書いてもらったやり方で0~9
までの数字をfor文で回して、ひとつづつ新しい配列に添え字を入れていくと
すると、呼ぶたびに違う値といってましたが同じ数字が来りはしないのでしょうか?
投稿日時 - 2002-02-10 02:33:15
  • 回答No.2
レベル11

ベストアンサー率 33% (102/305)

乱数というのは0以上1未満で、コンピュータがランダムにはじきだす数値です。 この乱数に特定の数字(例:100)をかけると、 0以上100未満のばらばら不規則な数字を出すことができます。 例えば、ロトくじやナンバーズ予想、パチンコの当り確率などに応用します。
乱数というのは0以上1未満で、コンピュータがランダムにはじきだす数値です。
この乱数に特定の数字(例:100)をかけると、
0以上100未満のばらばら不規則な数字を出すことができます。

例えば、ロトくじやナンバーズ予想、パチンコの当り確率などに応用します。
  • 回答No.3
レベル9

ベストアンサー率 33% (33/98)

>乱数 規則性のない数列のことです。 現在のコンピュータで「規則性のない数列」を作ることは出来ないので、非常に規則性の少ない(周期の長い)数列を作る方法を用いて、「疑似乱数」と呼ばれる物を利用していますが、通常、それをも含めて乱数と言います。 Cであれば、stdlib.h に含まれる rand 関数などを利用します。 配列の並べ替え等々については過去に質問があると思うので検索してみてくださ ...続きを読む
>乱数
規則性のない数列のことです。
現在のコンピュータで「規則性のない数列」を作ることは出来ないので、非常に規則性の少ない(周期の長い)数列を作る方法を用いて、「疑似乱数」と呼ばれる物を利用していますが、通常、それをも含めて乱数と言います。

Cであれば、stdlib.h に含まれる rand 関数などを利用します。

配列の並べ替え等々については過去に質問があると思うので検索してみてください。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ