ToDo:
は 14 (だったと思う) という話を聞いて なるほどなぁと思ったことを思い出した。
乱数ぽくない数字として、
あたりまではコンセンサスが取れると信じている。 で、 20 以下では 6 12 14 15 18 とかが残るのだけど、 6 は 2*3 は少しあざとすぎる気がするし 1 ケタというのもうさんくさい。 12 は限りなく乱数に近い気がするけど、 色々と頻出する数だし、約数がやけに多くて過剰数だし、 60 を 5 で割った数値だし、 1,2 と並んでいるのもうさんくさい。
というわけで 14 は妥当ではないかと思う。
その後について考えてみると、 15 は 5 の倍数だし時計的には分針が真横に来るし、 18 は過剰数だしなぁという。
20を越えると、 21, 22, 26 あたりは乱数ぽい感じがする。
まぁそれはともかく、 本当に rand() は 0 を返さなのか…ということを調べてみることにした。
#include <limits.h> main(){ int i,r; for(i=0;i<=INT_MAX;i++){ srand(i); r = rand(); if (r <= 100) { printf("%d %d\n",i,r); } } }
23630470 49 55838673 24 64991094 18 70591072 93 102677128 26 112837639 22 192362304 49 195809469 38 202026562 68 243107678 21 317884351 92 322740103 73 352521701 12 409220484 95 438738451 24 438793602 10 450855193 54 458024300 98 472213863 86 538519451 50 569905233 73 592085346 76 609917392 18 647604524 100 692284284 10 695885410 95 700867521 95 718811313 53 735994589 57 740817083 29 775196112 37 808357014 0 834259768 63 868938348 99 898316907 41 916741354 22 931675316 10 950023591 91 966006474 90 992012077 100 994837276 77
ぎゃー 0 が登場してる。地球オワタ
しかし 95 とか 3 回登場してるけど、 今の glibc の rand() ってどういう方法使ってるのかな、と思った。
(21:34)
前 | 2009年 2月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。