jukaukor

kyselyn_apinaveikkaus.jl

Nov 3rd, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  1. # kyselyn_apinaveikkaus.jl
  2. # Julia-ohjelma
  3. # Monivalintatehtävän apinaveikkaus
  4. # Esitetään n kysymystä
  5. # Kussakin kysymyksessa on m vaihtoehtoa, joista vain yksi on oikea
  6. # Lasketaan apinaveikkauksen todennäköisyydet oikeiden vastausten määrille
  7. # sekä tätä paremmille tai huonommille veikkauksille
  8. # Laskenta perustuu binomitodennäköisyyteen
  9. # Juhani Kaukoranta 3.11.2019
  10.  
  11. using Printf
  12.  
  13. println("Anna monivalintakysymysten lukumäärä")
  14. ntxt = readline()
  15. n = parse(UInt,ntxt)
  16. println("Anna yksittäisen kysymyksen vastausvaihtoehtojen lukumäärä ")
  17. ntxt = readline()
  18. m = parse(UInt,ntxt)
  19. # oikean todennäköisyys p,väärän todennäköisyys 1 -p
  20. p = 1.0/m
  21.  
  22.  
  23. # huonommin kuin k oikein
  24. function huonommin(k)
  25. if k == 0
  26. return 0
  27. end
  28. sum = 0
  29. for i = 0 : k-1
  30. sum += binomial(n,i)*p^i*(1-p)^(n-i)
  31. end
  32. return sum
  33. end
  34.  
  35.  
  36. # apinaveikkaus paremmin kuin k oikein
  37. function paremmin(k)
  38. if k == n
  39. return 0
  40. end
  41. sum = 0
  42. for i = k+1: n
  43. sum += binomial(n,i)*p^i*(1-p)^(n-i)
  44. end
  45. return(sum)
  46. end
  47.  
  48. println()
  49. println("Jos apina veikkaisi, saataisiin todennäköisyystaulukko:")
  50. println()
  51. for k = 0 : n
  52. @printf("Tasan %2.0f oikein %1.7f paremmin = %1.7f huonommin = %1.7f\n",k,binomial(n,k)*p^k*(1-p)^(n-k),paremmin(k),huonommin(k))
  53. #println("Tasan %2.0f",k," oikein = %1.7f",binomial(n,k)*p^k*(1-p)^(n-k)," paremmin = ","%1.7f", paremmin(k)," huonommin = ","%1.7f",huonommin(k))
  54. end
  55. @printf("Odotusarvo apinaveikkauksen oikeiden vastausten määräksi = %2.1f\n",p*n)
Advertisement
Add Comment
Please, Sign In to add comment