0からの、超初心者C++相談室at TECH0からの、超初心者C++相談室 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト238:デフォルトの名無しさん 21/05/19 01:36:10.61 OYngDuIu.net スレ建てといただす。 0からの、超初心者C言語相談室 https://mevius.5ch.net/test/read.cgi/tech/1621355654/ 239:デフォルトの名無しさん 21/05/19 01:52:35.92 yT7tFlzp.net >>233 RAND_MAXは、古くから有るマクロ定数で、stdlib.h で例えば次のように定義されている: #define RAND_MAX 32767 説明によれば: 「rand関数が返す最大値。処理系によって異なるが、最低でも 32767以上である。」 rand()は偏りが強いには強いが、それでも 227 のように書けば 226 のように 下一桁がいつも8になるようなほどではない。 240:デフォルトの名無しさん 21/05/19 01:54:51.13 yT7tFlzp.net 少なくともrand() は、>>228 のように書けば、メルセデスツイストなどの 乱数を使わなくとも普通に使える。>>227 のように書くとダメなだけ。 241:デフォルトの名無しさん 21/05/19 10:58:56.45 G7N6xM6g.net 0から7の整数が均等確率で出る乱数をrとした場合、 x = r % 3; とすると、xは0~2までの整数が出るが、均等確率ではない。 それはすべてのパターンを書いてみると分かる:(r,x)を書いてみると、 (0,0) (1,1) (2,2) (3,0) (4,1) (5,2) (6,0) (7,1) x= 0 となっているのは、3回。 x= 1 となっているのは、3回。 x= 2 となっているのは、2回。 なので、 P(x=0)=3/8 P(x=1)=3/8 P(x=2)=2/8=1/4 となり、x=2が出る確率だけが小さくなってしまう。 これと同様に、rが0~32767を均等確率で出す乱数の場合、x=r % 100の値は0~99までだが xが0~99になる確率は均等ではない。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch