这是用python写的概率模拟器
[pay point="20"]
from tkinter import Frame,Tk,Entry,END,IntVar,StringVar,Label,Button,Scrollbar,OptionMenu,mainloop
from tkinter import ttk
from random import randint
from _thread import start_new_thread
from time import sleep
def ran():
#maxt最大mint最小c次数
ok1.configure(state='disabled')
det.configure(state='disabled')
ok3.configure(state='disabled')
det.configure(state='disabled')
det1.configure('disabled')
ok4.configure('disabled')
try:
x=tr.get_children()
for item in x:
tr.delete(item)
max = float(maxe.get())
min = float(mine.get())
t = int(c.get())
ran1.set("0")
count = 0
if TF.get() == "否":
if max < min:
r = max
max = min
min = r
i = 1
while i<=t:
p = randint(min,max)
li = [i,p]
tr.insert("",END,values=li)
i = i+1
count = count+1
ran1.set(count)
#sleep(0.000001)
ran1.set("完成")
win22.place_forget()
win21.place(relx = 0,rely = 0,relwidth = 1,relheight = 1)
if TF.get() == "是":
co = []
if max < min:
r = max
max = min
min = r
if max - min >= t:
i = 1
p = max + 1
while i <= t:
while True:
print("1")
p = randint(min,max)
if p not in co:
co.append(p)
li = [i,p]
tr.insert("",END,values=li)
break
count = count+1
ran1.set(count)
i = i+1
ran1.set("完成")
win22.place_forget()
win21.place(relx = 0,rely = 0,relwidth = 1,relheight = 1)
except:
""""""
ok1.configure(state='normal')
det.configure(state='normal')
ok3.configure(state='normal')
det.configure(state='normal')
det1.configure(state='normal')
ok4.configure(state='normal')
def coin():#硬币
ok3.configure(state='disabled')
det.configure(state='disabled')
ok1.configure(state='disabled')
det.configure(state='disabled')
ok4.configure(state='disabled')
try:
coin1.set("0")
count = 0
t = int(n.get())
i = 1
x=tr.get_children()
for item in x:
tr.delete(item)
coit = 0
coif = 0
print()
while i<=t:
p = randint(0,1)
if p == 0:
coif = coif + 1
li = [i,"反面"]
tr.insert("",END,values=li)
if p == 1:
coit = coit + 1
li = [i,"正面"]
tr.insert("",END,values=li)
count = count+1
coin1.set(count)
i = i+1
coin1.set("完成")
#反面
coinf.set(coif/t)
coint.set(coit/t)
except:
""""""
ok3.configure(state='normal')
det.configure(state='normal')
ok1.configure(state='normal')
det.configure(state='normal')
det1.configure(state='normal')
ok4.configure(state='normal')
def dice():
try:
ok3.configure(state='disabled')
det.configure(state='disabled')
ok1.configure(state='disabled')
det.configure(state='disabled')
ok4.configure(state='disabled')
det1.configure(state='disabled')
n = int(dice1.get())
i = 1
x=tr.get_children()
cou1 = cou2 = cou3 = cou4 = cou5 = cou6 = 0
for item in x:
tr.delete(item)
while i<=n:
p = randint(1,6)
li = [i,p]
if p == 1:
cou1 = cou1 + 1
if p == 2:
cou2 = cou2 +1
if p == 3:
cou3 = cou3 +1
if p == 4:
cou4 = cou4 +1
if p == 5:
cou5 =cou5 +1
if p == 6:
cou6= cou6 + 1
li = [i,p]
tr.insert("",END,values=li)
dicet.set(i)
i = i+1
dicet.set("完成")
dic1.set(cou1/n)
dic2.set(cou2/n)
dic3.set(cou3/n)
dic4.set(cou4/n)
dic5.set(cou5/n)
dic6.set(cou6/n)
except:
""""""
ok3.configure(state='normal')
det.configure(state='normal')
ok1.configure(state='normal')
det.configure(state='normal')
det1.configure(state='normal')
ok4.configure(state='normal')
def wind(x):
win21.place_forget()
win22.place_forget()
win3.place_forget()
win4.place_forget()
if x == 1:
win21.place(relx = 0,rely = 0,relwidth = 1,relheight = 1)
if x == 2:
win22.place(relx = 0.2,rely = 0.1,relwidth = 0.6,relheight = 0.8)
if x == 3:
win3.place(relx = 0.2,rely = 0.1,relwidth = 0.6,relheight = 0.8)
if x == 4:
win4.place(relx = 0.2,rely = 0.1,relwidth = 0.6,relheight = 0.8)
if __name__ == '__main__':
win = Tk()
win.title("概率")
win.update()#刷新窗口信息
sd = win.winfo_screenwidth() #得到屏幕宽度
sh = win.winfo_screenheight() #得到屏幕高度
wd = 1000
wh = 600
x = (sd-wd) / 2 #居中
y = (sh-wh) / 2 #居中
win.geometry("%dx%d+%d+%d" %(wd,wh,x,y))
pn = IntVar()
pn1 = StringVar()
n = IntVar()
ran1 = StringVar()
coin1 = StringVar()
dic6 = StringVar()
dic5 = StringVar()
dic4 = StringVar()
dic3 = StringVar()
dic2 = StringVar()
dic1 = StringVar()
win1 = Frame(win,bg = "#FFFFFF")
Label(win1,text = " ",bg = "#FFFFFF",height = 1).grid(row = 0,column = 0)
win1.place(relx = 0,rely = 0,relwidth = 1,relheight = 0.1)
Button(win1,text = "随机数",width = 6,command = lambda :wind(2)).grid(row = 1,column = 1,padx = 5)
Button(win1,text = "抛硬币",width = 6,command = lambda :wind(3)).grid(row = 1,column = 2,padx = 5)
Button(win1,text = "骰子",width = 6,command = lambda :wind(4)).grid(row = 1,column = 3,padx = 5)
#Button(win1,text = "抽奖",width = 6,command = lambda :wind(5)).grid(row = 1,column = 4,padx = 5)
#Button(win1,text = "随机点名",width = 6,command = lambda :wind(6)).grid(row = 1,column = 4,padx = 5)
Label(win1,text = "版本:V0.01",bg ="#FFFFFF").grid(row = 0,column = 4,padx = 650)
Label(win1,text = "作者博客:yxqfx.cn",bg ="#FFFFFF").grid(row = 1,column = 4)
win2 = Frame(win)
win2.place(relx = 0,rely = 0.1,relwidth = 1,relheight = 0.9)
#...随机数
#表格
win21 = Frame(win2,bg = "#FFFFFF")
win21.place(relx = 0,rely = 0,relwidth = 1,relheight = 1)
sc = Scrollbar(win21)
tr = ttk.Treeview(win21, height=5, show="headings", columns=("序号","值"),yscrollcommand= sc.set)#表格
tr.column("序号", width=5, anchor='center') # 表示列,不显示
tr.column("值", width=10, anchor='center')
tr.heading("序号", text="序号") # 显示表头
tr.heading("值", text="值")
tr.place(relx = 0,rely = 0,relwidth = 0.95,relheight = 1)
sc.config(command = tr.yview)
sc.place(relx = 0.98,rely = 0,relwidth = 0.02,relheight = 1)
win21.place_forget()#隐藏
#....随机数
win22 = Frame(win2,bg = "#FFFFFF")
win22.place(relx = 0.2,rely = 0.1,relwidth = 0.6,relheight = 0.8)
win221 = Frame(win22,bg = "#FFFFFF")
win221.place(relx = 0.2,rely = 0,relwidth = 0.4,relheight = 0.4)
maxt = Label(win221,text = " 最大值:",font =("楷体",15),bg = "#FFFFFF")
maxt.grid(row = 1,column = 1,padx = 10,pady = 5)
mint = Label(win221,text = " 最小值:",font =("楷体",15),bg = "#FFFFFF")
mint.grid(row = 2,column = 1)
maxe = Entry(win221)
maxe.grid(row = 1,column = 2)
mine = Entry(win221)
mine.grid(row = 2,column = 2)
Label(win221,text = " 次数:",font =("楷体",15),bg = "#FFFFFF").grid(row = 3,column = 1)
c = Entry(win221)
c.grid(row = 3,column = 2)
Label(win221,text = "知否唯一",font =("楷体",15),bg = "#FFFFFF").grid(row = 5,column = 1)
TF = StringVar()
TF.set("否")
var = ["是","否"]
OptionMenu(win221,TF,* var).grid(row = 5,column = 2)
win23 = Frame(win22,bg = "#FFFFFF")
win23.place(relx = 0.3,rely = 0.4,relwidth = 0.3,relheight = 0.4)
ok1 = Button(win23,text ="开始",command = lambda :start_new_thread(ran,()))
ok1.place(relx = 0.3,rely = 0.4,relwidth = 0.3,relheight = 0.2)
re = Label(win23,textvariable = ran1)
re.place(relx = 0.4,rely = 0.7,relwidth = 0.2,relheight = 0.1)
#win22.place_forget()
#...硬币
coint = StringVar()
coinf = StringVar()
win3 = Frame(win2,bg = "#FFFFFF")
win3.place(relx = 0.2,rely = 0.1,relwidth = 0.6,relheight = 0.8)
Label(win3,text = "次数",font =("楷体",15),bg = "#FFFFFF").grid(row = 1,column = 1,pady = 40,padx = 20)
Entry(win3,textvariable = n,bg = "#FFFFFF").grid(row = 1,column = 2,padx = 0)
ok3 = Button(win3,text = "开始",command = lambda :start_new_thread(coin,()))
ok3.grid(row = 2,column = 3)
Label(win3,textvariable = coin1,width = 5).grid(row = 3,column = 3)
Label(win3,text = "正面:",bg = "#FFFFFF").grid(row= 4,column = 1)
Label(win3,textvariable = coint,bg = "#FFFFFF" ).grid(row = 4,column = 2)
Label(win3,text = "反面",bg = "#FFFFFF" ).grid(row = 5,column = 1)
Label(win3,textvariable = coinf,bg = "#FFFFFF").grid(row = 5,column = 2)
det = Button(win3,text = "详情",command = lambda :wind(1))
det.grid(row = 6,column = 3)
win3.place_forget()
#...骰子
dicet = StringVar()
win4 = Frame(win2,bg = "#FFFFFF")
win4.place(relx = 0.2,rely = 0.1,relwidth = 0.6,relheight = 0.8)
Label(win4,text = "次数",font =("楷体",15),bg = "#FFFFFF").grid(row = 1,column = 1,pady = 40,padx = 20)
dice1 = Entry(win4,bg = "#FFFFFF")
dice1.grid(row = 1,column = 2,padx = 0)
ok4 = Button(win4,text = "开始",command = lambda :start_new_thread(dice,()))
ok4.grid(row = 2,column = 3)
Label(win4,textvariable = dicet,width = 5).grid(row = 3,column = 3)
Label(win4,text = "1:",bg = "#FFFFFF" ).grid(row= 4,column = 1)
Label(win4,textvariable = dic1,bg = "#FFFFFF" ).grid(row = 4,column = 2)
Label(win4,text = "2:",bg = "#FFFFFF" ).grid(row = 5,column = 1)
Label(win4,textvariable = dic2,bg = "#FFFFFF" ).grid(row = 5,column = 2)
Label(win4,text = "3:",bg = "#FFFFFF" ).grid(row = 5,column = 1)
Label(win4,textvariable = dic3,bg = "#FFFFFF" ).grid(row = 5,column = 2)
Label(win4,text = "4:",bg = "#FFFFFF" ).grid(row = 7,column = 1)
Label(win4,textvariable = dic4,bg = "#FFFFFF" ).grid(row = 7,column = 2)
Label(win4,text = "5:",bg = "#FFFFFF" ).grid(row = 8,column = 1)
Label(win4,textvariable = dic5,bg = "#FFFFFF" ).grid(row = 8,column = 2)
Label(win4,text = "6:",bg = "#FFFFFF" ).grid(row = 9,column = 1)
Label(win4,textvariable = dic6,bg = "#FFFFFF" ).grid(row = 9,column = 2)
det1 = Button(win4,text = "详情",command = lambda :wind(1))
det1.grid(row = 10,column = 3)
win4.place_forget()
mainloop()
[/pay]


Comments 1 条评论
I appreciate the content on your web sites. Thanks a lot.