アカウント名:
パスワード:
# 2進数ネタは本家で書かれてしまったので、まじめに書く。
素数は、大きな数の領域になるほどに分布が疎らになっていきます。ということで、ある桁数の数についてみれば、1xxxxx の素数よりは、9xxxxx の素数のほうが少ないだろう、という見込みはなんとなくありそうに思えます。で、問題は
最高桁が「1」である数値は全体の約30%、「2」であるものは約18%、「3」であるもの約12%・・・「9」であるものは約5%という割合になっている
という法則に従うかどうか。
大まかな素数の分布を知るための式(素数定理)の簡単なものに、π(n) ≒ n/ln(n) があります。ここでいう"π(x)"は、円周率ではなく素数計数関数です。(x以下の個数の数を表す。ex. π(10) = 4 {2,3,5,7} ≒ 10/ln(10) [google.co.jp])
この式を使って、小さな(google電卓で届くような)数の領域について、素数の数をみてみると…
- 9桁の数の場合:1で始まる (199 999 999 / ln(199 999 999)) - (100 000 000 / ln(100 000 000)) = 5 034 947.71 [google.co.jp]2で始まる (299 999 999 / ln(299 999 999)) - (200 000 000 / ln(200 000 000)) = 4 905 780.27 [google.co.jp] :9で始まる (999 999 999 / ln(999 999 999)) - (900 000 000 / ln(900 000 000)) = 4 603 563.36 [google.co.jp]
# 1のケタで誤差がある計算式だけど気にしないでください。# (もともと正確な近似式ではありません)
うーん、いまいち「法則」に合致しません。数が小さすぎるかな? ようし、某コミック並みに戦闘力インフレさせて界王拳1000倍だ!
- 12桁の数の場合:1で始まる (199 999 999 999 / ln(199 999 999 999)) - (100 000 000 000 / ln(100 000 000 000)) = 3.73779577 × 109 [google.co.jp]2で始まる (299 999 999 999 / ln(299 999 999 999)) - (200 000 000 000 / ln(200 000 000 000)) = 3.66607816 × 109 [google.co.jp] :9で始まる (999 999 999 999 / ln(999 999 999 999)) - (900 000 000 000 / ln(900 000 000 000)) = 3.49444386 × 109 [google.co.jp]
すごく…大きいです。でもやっぱり、1xxxが2xxxの2倍近いくらいになるような、明確な違いは出ないですねえ。というより、比は均等に近くなっているような?
もっと巨大な数の領域になると法則に従うのでしょうか。(なんだか、もっと均等になりそうなヨカン)それとも、私がなにか勘違いしているのでしょうか。数論詳しい方ツッコミお願いします。
詳細までは突っ込めませんが、ベンフォードの法則についての理解が間違っていると思います。
タレコミ文にあるリンク先を見てみれば分かりますが、1から10nまでの数字を対象としたとき、nが整数であれば各数字の出現頻度はほぼ均一になります。ですので、素数がベンフォードの法則にしたがっているのであれば、nが整数の時、ほぼ均一です。しかし、上限に10の乗数以外の数字を取ると、振動して、収束しません。例えば、上限を2×10nとすれば、1の出現率が極端に上昇します。
ベンフォードの法則が対象としている数字には特定の上限がないわけで、必ずしも10の乗数といった上限が存在しない自然発生的な数字に当てはまることが多いわけです。
どうもそこが「なにか勘違いしているのでしょうか」の源だったようです。
ようワカランのに証明のほうばかり読もうとして、タレコミで親切にも日本語コンテンツがリンクされているのにそこまで読んでいなかったというオチでした。(最初のコメントに書いた素数の分布自体が間違いなのではなくて、法則の理解のほうの問題)
# リーマンらしく、金融危機に乗じて玉砕してきます…。λ ...
「9桁の数」とか値の範囲を制限したらそうなるに決まってます。たとえば100 000 000~199 999 999までの範囲に含まれる素数の分布を調べたら1で始まるものが100%になります。
9桁の数について調べているのですから、10 000 000台は除外する必要があるに決まっています。問題はそこではありません。(n桁以下の数の分布)=(n桁の数の分布)+(n-1桁の数の分布)+...+(1桁の数の分布)ですから(2例しか計算してませんけど)どの数で始まる素数の出現率もだいたい同じなんじゃね? と言いたいのでしょう。この論法の最大の問題は、1で始まる数にとってもっとも不利な、出現率が均等になるような上限(99,999,9999,...)ばかりを(おそらく自覚なしに)恣意的に選んでいることです。1で始まる数にとってもっとも有利な上限(19,199,1999,...)ばかりを選べば「1で始まる素数の出現率はだいたい50%」という結論になります。1で始まる数の出現率は、もっとも不利な場合ですら他の数字で始まる数と均等であるることに注意してください。それ以外のいかなる上限を選んでも、1で始まる数の出現率が他の数で始まる数より低くなることはありません。もっとも有利な場合には50%を超えます。それらをならした場合に1で始まる数の出現率がだいたい30%になる、というのがベンフォードの法則の直感的な説明です。
それ以外のいかなる上限を選んでも、1で始まる数の出現率が他の数で始まる数より低くなることはありません。
素数は無限にあるので、この証明ではそもそも「上限」を設定せず、素数全体の集合を相手に「無作為に数をとってくる」ような操作をしているのではないのか、とまあ、そのあたりが疑問だったわけです。
論文の後半(Appendix)にそのあたりのことが書かれているのですが、前提知識が足りてなくて理解がいま一つ。
はい、ですから(証明ではなく)直感的説明だと申し上げました。#1564457 [srad.jp]のように、恣意的に範囲を設定すればいくらでも不適切な結論を導けるということを示すのが目的です。
> 「上限」を設定せず、素数全体の集合を相手に無限の数の集合に対していきなり性質を述べたりするのが困難な場合、数学的帰納法や極限操作によって結論を導いたりするのはごく普通のやり方です。
もう少し単純化した例を挙げてみます。{1, -1, 1, -1,
これは、しがない リーマン [wikipedia.org]ってのが笑うところ?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生の大半の問題はスルー力で解決する -- スルー力研究専門家
【新ジャンル】しがないリーマンのオレが、ヘタレな数の領域で【計算してみた】 (スコア:4, 参考になる)
# 2進数ネタは本家で書かれてしまったので、まじめに書く。
素数は、大きな数の領域になるほどに分布が疎らになっていきます。ということで、ある桁数の数についてみれば、1xxxxx の素数よりは、9xxxxx の素数のほうが少ないだろう、という見込みはなんとなくありそうに思えます。で、問題は
という法則に従うかどうか。
大まかな素数の分布を知るための式(素数定理)の簡単なものに、π(n) ≒ n/ln(n) があります。ここでいう"π(x)"は、円周率ではなく素数計数関数です。(x以下の個数の数を表す。ex. π(10) = 4 {2,3,5,7} ≒ 10/ln(10) [google.co.jp])
この式を使って、小さな(google電卓で届くような)数の領域について、素数の数をみてみると…
- 9桁の数の場合:
1で始まる (199 999 999 / ln(199 999 999)) - (100 000 000 / ln(100 000 000)) = 5 034 947.71 [google.co.jp]
2で始まる (299 999 999 / ln(299 999 999)) - (200 000 000 / ln(200 000 000)) = 4 905 780.27 [google.co.jp]
:
9で始まる (999 999 999 / ln(999 999 999)) - (900 000 000 / ln(900 000 000)) = 4 603 563.36 [google.co.jp]
# 1のケタで誤差がある計算式だけど気にしないでください。
# (もともと正確な近似式ではありません)
うーん、いまいち「法則」に合致しません。数が小さすぎるかな? ようし、某コミック並みに戦闘力インフレさせて界王拳1000倍だ!
- 12桁の数の場合:
1で始まる (199 999 999 999 / ln(199 999 999 999)) - (100 000 000 000 / ln(100 000 000 000)) = 3.73779577 × 109 [google.co.jp]
2で始まる (299 999 999 999 / ln(299 999 999 999)) - (200 000 000 000 / ln(200 000 000 000)) = 3.66607816 × 109 [google.co.jp]
:
9で始まる (999 999 999 999 / ln(999 999 999 999)) - (900 000 000 000 / ln(900 000 000 000)) = 3.49444386 × 109 [google.co.jp]
すごく…大きいです。でもやっぱり、1xxxが2xxxの2倍近いくらいになるような、明確な違いは出ないですねえ。というより、比は均等に近くなっているような?
もっと巨大な数の領域になると法則に従うのでしょうか。(なんだか、もっと均等になりそうなヨカン)
それとも、私がなにか勘違いしているのでしょうか。数論詳しい方ツッコミお願いします。
計算に必要な材料 (スコア:2, 参考になる)
Re:【新ジャンル】しがないリーマンのオレが、ヘタレな数の領域で【計算してみた】 (スコア:1)
詳細までは突っ込めませんが、ベンフォードの法則についての理解が間違っていると思います。
タレコミ文にあるリンク先を見てみれば分かりますが、1から10nまでの数字を対象としたとき、nが整数であれば各数字の出現頻度はほぼ均一になります。ですので、素数がベンフォードの法則にしたがっているのであれば、nが整数の時、ほぼ均一です。しかし、上限に10の乗数以外の数字を取ると、振動して、収束しません。例えば、上限を2×10nとすれば、1の出現率が極端に上昇します。
ベンフォードの法則が対象としている数字には特定の上限がないわけで、必ずしも10の乗数といった上限が存在しない自然発生的な数字に当てはまることが多いわけです。
タレコミのリンク先は、最後のものから先に読めの法則 (スコア:2)
どうもそこが「なにか勘違いしているのでしょうか」の源だったようです。
ようワカランのに証明のほうばかり読もうとして、タレコミで親切にも日本語コンテンツがリンクされているのにそこまで読んでいなかったというオチでした。
(最初のコメントに書いた素数の分布自体が間違いなのではなくて、法則の理解のほうの問題)
# リーマンらしく、金融危機に乗じて玉砕してきます…。λ ...
自己レス (スコア:1)
すみません。
Re: (スコア:0)
「9桁の数」とか値の範囲を制限したらそうなるに決まってます。
たとえば100 000 000~199 999 999までの範囲に含まれる素数の分布を調べたら1で始まるものが100%になります。
Re: (スコア:0)
これだと10 000 000台の数は減算されちゃってるような。
Re:【新ジャンル】しがないリーマンのオレが、ヘタレな数の領域で【計算してみた】 (スコア:3, 参考になる)
9桁の数について調べているのですから、10 000 000台は除外する必要があるに決まっています。問題はそこではありません。
(n桁以下の数の分布)=(n桁の数の分布)+(n-1桁の数の分布)+...+(1桁の数の分布)ですから(2例しか計算してませんけど)どの数で始まる素数の出現率もだいたい同じなんじゃね? と言いたいのでしょう。
この論法の最大の問題は、1で始まる数にとってもっとも不利な、出現率が均等になるような上限(99,999,9999,...)ばかりを(おそらく自覚なしに)恣意的に選んでいることです。1で始まる数にとってもっとも有利な上限(19,199,1999,...)ばかりを選べば「1で始まる素数の出現率はだいたい50%」という結論になります。
1で始まる数の出現率は、もっとも不利な場合ですら他の数字で始まる数と均等であるることに注意してください。それ以外のいかなる上限を選んでも、1で始まる数の出現率が他の数で始まる数より低くなることはありません。もっとも有利な場合には50%を超えます。それらをならした場合に1で始まる数の出現率がだいたい30%になる、というのがベンフォードの法則の直感的な説明です。
Re:【新ジャンル】しがないリーマンのオレが、ヘタレな数の領域で【計算してみた】 (スコア:2)
素数は無限にあるので、この証明ではそもそも「上限」を設定せず、素数全体の集合を相手に「無作為に数をとってくる」ような操作をしているのではないのか、とまあ、そのあたりが疑問だったわけです。
論文の後半(Appendix)にそのあたりのことが書かれているのですが、前提知識が足りてなくて理解がいま一つ。
Re: (スコア:0)
はい、ですから(証明ではなく)直感的説明だと申し上げました。#1564457 [srad.jp]のように、恣意的に範囲を設定すればいくらでも不適切な結論を導けるということを示すのが目的です。
> 「上限」を設定せず、素数全体の集合を相手に
無限の数の集合に対していきなり性質を述べたりするのが困難な場合、数学的帰納法や極限操作によって結論を導いたりするのはごく普通のやり方です。
もう少し単純化した例を挙げてみます。{1, -1, 1, -1,
Re: (スコア:0)
Re: (スコア:0)
これは、しがない リーマン [wikipedia.org]ってのが笑うところ?