jukaukor

ConsecutiveWins.jl

Feb 12th, 2023 (edited)
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. # wins = peräkkäisia voittoja, onnistumisia
  2. # n = yritysten lukumäärä lukumäärä
  3. # winProb = voiton, onnistumisen todennäköisyys
  4. # ajoesim: 20 heitolla 4 peräkkäisen klaavan sarja (0.47801876068115234)
  5. # probOfWins(20,4,0.5,false) --> 0.47801876068115234
  6. " probOfWins(100,20,0.9,false) --> 0.7752991958795028
  7. # Juhani Kaukoranta 12.02.2023
  8.  
  9. using Memoize # hoitelee rekursion stack-optimoinnin
  10. @memoize function probOfWins(n,wins,winProb,saved)
  11. if saved == true
  12. return result
  13. end
  14. if wins > n || n <= 0 # mahdoton tilanne
  15. result = 0
  16. else
  17. result = winProb^wins
  18. for firstTail = 1 : wins
  19. pr = probOfWins(n-firstTail,wins,winProb,saved)
  20. result += (winProb^(firstTail-1))*(1-winProb)*pr
  21. end
  22. saved = true
  23. return result
  24. end
  25. end
  26.  
Advertisement
Add Comment
Please, Sign In to add comment