トップ «前の日記(2009-02-20) 最新 次の日記(2009-02-22)» 編集

はじめてのにき

ここの位置付け

2004|11|
2005|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|

ToDo:


2009-02-21

_ 最初の乱数

は 14 (だったと思う) という話を聞いて なるほどなぁと思ったことを思い出した。

乱数ぽくない数字として、

  • 0と1は論外
  • 素数は除外
  • 2の累乗は除外
  • 何かの自乗は除外
  • 10の倍数は除外

あたりまではコンセンサスが取れると信じている。 で、 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)

_ 定理

7以上の素数を2倍した数は乱数である

というのを発見した

(21:45)

お名前:
E-mail:
コメント:
人生、宇宙、すべての答え
本日のリンク元

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
1.Wzcwprrw(2010-03-29 15:52) 2.shinh(2009-02-15 23:43) 3.k.inaba(2009-02-15 01:35)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h