ハードウェアのところで質問しようと思いましたが、
サーバと書いてあったので、こちらにしました。
プログラミングにはランダム関数というものが、必ず(とは言えないかもしれませんが)あると思います。しかし、この内部構造はどうなっているのでしょうか。
PC内部が電圧で振り分けられて、スイッチがONになったりOFFになったり、もしくは0と1の世界…といった表現で説明されていますが、そういった事は意味は多少わかっているつもりです。
ランダム関数は、数値を適当に返してくるわけですが、この適当なデータをどのように、内部的物理的に発生させているのでしょうか。
ゲームなどでは必需品の仕組みですが…簡単に説明していただけないでしょうか。検索しても物理的なことを説明しているWebページは、案の定見つかりませんでした。
わかる方がいましたら、よろしくお願いします。
No.2
- 回答日時:
コンピュータは0,1で判断するので、
乱数も計算で求められていると思いますよ。
詳しいHPは見つかりませんでしたが、疑似乱数と
いう概念です。
だから、物理的には、普通の計算と変わらないか、と。
計算で乱数表を作って、それに従って数値を打ち出し
てるんだと思います。
ただ、本当の乱数というのは、けっこう難しく
昔、エクセルで0~9までの10000個の乱数を作り、
平均したりそれぞれの数を数えたりもしましたが、
けっこうばらつきがありました。
3.14・・・・・・の計算からも、いい乱数ができる
みたいです。
参考URL:http://homepage3.nifty.com/mmgames/c_guide/22.ht …
No.3
- 回答日時:
No.1さんが言っている通り、ランダム関数が返してくる数字は、内部にある乱数表を参照しています。
ですから、プログラムの作り方(ランダム関数の呼び出すタイミング)によってはプログラムを実行する度に同じ数字を返してきます。勿論、これに関しても参照できる乱数表が何パターンか用意されており、参照するパターンを変更する事で返してくる数字を変更出来る様になってます。
No.4
- 回答日時:
色々方法はありますが次のような擬似乱数がよく使われます。
混合合同法(mixed congruential method)
下の式に適当な a、p、q を代入する(必要な桁数が採れれば何でも良い)。
求まった a' の中間あたりの必要な桁数を乱数として採用し、それを新たな a として、
再び下の式に代入する。
ap + q = a'
(例)5 桁の擬似乱数を作ってみる。ただし、最初は a = 14992、p = 673、q = 944とし、求まった a' の、十の位から十万の位までを採用することとする。
14992×673+944 = 10090560 → 09056
09056×673+944 = 06095632 → 09563
09563×673+944 = 06436843 → 43684
43684×673+944 = 29400276 → 40027
40027×673+944 = 26939115 → 93911
…
こうして、擬似乱数列 {14992, 9056, 9563, 43684, 40027, 93911, …} を得る。
参考URL:http://ja.wikipedia.org/wiki/%E7%96%91%E4%BC%BC% …
No.5
- 回答日時:
擬似乱数といえば、メルセンヌ・ツイスターではないでしょうか。
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/ …
参考URL:http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/ …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- 物理学 『数か物か』 4 2022/06/13 06:54
- 哲学 説得力を修辞の巧みさまたは論理の強さの2つに分析するにはどうすると良いでしょうか? 0 2022/07/20 05:46
- その他(ネットショッピング・通販・ECサイト) 詐欺サイトでの返金について 6 2023/02/08 12:18
- Excel(エクセル) ランダムで四択の問題を作る場合にvbaで何を学べばいいでしょうか。 1 2022/04/14 16:45
- その他(ネットショッピング・通販・ECサイト) ネット通販にて 日本語説明書なし と記載がある組み立て式の物を購入したのですが、説明書自体が入ってお 3 2022/05/20 18:57
- 数学 特定の座標点を通る回帰を行う方法について。 2 2022/10/10 10:27
- ドライブ・ストレージ HDDの代替処理保留中のセクタ数と回復不能セクタ数について 7 2023/06/06 13:15
- 電気・ガス・水道 パイロットスイッチの電圧降下について 3 2023/03/05 01:14
- 転職 転職経験のある方に質問です。 4 2022/05/13 03:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
Matlabでのinverse(逆関数)の...
-
エクセルVBA 他の仕事を止...
-
数値計算の高速化 (cos, sin, exp)
-
0xf0=256?
-
10進数から8進数へ
-
VBAで・・・
-
Perlで時間の計算
-
VBAでの勤務時間計算
-
【fortran77】データ行数のカウ...
-
円の最小二乗法のプログラム
-
Perlでのルートの計算
-
C言語プログラムの問題なのです...
-
ScilabのRUBYインターフェース
-
EXCELなどで「返す」という表現
-
VBAの再計算が反映されない件に...
-
GDLでH8/3052Fのi2cプログラム...
-
正しい五十音順について
-
Notepad++の関数リスト表示でC...
-
プログラムの勉強のおすすめは
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
排他的論理和 BCC(水平パリテ...
-
EXCELなどで「返す」という表現
-
C言語の課題で、1年の秒数を計...
-
バッチファイルでウインドウを...
-
骨折リスク評価のFRAXについて...
-
変化させるセルが変化しない
-
CとFORTRANの計算速度はどちら...
-
数値計算の高速化 (cos, sin, exp)
-
なぜオーバーフローになるので...
-
C# 計算処理中に実行中ウィン...
-
モジュラス103の計算とは何でし...
-
モジュロ
-
引き放し法による除算アルゴリ...
-
C言語についてです。 再帰を使...
-
60進数の四則計算
-
Perlで時間の計算
-
CRC8を教えてください
-
傾いた四角形内の範囲の条件式
おすすめ情報