원주율 소수점 이하 각 자릿수의 숫자 분포

3353 단어 Julia통계학

원주율 소수점 이하 각 자릿수의 숫자 분포


Juria에서 원주율은 BigFloat(π, k) 에서 모든 정밀도 $k로 쉽게 확정할 수 있습니다.소수점 이하 $n 자릿수가 필요하면 $k]\rac{n}{\log{10}은 2}달러입니다.끝의 계산 오차를 고려하여 $k$보다 조금 큰 정수를 지정하는 것이 좋습니다.
소수점 이하 10000자리면
k = 10000 / log10(2)
33219.280948873624
그렇다면 충분해.
33240 * log10(2)
10006.237055870735
BigFloat(π, 33240)에서 정수 부분을 포함하는 원주율을 구하고string(x)에서 문자열로 바꾸고[3:10002]에서 소수점 이하의 10000자리를 꺼내고Char[y...]에서 여러분으로 분해하며parse.(Int, z)에서 정수 벡터로 바꾼다.
d = parse.(Int, Char[string(BigFloat(π, 33240))[3:10002]...]);
# データベクトルの長さ(データの個数)
length(d)
10000
# 度数分布
using FreqTables
freq = freqtable(d)
10-element Named Vector{Int64}
Dim1  │ 
──────┼─────
0     │  968
1     │ 1026
2     │ 1021
3     │  974
4     │ 1012
5     │ 1046
6     │ 1021
7     │  970
8     │  948
9     │ 1014
각 숫자는 거의 균등하게 나타난다.
# 結果を棒グラフで表示
using Plots
bar(freq, ylabel="frequency", xlabel="digit", xticks=(1:10, string.(0:9)), label="")

좋은 웹페이지 즐겨찾기