泊松分布是一个离散型随机变量分布,其分布律是:
其中参数λ是单位时间(或单位面积)内随机事件的数学期望。
k是随机事件发生的个数
泊松分布适合于描述单位时间内随机事件发生的次数的概率分布。如某一服务设施在一定时间内受到的服务请求的次数,电话交换机接到呼叫的次数、汽车站台的候客人数、机器出现的故障数、自然灾害发生的次数等等。
然后是python实现,这里用的库是numpy,然后使用tkinter来做一个gui窗口
import numpy as np
from tkinter import *
root = Tk(className='生成泊松分布随机数')
root.geometry("400x300")
#输入lamda
label1 = Label(root)
label1['text'] = '请输入一个数学期望lamda:'
label1.grid(row=0)
entry1 = Entry(root)
entry1.grid(row=0,column=1)
#输入k
label2 = Label(root)
label2['text'] = '请输入生成随机个数k:'
label2.grid(row=1)
entry2 = Entry(root)
entry2.grid(row=1,column=1)
#按钮绑定的动作
def print1():
result = Tk(className= "result")
result.geometry("200x50")
S1 = Scrollbar(result, orient=HORIZONTAL)
S1.pack(side=BOTTOM, fill=X)
if entry1.get() == '':
lab = Label(result, text="请输入lamda!")
lab.pack(side = LEFT)
elif entry2.get() == '':
lab2 = Label(result, text="请输入k!")
lab2.pack(side=LEFT)
else:
x = int(entry1.get())
k = int(entry2.get())
if x>0 and k>0:
x1 = np.random.poisson(lam=x, size=k)
rst = Label(result, text=x1)
rst.pack(side = LEFT)
else:
label3 = Label(result, text="输入内容有错,lamda请输入正整数,k请输入正整数")
label3.pack(side = LEFT)
#生成按钮
btn = Button(root, command = print1)
btn['text'] = '生成'
btn.grid(row=2)
# 进入消息循环
root.mainloop()
转发请标明出处☺