No.1ベストアンサー
- 回答日時:
仮にrand()に偏りがでないとしても
rand()%10000;という使い方では偏りがでることを知っておいてください。
RAND_MAXが32767の場合、
結果が2000になるにはrand()が2000 12000 22000 32000の4パターン
ありますが
3000の場合は3000 13000 23000の3パターン
となり偏りが出ます。
ただXorshiftであれば乱数の最大値が大きいため
ゲーム等であれば
xor128() % 10000で十分な精度だと思います。
※xor128()はXorshiftの関数
今まで使っていたrand()とはそういう存在で
%で余りを求めるのはそういう意味だったのですね。
利用方法でどの程度の偏りが出るかうっすら解った気がします。
ご回答、ありがとうございました。
No.2
- 回答日時:
#1 にも書かれていますが, 最終的に得たい値の範囲が疑似乱数で得られる値の範囲に対して十分小さければ余りを求めるような方法で「だいたい一様」にすることができます.
本気で一様にしようとすると, Xorshift の周期が 2^128-1 であることが問題になります. Xorshift で得られるのは 32ビット整数値で, これと周期とを比較すればわかるように「32ビットのすべての整数値が同じ頻度で現れるわけではない」ということになります. つまり, Xorshift で得られる値がすでに「完全に一様ランダム」ではありません. そこの補正から始める必要があります.
難しく理解しきれない部分が有りますが、
「だいたい一様」と「完全に一様ランダム」という差が絶対に出るのですね。
今回は「だいたい一様」で良いのでどうやら%するだけで大丈夫ですが、
「完全に一様ランダム」ではないと肝に銘じておきます。
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- スポーツサイクル エアーマット「サーマレスト」の空気の充填方法 2 2022/08/16 08:59
- 数学 数学 解き方の違い 1 2022/03/23 21:37
- Excel(エクセル) Excel Powerクエリーの質問、行数指定は可能でしょうか? 2 2022/08/22 12:54
- 数学 場合の数、確率 26 整数解の個数vol2 4 2023/07/05 04:40
- その他(Microsoft Office) エクセルマクロ オートフィルターでで選択コピー 2 2022/04/18 11:05
- 大学受験 ある大学の数1Aの問題なのですが、回答に解説がなく 困ってます。誰か解説をつけて欲しいです 2つのx 3 2022/11/11 22:50
- 数学 大学編入のために数学を勉強しています。数列の収束について解き方の方針が全く分からない問題があります。 2 2023/06/16 19:44
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- 高校 高校生もしくは現役で社会科の教師の方々に質問です。 社会のテストで範囲が広い時、どのような出題方法で 1 2023/03/16 23:24
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 exitの使い方
-
ラジオボタンの値の取得につい...
-
足して100になるような乱数のア...
-
フォームを開くときに、コンボ...
-
Excel-vba 文字列と変数を...
-
C#で動的にコントロールを取得...
-
VBAで多項式近似曲線の計算
-
VB6.0-整数と余りを求める
-
数字の位ごとの値を表示するプ...
-
Nullってどういう意味ですか?
-
VBAのチェックボックス結果を集...
-
シグマのプログラムについて
-
UWSCのcallについて
-
C言語でCLAMP(a,b,c)
-
VBAでC列が入力済みならそのま...
-
railsのControllerでフォームの...
-
世界のナベアツ
-
DataGridView 複数行同時変更...
-
相関係数p値の出し方
-
VBAでダブルコーテーション入り...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
Excel-vba 文字列と変数を...
-
数字の位ごとの値を表示するプ...
-
VB6.0-整数と余りを求める
-
VBAで配列のNULL判定
-
足して100になるような乱数のア...
-
フリーランタイマーの時間差分...
-
DataGridView 複数行同時変更...
-
相関係数p値の出し方
-
世界のナベアツ
-
10進数をアスキーコードに変換
-
C#で動的にコントロールを取得...
-
ラジオボタンの値の取得につい...
-
DWORDって
-
バッチファイルで正規表現を使...
-
4択問題のプログラムでランダム...
-
1つ前の値を変数に保存する方法
-
VBAの定数の使い方で、計算値を...
-
コンボボックスの名前を変数に...
おすすめ情報