ベストアンサー ランダムって何ですか? 2010/04/25 07:56 ランダムって何ですか? 人間がランダムにするなら サイコロをふったり、袋の中から数字を取り出します。 でもコンピュータはどうやってランダムに 数字を選ぶのですか? 詳しい人教えてください! 画像を拡大する みんなの回答 (3) 専門家の回答 質問者が選んだベストアンサー ベストアンサー edomin7777 ベストアンサー率40% (711/1750) 2010/04/25 08:14 回答No.2 コンピュータの中で乱数を取得するには、「擬似」乱数という乱数「みたいな」数を使用します。 これは、色々なアルゴリズムがあるのですが関数を使用して乱数風の数を出力させることで取得します。 擬似なので、本当の意味での乱数では無いのですが、コンピュータ上で使用するには問題ない程度にランダムな数字が返ってきます。 ただし、通常の擬似乱数はあくまでも関数の戻り値として取得するので、初期値のままで何もしなければ常に同じ乱数(同じ順番の数)を返します。(内部的に処理をしているのものを除く。)なので、乱数を発生させる関数に別の値(例えば、今の時間とかコンピュータの内部時計の時間等)を与えることによって色々な乱数を取り出しています。 「擬似乱数」で検索すると色々なアルゴリズムが出てきますよ。 質問者 お礼 2010/04/25 13:34 つまりコンピュータのランダムとは、 ランダムに見せた計算(疑似乱数)なのですね。 総括的なお答えだったのでベストにさせていたただきました。 回答いただきありがとうございました! 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (2) debukuro ベストアンサー率19% (3634/18947) 2010/04/25 08:24 回答No.3 簡単な方法はメインメモリーの内容が勝手に消えないようにするためのリフレッシュメモリーの値を取り出すのです メインメモリーのどこを読み出しているかはユーザーには分からないので乱数と見なせます 本当の乱数ではないので同じ間隔で連続して取り出すと周期性が出てきます 質問者 お礼 2010/04/25 13:36 リフレッシュメモリーの値でつくる方法もあるのですね。 回答ありがとうございました! 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 number44 ベストアンサー率27% (20/72) 2010/04/25 08:10 回答No.1 いろいろとやり方はありますが、基本的には計算で求めます たとえば、「関数y=F(x)のxに何か数字を入れて、yの一の位を出力する」といったカタチで求めます。 「F(x)=3.3x+2の一の位とする」 と取り決めて、 今、10時20分35秒だとして、x=102035とします すると、 F(x=102035) = 3.3*102035+2 = 336717.5 よって、ランダムの数は「7」のような形で出力します。 実行するときの時間(xの値)が変わることで様々な数字が出力されるようになります。 これをランダムとして選びます。 ほかにも色々とやり方はありますが、基本的には計算で求めています。 質問者 お礼 2010/04/25 13:40 時間の値によって計算する方法があるのですね。 回答ありがとうございます! 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピューターその他([技術者向] コンピューター) 関連するQ&A ランダムというのは、本当にランダムなの? サイコロを振って出る目は1/6と言っても、 それぞれの面の凹んだ部分、黒と赤の塗料の量、使い込んだ擦り減り、 落とした後の回る時間などで、 本当のランダムな結果ではないという考えがあります。 コンピューターが1~6までの数字をランダムに出す場合、 それは本当にランダムなのでしょうか? 結果を出すまでの過程でクセは無いのでしょうか? 例えば、プログラムAでは、1万回やって、ようやく出た目がそれぞれほぼ同じ回数になったり、プログラムBでは、1万回やっても、多く出た目と少ない目の回数が意外に開きあるとか。 そういうことはあるのでしょうか? 回路の中の微小な抵抗の違いにより、文字認識のし易さとか(例えです)、 どこかで、公正ではなく影響してるなどありうるでしょうか? ランダム性について教えてください。 サイコロを10回投げたとき、 1,1,1,1,1,1,1,1,1,1 と出たら、ランダム性に対する疑いが高く、 1,4,6,6,3,1,4,2,2,5 などと出たら、ランダム性に対する疑いが低いのでしょうか。 両者とも生起確率は同じだと思うのですが・・・・。 考え方をご教示ください。 ランダムで数を表示するには C言語を覚えたてなんですが 計算や変数を代入などは本にやり方が書いてあってわかったのですが たとえばサイコロやルーレットのプログラムを作るとして 1~6の数字がランダムででるようなプログラムをつくるには どうすればいいのでしょうか? また1が50%で、2が25%、3が10%で4~6が5%づつとか 出る確率を設定することとかも出来るのでしょうか? ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム サイコロのような機能 サイコロのようにランダムに数字を選ぶことのできる機能はないでしょうか。例えば1-200までの中からランダムに数字を1つ選ぶといったような。 円周率ってランダムなんですか? 人間が作るRAND関数などは知っていますが、何か癖や傾向があるのは知っています。サイコロを振るにせよ、人間の癖そのた環境のかかわりが0ではないので完全なランダムではありません。 しかし 円周率は完全なランダムなのではないですか? 3.14あたりまでは、あれとしても 3.14159・・・と、小数点以下で最大の9をとっていますよね。 ということは、9の出現以降は、もうランダムとみなしてもいいのではないでしょうか? 人間が覚えてしまっただけであって、今何億桁まで計算されてるらしいですが、 まだ未判明の次の桁は、0~9まで完全なランダム(10%ジャストの確率で出現) といえるのではないでしょうか? その途中で、たとえば1111111111111111・・・・とか1が300個ぐらい連続で続いたとしても それはランダムとしてありえるわけですし あと無理数って全部ランダムとみなしていいんでしょうか それとも、そもそも真性のランダム数などというものが存在のでしょうか。 ランダムに抽出 例えば、「1~20までの数の中からランダムに3つの数字を抜き出す」っていうのはエクセルの関数でできるんでしょうか? もしできれば教えて下さい。 本当のランダムってあるの? 本当のランダムってあるんでしょうか? 全く同じ条件でやっても違う結果が出るというものです。言い換えれば、1回やったあとに時間を巻き戻してもう1回やっても違う結果になるものです。サイコロなんかではダメですよね。 もし本当のランダムが存在しないのなら未来は1つに決定すると私は考えていて、それゆえに気になるのです。教えて頂きたいです。 エクセルでランダムに数字を並べる エクセルでランダムに数字を並べる方法を教えて下さい。 1から10のマスの中に1から10の数字をランダムにいれたいのです。 但し、一度使った数字は2回使えないようにします。 このルールでわかるでしょうか? 不明な点は時間のある時に補足します。 ランダムで抜き出した数字を更に抜き出す 0から19までの数字があるとして、その数字のうち仮に5つをランダムで抜き出します。 次に例えばボタンなどを押すと、その抜き出した5つの数字を除く数字を ランダムで更に5つ抜き出すというようなスクリプトはどのようにすれば できますか? もしくは、この場合ですと、0から19までの数字をランダムで並び替え、 その並び替えた数字を、例えば5つずつ表示するという方法でもいいと思うのですが いずれの場合も方法がわかりません。 for文はいまいちうまくできません。よろしくお願いします。 なぜ設定をランダムに入れないのですか? スロットの設定を予測とかしてみたいのですが よく考えたら「サイコロとかでランダムに変えたほうが店側にとっては読まれにくくていいんじゃないか?、なぜわざわざ癖をだして設定を打つんだろう??」という疑問がわいてきました。 よかったらどなたか教えてくれませんか? ランダム関数で任意の桁数のランダム数字を作りたい エクセル2000ユーザーです。ランダム関数を使い、重複を許さない5桁のランダム数字を1000個作りたいと思っています。randbetween関数を使おうと思ったのですが、2000では使えないのか、NAMEといったエラー表示がでます。5桁の中は同じ数字がでてきても構いません。例:11295、43634、70676・・・etc。 が、1000個の中では同じ数字が重複しないようにしたいです。 =RIGHT(RAND(),5) のように考えたのですが、他にいい方法はありますでしょうか? マクロやVBAは苦手なので、できれば関数でいいやり方があれば教えてください。 英数字をランダムに表示 適当な英数字 例えばk48xa7とかを作りたいのですが (パスワードとかのため) 自分でやると同じようなふうになってしまうのです。 サイコロみたいに0~9、a~zをランダムに 表示するみたいなやつネット上にありませんか? サイコロはあるのですが... AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム 理論的に「ランダム」は存在するのか この世に、単一の入力からランダムに複数の結果を出力しうるシステムというのは存在するのでしょうか。自然的人工的には存在しなくても、理論的(または論理的)に存在したりはしないものでしょうか。 あるならば、それは具体的にはどういうものでしょうか。 それとも、悪魔の証明になってくるのでしょうか。 (「電子の運動はランダムである」と聞きかじったことがありますが、このランダム性は証明されているのでしょうか。電子の運動は確認されるまで決定できないがランダムであると証明されてはいない、というのであれば、なんらかの(ランダムでない)電子なりの規則が存在する可能性があるが、現状は悪魔の証明ということになると思います。) サイコロはランダムのシステムでないと考えている理由は、サイコロの振り方という“入力”が、毎回単一である状況が有り得ないからです。(仮にそういう状況(つまり手の形から地面の形状からそのときの重力まで)があれば同じであれば、出る目も同じであるはずです。サイコロはむしろカオスです。) 工学的にはプログラム言語のrandom()関数でも使えばランダムの値は得られますが、実際はこれは単一入力ではなく、暗に引数として時間のミリ秒・マイクロ秒を利用していると聞いています。 もしランダムが存在しない場合は、人間の思考も物理現象に帰結され、またアニミズムを否定するという立場をとれば、今の世の中がこうであるのは必然なんだなと思います。つまりそれは、ある時間、たとえばビッグバンが起きたその時における全宇宙(あるいは宇宙外を含めて)の空間次元の全ての運動を初期状態ととりそれを再現できるとすれば、何度その初期状態から繰り返しても、それから137億年経てば、私は今現在このように"教えてgoo"というサイトで質問を書き込んでいるのではないか、ということです。 (哲学というか電波じみて感じる方もおられるかもしれませんが、そういうつもりはないのです。こうならねばおかしいと思います。) また昔のゲーム機などではどのように乱数を出力しているか、とかにも興味があります。余談のような形でランダムについて知ることがあれば教えていただければ幸いです。 投稿があっちゃこっちゃしてすいません。 あくまで主題は1行目ですが、この投稿の中で何か引っかかる知識があれば、多様なお話をしていただきたく思います。 投稿者は、難しそうに書きながら浅学であることは見て取れると思いますので、どうぞ易しくお願いしたいと思います。(笑) ランダムな数字の生成 PHP4で1~20の数字の中から10個の数字をランダムに抽出したいのですが、抽出する際にダブりがないようにしたいのですが、いい方法はあるでしょうか? 抽出した数字がすべて異なる数字になるようにしたいです。よろしくお願いします。 0から99の数字をランダムに並び替えたいのですが・・ 0から99までの数字をランダムに並び替えて、 89 42 19 35 2 94 12 .... のような数字の列を得たいのですが、どうすればよいでしょうか?一見、簡単そうなのですが、つまずいています。 最初思いついたのは次の方法です。 以下を i=0 から i=99になるまで繰り返す。 (1) tmp = (int) 100 * Math.random(); と 0~99の乱数を発生させる (2) a[0]~a[i-1]の中にxと同じ値が無ければ a[i] = x;と代入。同じものがあったら (1)に戻る。 (3) i = i+1; この方法だと、i=98の時は、ほとんどの場合「a[0]~a[i-1]の中にxと同じ値がある」ことになってしまい、iが増えるごとにスピードが落ちます。 100個くらいの数字なら良いのですが、100000000個の数字だと非効率な気がします。 みなさんどうなさっているのでしょうか? EXCELで、ランダムに数字を出したい EXCELで、縦横5×5のセルの中で、ランダムに25までの数字を入れたい。どのようにすればよいのでしょうか。 ランダムはどう起こりうる?? MP3プレーヤーを聞いていてふと思ったんですが、 シャッフルってどうなってるんでしょうか?? トラックが1~13まであるとして、8を再生して、その次は3、となるときの「意思決定の根本の理由」は何なのでしょう? Lingoと言うプログラムをしたことがあるのですが、そのランダム設定をするときは、ルールをつかい1~13までの数字を打ち込むだけだったんです。 ランダムを作る数式があるとYahooの質問で探したのですがあまり理解できませんでした。割る方式で余りの数字がどうだとか。。 直感的に質問したのでわかりにくいかもしれませんが、わかりやすく教えていただけるかた、ご教授お願いします! ACCESSでのランダムのレコード抽出 例えば100件のレコード(100個の数字)があり(その中には重複する数字も存在します)、その中から10件をランダムに抽出する、という作業がアクセスで可能でしょうか?1 出る目がランダムの場合、ランダムに賭けた場合とそうでない場合とでは、当たる確率はどちらが上か? ある本でこうありました(簡単にするために省力していますが) 1から10の数字が書かれた箱の中に当たりが入っているという、簡単なゲームがあります。 当たりを引けばWINです。 どの番号の箱を当たりにするかはランダムで決めます(無作為)。 何回でもいいのですが、わかりやすくするためにこのゲームを10回続けるとします。 ここから本題なんですが、この箱の当たりを引こうとする場合、ランダムで1から10の数字の箱を選ぶ場合と、どれかの数字の箱を選び続ける場合とではどちらが当たる確率が高いのでしょうか? エクセルでアルファベットのランダム ランダム関数で数字をランダムに入力する事が可能だと思うのですが、 数字ではなく、アルファベットのランダムで入力したいのですが、なにか方法はあるでしょうか?? 関数じゃなくても、他の方法でも、ご存知の方いらしたら教えてください。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター OS(技術者向け) データベース プログラミング・開発 業務ソフトウェア ITシステム運用・管理 その他([技術者向] コンピューター) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
つまりコンピュータのランダムとは、 ランダムに見せた計算(疑似乱数)なのですね。 総括的なお答えだったのでベストにさせていたただきました。 回答いただきありがとうございました!