欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

本福德定律的直观解释

最编程 2024-06-09 16:11:54
...

若待查自然数集是均匀分布的,可用 f ( x ) = 1 0 x f(x)=10^x f(x)=10x表示:

  • x x x [ 0 , 1 ) [0,1) [0,1)区间, f ( x ) f(x) f(x)从1到10.
  • x x x [ 1 , 2 ) [1,2) [1,2)区间, f ( x ) f(x) f(x)从10到100.
  • x x x [ 2 , 3 ) [2,3) [2,3)区间, f ( x ) f(x) f(x)从100到1000.

x x x轴分成 [ 0 , 1 ) [0,1) [0,1) [ 1 , 2 ) [1,2) [1,2) [ 2 , 3 ) [2,3) [2,3) [ 3 , 4 ) [3,4) [3,4),…等小区间,可将 f ( x ) f(x) f(x)分为:

  • 1位数字。
  • 2位数字。
  • 3位数字。

其中 x x x为整数时 f ( x ) f(x) f(x)为进位边界,如果为小数则 f x ) fx) fx)为两个进位边界之间的普通数字。

首位数字 n n n起头的数字包括:

  • 1位数字 n n n
  • 2位数字 n m 1 nm_1 nm1
  • 3位数字 n m 1 m 2 nm_1m_2 nm1m2

上述数字的量加起来,就是以 n n n开头的数字总量 。

计算以 n n n开头的数字出现的概率 P ( n ) P(n) P(n),要看 f ( x ) = 1 0 x f(x)=10^x f(x)=10x x x x的分布。计算方法如下图所示:
在这里插入图片描述

[ 2 , 3 ) [2,3) [2,3)这个3位数区间为例,首数为 4 4 4的有400,401…,499, f ( x ) = 1 0 x f(x)=10^x f(x)=10x单调递增,只需求出 400 = 1 0 x 1 400=10^{x_1} 400=10x1 499 = 1 0 x 2 499=10^{x_2} 499=10x2中的 x 1 x_1 x1 x 2 x_2 x2,首数 4 4 4的概率为:

log ⁡ 10 ( 499 + 1 ) − log ⁡ 10 400 3 − 2 = log ⁡ 10 500 − log ⁡ 10 400 = log ⁡ 10 5 4 \dfrac{\log_{10}(499+1)-\log_{10}400}{3-2}=\log_{10}500-\log_{10}400=\log_{10}\dfrac{5}{4} 32log10(499+1)log10400=log10500log10400=log1045

同理,对于所有小区间,首数 n n n的概率分别为:

X 0 , 1 = log ⁡ 10 ( n + 1 ) − log ⁡ 10 n 1 − 0 = log ⁡ 10 n + 1 n X_{0,1} = \dfrac{\log_{10}(n+1)-\log_{10} n}{1-0}=\log_{10}\dfrac{n+1}{n} X0,1=10log10(n+1)log10n=log10nn+1

X 1 , 2 = log ⁡ 10 10 × ( n + 1 ) − log ⁡ 10 10 × n 2 − 1 = log ⁡ 10 n + 1 n X_{1,2} = \dfrac{\log_{10}10\times(n+1)-\log_{10} 10\times n}{2-1}=\log_{10}\dfrac{n+1}{n} X1,2=21log1010×(n+1)log1010×n=log10nn+1

X 2 , 3 = log ⁡ 10 100 × ( n + 1 ) − log ⁡ 10 100 × n 3 − 2 = log ⁡ 10 n + 1 n X_{2,3} = \dfrac{\log_{10}100\times(n+1)-\log_{10} 100\times n}{3-2}=\log_{10}\dfrac{n+1}{n} X2,3=32log10100×(n+1)log10100×n=log10nn+1

整体上以数字 n n n开头的概率为:

P ( n ) = T = ∑ 小 区 间 的 概 率 S = ∑ 小 区 间 长 度 P(n)=\dfrac{T=\sum小区间的概率}{S=\sum小区间长度} P(n)=S=T=

所有小区间以

上一篇: 听刘润先生讲 - 开封美食总决赛

下一篇: Popular Science || 本福德定律数据中的真相