这是用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.