Tämä ohjelma laskee kolme eri todennäköisyyttä: todennäköisyyden että molemmat ovat onnistuvat, todenäköisyyden että ainakin yksi onnistuu ja todennäköisyyden että vain yksi onnistuu. Tulokset näytetään liukusäätimissä ja sen lisäksi piirakkakaaviona (jos käyttäjä sallii). Ohjelmassa käytetään tkinter ja matplotlib-kirjastoja.
ja-tapahtuman todennäköisyys lasketaan kertomalla molemmat todennäköisyydet. tai-tapahtuman todennäköisyys lasketaan laskemalla todennäköisyyden yhteen ja vähentämällä siitä ja-tapahtuma. toisessa tai-tapahtumassa vähennetään vielä toinen ja-tapahtuma. Todennäköisyydet ilmoitetaan 0-1 välillä.
from tkinter import * import tkinter as tk import matplotlib.pyplot as plt import numpy as np #Tässä ohjelmassa lasketaan todennäköisyydet, laitetaan tulokset liukusäätimiin ja mahdollisesti piirretään piirakkakaavio root = Tk() def Laske(tn,tn2): #Lasketaan kolme todennäköisyyttä ja = tn*tn2 tai = tn+tn2-ja tai2 = tai-ja return ja,tai,tai2 def Piirra(ja,tai,tai2): #Piirretään piirakkakaavio fig, ax = plt.subplots() koko = 0.3 cmap = plt.get_cmap("tab20c") arvot = np.array([[ja,0.0],[tai,tai2]]) ulkoVarit = cmap(np.arange(3)*4) sisaVarit = cmap([1,2,3]) ax.pie(arvot.sum(axis=1),radius=1,colors=ulkoVarit,wedgeprops=dict(width=koko,edgecolor='w')) ax.pie(arvot.flatten(),radius=1-koko,colors=sisaVarit,wedgeprops=dict(width=koko,edgecolor='w')) plt.show() def Tulos(): #Lasketaan tulokset erillisessä funktiossa. #Lasketaan kolme todennäköisyyttä. #1) Todennäköisyys, että molemmat tapahtuu #2) Todennäköisyys, että vähintään toinen tapahtuu #3) Todennäköisyys, että vain toinen tapahtuu tn = float(e1.get()) tn2 = float(e2.get()) ja,tai,tai2 = Laske(tn,tn2) #Näytetään tulokset liukusäätimissä. tulosJa.set(ja*100) tulosTai.set(tai*100) tulosTai2.set(tai2*100) if (Valinta.get() == 1): Piirra(ja,tai,tai2) frame = Frame(root) frame.pack() #Ensimmäiseen kehykseen laitetaan tulossäätimet tulosJa = DoubleVar() scale = Scale(frame,from_=0, to=100,state=DISABLED, variable=tulosJa) scale.pack() tulosTai = DoubleVar() scale2 = Scale(frame,from_=0, to=100,state=DISABLED,variable=tulosTai) scale2.pack() tulosTai2 = DoubleVar() #Ehdoton tai scale3 = Scale(frame,from_=0, to=100,state=DISABLED,variable=tulosTai2) scale3.pack() frame2 = Frame(root) frame2.pack() #Toiseen kehykseen laitetaan loput kontrollit. e1 = Entry(frame2,bd=5) e1.pack() e2 = Entry(frame2,bd=5) e2.pack() Valinta = IntVar() c1 = Checkbutton(frame2,text="Kaavio",variable=Valinta,onvalue=1,offvalue=0) c1.pack() btn = Button(frame2,text="Tulos",command=Tulos) btn.pack() root.mainloop()
numpy on aika iso kirjasto ottaa käyttöön noin pienen asian takia.
Mikä on pisin ohjelma, jonka olet kirjoittanut?
Rehellisesti sanottuna tästä ohjelmasta ei varmaan ole kenellekään paljoa hyötyä, ja uutta rakentavaa palautetta on vaikea antaa näin lyhyestä jutusta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.