特に何か問題があったわけでもないんですが、気になったので質問をしました。
乱数生成関数は元となる、乱数を生成し、それを実際に必要とする形に変形して使うと思うのですが
そのときに
- 整数値に変形している。
- 一定以上大きな範囲のものである。
この場合、絶対に出てこない整数が発生すると思うんですが、
その生成したい範囲に合わせてバイト数の違う乱数生成関数を用意した方がよいということですかね?
まぁ、めったにそんなに大きなもの必要にならない気がしましたが…
あと、もう一つ。
例として、1バイトの乱数を生成したときにそれを1~7の値に収める際、
7 * ({乱数の値} + 1)/256 (切り上げ)
のようにして、乱数を作りがちですが、数値によって微妙に偏りますよね?
(こういうことが起こらないために、ソシャゲとかパチンコで256分の~みたいな表記が出てくるのかなぁ、とも思いました。なんか、あまり気にしてなかったけれども、そう考えると面白い(笑))
真に1/7の乱数を作るなら乱数を生成したときに
035 → 171 → 2
36
72107 → 3143 → 4
108
144179 → 5215 → 6
180
216251 → 7255 → もう一回
252
みたいにしなきゃいけないですよね?

回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/01/20 11:31 編集