원주율 소수점 이하 각 자릿수의 숫자 분포
원주율 소수점 이하 각 자릿수의 숫자 분포
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="")
Reference
이 문제에 관하여(원주율 소수점 이하 각 자릿수의 숫자 분포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/StrawBerryMoon/items/b09229a679891d843154
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
k = 10000 / log10(2)
33219.280948873624
33240 * log10(2)
10006.237055870735
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="")
Reference
이 문제에 관하여(원주율 소수점 이하 각 자릿수의 숫자 분포), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/StrawBerryMoon/items/b09229a679891d843154텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)