生成满足泊松分布的随机数,以及python实现

泊松分布是一个离散型随机变量分布,其分布律是:

image

其中参数λ是单位时间(或单位面积)内随机事件的数学期望。

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()

转发请标明出处☺

你可能感兴趣的:(生成满足泊松分布的随机数,以及python实现)