[過去ログ] JavaScript の質問用スレッド vol.125 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
138: デフォルトの名無しさん (ワッチョイ e333-w8uH [59.190.185.6]) [sage] 2022/10/28(金) 14:20:33.37 ID:dQ+2i/bt0(1/3) AAS
乱数の生成について質問です。
日付をシードとした乱数を生成したいのですがどうも偏ります。
シードの採用の仕方にルールなどがあるのでしょうか?
xorshiftのものを2個試しましたが
2ことも偏っていました。

外部リンク:jsfiddle.net
142: デフォルトの名無しさん (ワッチョイ e333-w8uH [59.190.185.6]) [sage] 2022/10/28(金) 19:03:49.78 ID:dQ+2i/bt0(2/3) AAS
>>139
139(1): デフォルトの名無しさん (スッップ Sd03-LP1i [49.98.165.74]) [sage] 2022/10/28(金) 17:22:23.79 ID:mktFZgumd(1) AAS
ちょっとだけ違う初期値に対して乱数がほしいという用途は想定外だろう
欲しいものはMurmurHash3みたいなハッシュ関数ではないか?
不勉強でよくわかってないですが
やりたいのは後で再現できる単純にランダムな遅延時間がほしいだけです。
>>140
140(1): デフォルトの名無しさん (スップ Sdc3-H7SW [1.75.9.11]) [sage] 2022/10/28(金) 18:09:17.06 ID:HM5QgWcQd(1/4) AAS
一発目のnext()の値を捨てれば良さそうな気も
外部リンク:jsfiddle.net
delayMaxを100にしてみましたら3回目ぐらいから取れそうと感じました。
シードが小さすぎるということは
一般的には
シードを与えるなら
乱数関数が受けられるシードの最大数/関数で生成されるシードの最大数をかけて
でシードの範囲を広げたほうがいいということなのでしょうか。
それとも単純に今回はシードが小さすぎて特殊事例であまり気にする必要はないと言う感じでしょうか。

お二人ともありがとうございます。
144: デフォルトの名無しさん (ワッチョイ e333-w8uH [59.190.185.6]) [sage] 2022/10/28(金) 21:20:56.67 ID:dQ+2i/bt0(3/3) AAS
>>143
143(1): デフォルトの名無しさん (スップ Sdc3-H7SW [1.75.9.11]) [sage] 2022/10/28(金) 20:24:11.90 ID:HM5QgWcQd(3/4) AAS
next()が与えられた値にビット演算をあれこれやって次の値を出してるから
シードが2桁整数ではほとんどのビットがゼロなために
最初の演算結果が狭い範囲に収まってしまってるんでないかと
ありがとうございます
外部リンク:jsfiddle.net
42億あるうちの下一桁をいじるだけではだめみたいですね。
一日かわればseedも大きく変わるようにして
念の為、3回目あたりをとってみます。
ありがとうございました。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.033s