python_画九点分布图

Jupyter——九点分布概率图

计算n=1,2,3,…,N的n!首个数字出现1,2,3,4,5,6,7,8,9的概率

## 定义取首字母的函数:
def Getfirst(x):
    x = list(str(x))[0]
    return int(x)
## 定义N个阶乘首数字的概率函数
def P_first(N):
    x = 1
    p = [0]*9
    for i in range(1,N+1):
        x = x*i
        p[Getfirst(x)-1]+=1
    return [round(k/N,3) for k in p]       
N=100
p = P_first(N)
print(p)
[0.3, 0.18, 0.13, 0.07, 0.07, 0.07, 0.03, 0.1, 0.05]

九点分布可视化——散点图

import  matplotlib.pyplot as plt  
%matplotlib inline
from matplotlib.font_manager import FontProperties  ## 设置字体
font_set = FontProperties(fname='C:\Windows\Fonts\msyh.ttf', size=12)  ## 设置python可识别的字体
plt.plot(p, 'r',linewidth = 2)
plt.plot(p, 'go',markersize = 8)
plt.xticks(list(range(0,9)),list(range(1,10)))
plt.grid = True
plt.title('九点分布:N= '+ str(N), fontproperties=font_set) ## 注意引用python可识别的字体
for a,b in zip(list(range(0,9)),p):
   plt.text(a+0.25, b, b,fontsize=10)
plt.show()

python_画九点分布图_第1张图片

你可能感兴趣的:(python算法)