裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

ベンフォードの法則の例

2011年02月28日 | ブログラミング

2のべき乗数,2^0, 2^1, 2^2, 2^3, ... の先頭桁を考える。

一見,1, 2, 4, 8, 1, 3, 6, 1, 2, 5, 1, 2, 4, ... と長さ10の周期で循環しそうに見えるがそれは違う。

先頭桁の分布はベンフォードの法則に従う。

> library(gmp)
> func <- function(n)
+ {
+     a <- as.character(n)
+     a <- strsplit(a, "")
+     a <- unlist(a)
+     return(a[1])
+ }
> a <- integer(100000)
> for (i in 1:100000) {
+     n <- as.bigz(2)^i
+     a[i] <- func(n)
+ }
> table(a)

このプログラムによって得られる結果は,正確にベンフォードの法則に従うものである。

出現度数は次のようになる。

a
    1     2     3     4     5     6     7     8     9
30102 17611 12492  9692  7919  6695  5797  5116  4576

3 のべき乗の場合も同じような結果になる(驚くほど似ている)。

a
    1     2     3     4     5     6     7     8     9
30101 17611 12492  9692  7917  6696  5799  5116  4576

いずれの場合も,各数字の理論的な出現確率は

[1] 0.30103000 0.17609126 0.12493874 0.09691001 0.07918125 0.06694679
[7] 0.05799195 0.05115252 0.04575749

なのだ。

 

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« みったくなすの ggplot2 | トップ | 不適切なグラフ in ggplot2 »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

ブログラミング」カテゴリの最新記事