Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # wins = peräkkäisia voittoja, onnistumisia
- # n = yritysten lukumäärä lukumäärä
- # winProb = voiton, onnistumisen todennäköisyys
- # ajoesim: 20 heitolla 4 peräkkäisen klaavan sarja (0.47801876068115234)
- # probOfWins(20,4,0.5,false) --> 0.47801876068115234
- " probOfWins(100,20,0.9,false) --> 0.7752991958795028
- # Juhani Kaukoranta 12.02.2023
- using Memoize # hoitelee rekursion stack-optimoinnin
- @memoize function probOfWins(n,wins,winProb,saved)
- if saved == true
- return result
- end
- if wins > n || n <= 0 # mahdoton tilanne
- result = 0
- else
- result = winProb^wins
- for firstTail = 1 : wins
- pr = probOfWins(n-firstTail,wins,winProb,saved)
- result += (winProb^(firstTail-1))*(1-winProb)*pr
- end
- saved = true
- return result
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment