Pythonはベンフォードの法則を検証します

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/qq_33189961/article/details/98338103

ベンフォードの法則

知られているベンフォードの法則実生活に由来するデータのパイルを示す、番号の最初の数字として1が発生する確率が全体の約3%である、直感のほぼ3倍の期待値は1/9に来ます。推進、より多くの、それはいくつかの数字が表示されるに至っていること確率が低いです。データ詐欺の様々ながあるかどうかをチェックするために使用することができます

ところで、とmatplotlib.pyplotこのライブラリ、1000から1の階乗に以下のデータは、例えば、暴力は何を確認します。

 コードは以下の通りであります:

import matplotlib.pyplot as plt
import math

def firstDigital(x):
    while x >= 10:
        x //= 10
    return x

if __name__ == "__main__":
    n = 1
    frequency = [0] * 9  #记录第一位数字中1-9数字出现次数
    for i in range(1,1000):
        n *= i
        m = firstDigital(n) - 1
        frequency[m] += 1
    print(frequency)
    plt.plot(frequency,"r-",linewidth=2)
    plt.plot(frequency, "go", markersize=8)
    plt.grid(True)
    plt.show()

注:詳細なデータを次のように:[293、176、124、101、69、87、51、51、47]

試験の確率分布の下でディジタル先行の多数

最初の桁 確率
1 0.301
2 0.176
3 0.125
4 0.097
5 0.079
6 0.067
7 0.058
8 0.051
9 0.046

 

 

おすすめ

転載: blog.csdn.net/qq_33189961/article/details/98338103