Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Julia-ohjelma apinaveikkaus.jl
- # Monivalintatehtävän apinaveikkaus - arvaamalla
- # Esitetään n kysymystä
- # Kussakin kysymyksessa on m vaihtoehtoa, joista vain yksi on oikea
- # Lasketaan apinaveikkauksen todennäköisyydet oikeiden vastausten määrille
- # sekä tätä paremmille tai huonommille veikkauksille
- # Laskenta perustuu binomitodennäköisyyteen
- # Juhani Kaukoranta 11.12.2020
- function kysely()
- println("anna monivalintakysymysten lukumäärä ")
- ntxt = readline()
- n = parse(Int,ntxt)
- println("Anna yksittäisen kysymyksen eli osion vastausvaihtoehtojen lukumäärä ")
- ntxt = readline()
- m = parse(Int,ntxt)
- # oikean todennäköisyys p,väärän todennäköisyys 1-p
- p = 1.0/m
- println("Kussakin osiossa oikean vastauksen todennäköisyys = ",p)
- end
- function tasan(n,m,k)
- # tasan k oikein
- p = 1.0/m # kunkin osion vaihtoehtojen määrä
- return binomial(n,k)*p^k*(1-p)^(n-k)
- end
- function paremmin(n,m,k)
- # apinaveikkaus paremmin kuin k oikein
- p = 1.0/m # kunkin osion vaihtoehtojen määrä
- if k == n
- return 0
- end
- summa = 0
- for i = k+1:n
- summa += binomial(n,i)*p^i*(1-p)^(n-i)
- end
- return summa
- end
- function huonommin(n,m,k)
- # huonommin kuin k oikein
- p = 1.0/m # kunkin osion vaihtoehdojen määrä
- if k == 0
- return 0
- end
- sum = 0
- for i = 0 : k-1
- sum += binomial(n,i)*p^i*(1-p)^(n-i)
- end
- return sum
- end
- function apinaveikkaustaulukko(n,m)
- # n kysymystä, kussakin m vaihtoehtoa joista yksi oikein
- p = 1.0/m # kunkin osion oikean vastauksen todennäköisyys
- println("Jos apina veikkaisi, saataisiin todennäköisyystaulukko:")
- println()
- @printf("%s %s %s %s\n","tulos", "tasan","paremmin","huonommin")
- for k = 0 : n
- @printf("%2d %5.5f %5.5f %5.5f\n",k,tasan(n,m,k), paremmin(n,m,k),huonommin(n,m,k))
- end
- println("Odotusarvo apinaveikkauksen oikeiden vastausten määräksi = ",p*n)
- end
Advertisement
Add Comment
Please, Sign In to add comment