プログラミングの乱数のしくみってどうなってんの?

1 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:32:38.312 ID:5UdmJfpC0
どうやってランダムな数字を出してんの?
不可能じゃね?w
2 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:33:20.838 ID:u1Oz7BvId
そうだよ
実際、厳密には乱数ではない
3 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:34:07.383 ID:5nNQK18Kd
まず初期シードを作ります
4 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:34:12.454 ID:MAA3ye8X0
線形合同法やらXorshiftやらメルセンヌツイスタやらあるから好きなの選べよ
5 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:35:13.262 ID:7goTgIsX0
Xorshiftはほんとの天才
6 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:35:25.042 ID:rm+M18d80
パッて思い付いたのを表示してるだけだろ
7 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:36:41.559 ID:5nNQK18Kd
GBAのFEがXORしたりshiftしてたな
おれ再現できなかったわ
9 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:39:47.032 ID:qzsIKJxV0
シードを与えると、ある数式に従って人間にはランダムとしか思えない数列を生成する
だけど、使い続けると規則性がばれるリスクは一応ある
だから、シードを再度与えればよい
そして、シードをランダムに生成することで真の乱数が実現されている

素人は「シードをランダムに生成する」ことができないと勘違いしているが可能

10 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:44:29.023 ID:/U6RifeEM
>>9
そのシードのランダムさにも規則性あるんだよね?
長周期的にみたらランダムではなくなるってこと?
11 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:44:42.605 ID:2gdllplS0
>>9
シードのランダム生成は真の意味でランダムなの?
12 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:46:04.551 ID:rm+M18d80
シードが真のランダムだったらそのシードだけでいいだろアホかw
15 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:48:16.818 ID:qzsIKJxV0
>>12
アホだなあ
そうしない理由もちゃんとあるぞ
無礼なアホには教えんけど
19 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:49:32.129 ID:rm+M18d80
>>15
いやアホはお前w
どこで検索してきたか知らんが知りもしない分野で知ったかするのはやめとけ
22 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:49:57.861 ID:/QbhQOl90
>>15
盛り上げてくれてるんだとおもって馬鹿正直に腹立てんな
26 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:51:17.008 ID:qzsIKJxV0
>>22
うっざあ
13 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:47:35.678 ID:laaUrChN0
真の乱数がほしいなら量子乱数生成器使っとけ
16 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:48:54.579 ID:zxTJKqMRa
なるほどわからん
17 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:49:13.189 ID:UD1WlVUh0
色々あるけど一般的なのはパソコンの起動からの時間を使ったヤツと読んだ
多くの乱数には著作権があるとかないとか
20 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:49:39.521 ID:tCQJTDRm0
>>17
それ一番アカンやつやん
27 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:51:26.122 ID:UD1WlVUh0
>>20
別に乱数をそのまま使わなきゃいいだけの話
18 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:49:21.930 ID:tCQJTDRm0
すべてを説明すると何も分からなくなる呪われた子どもたち
23 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:50:01.128 ID:YHJBlfKf0
ランダムにランダムな数字出してる
24 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:50:49.039 ID:qzsIKJxV0
ちなみに、普通のプログラムでは時間をシードにするだけで十分
31 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:53:44.881 ID:tCQJTDRm0
>>24
そのくらい予測可能にしといたほうが、ゲームとかでは裏技の余地があって楽しいかもな
36 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 15:00:57.709 ID:kko2Rs3v0
>>31
予測可能って言ったって使ってるのはミリ秒単位とかでコントロールは実質不可能なんじゃないの
38 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 15:03:47.261 ID:tCQJTDRm0
>>36
ミリ秒くらいプロゲーマーだったら何とかしちまいそう
25 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:51:06.091 ID:l9JTX/CM0
円周率から乱数取りに行った時間のミリセカンド番目の数字取ればいいんじゃね?特許取るわ
28 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:52:43.322 ID:tCQJTDRm0
Linuxカーネルの/dev/randomと/dev/urandom、どちらを使うべきか問題あったな
サーバー機には必ずハードウェア乱数発生機が搭載されるようになったのも
トラフィックの多いTLSサーバーがあっという間にエントロピープールを消費してしまうからだった
30 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:53:18.472 ID:W895GeCQ0
srand(clock())
rand()
でええやん
32 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:53:45.380 ID:UD1WlVUh0
乱数が無いと暗号化もできぬ・・・
33 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:55:40.132 ID:zvGLNV4N0
その都度PCの時計の小数点以下1桁を拾えば0~9の乱数得られるだろ
34 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 14:58:14.935 ID:5UdmJfpC0
めちゃくちゃ勉強になった
サンキュー
35 名前:ひみつの名無しさん 投稿日時:2020/09/30(水) 15:00:35.921 ID:3c5CITgX0
乱数表がはいってんだよ
もしくは中のおっさんが思いついた数

コメント

タイトルとURLをコピーしました