jukaukor

Kysely_binomitodennakoisyys.py

Nov 3rd, 2019
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. # Monivalintatehtävän apinaveikkaus
  2. # Esitetään n kysymystä
  3. # Kussakin kysymyksessa on m vaihtoehtoa, joista vain yksi on oikea
  4. # Lasketaan apinaveikkauksen todennäköisyydet oikeiden vastausten määrille
  5. # sekä tätä paremmille tai huonommille veikkauksille
  6. # Laskenta perustuu binomitodennäköisyyteen
  7. # Juhani Kaukoranta 3.11.2019
  8.  
  9. import math
  10.  
  11. n = int(input("anna monivalintakysymysten lukumäärä "))
  12. m = int(input("Anna yksittäisen kysymyksen vastausvaihtoehtojen lukumäärä "))
  13. # oikean todennäköisyys p,väärän todennäköisyys 1 -p
  14. p = 1.0/m
  15. def binomikerroin(n,k):
  16. return math.factorial(n)//(math.factorial(n-k)*math.factorial(k))
  17.  
  18. # huonommin kuin k oikein
  19. def huonommin(k):
  20. if k == 0:
  21. return 0
  22. sum = 0
  23. for i in range(0,k):
  24. sum += binomikerroin(n,i)*p**i*(1-p)**(n-i)
  25. return sum
  26.  
  27. # apinaveikkaus paremmin kuin k oikein
  28. def paremmin(k):
  29. if k == n:
  30. return 0
  31. sum = 0
  32. for i in range(k+1,n+1):
  33. sum += binomikerroin(n,i)*p**i*(1-p)**(n-i)
  34. return(sum)
  35.  
  36. print()
  37. print("Jos apina veikkaisi, saataisiin todennäköisyystaulukko:")
  38. print()
  39. for k in range(0,n+1):
  40. print("Tasan ","{:2}".format(k)," oikein = ","{:6.6f}".format(binomikerroin(n,k)*p**k*(1-p)**(n-k))," paremmin = ", "{:6.6f}".format(paremmin(k))," huonommin = ","{:6.6f}".format(huonommin(k)))
  41. print("Odotusarvo apinaveikkauksen oikeiden vastausten määräksi = ","{:3.1f}".format(p*n))
Advertisement
Add Comment
Please, Sign In to add comment