Guest User

Untitled

a guest
Apr 26th, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. function _FACT(num) {
  2. var rval = 1;
  3. for (var i = 2; i <= num; i++) {
  4. rval = rval * i;
  5. }
  6. return rval;
  7. };
  8.  
  9. function _COMBIN(x, y) {
  10. if (x < y) return 0;
  11. return _FACT(x) / ( _FACT(y) * _FACT(x - y) );
  12. };
  13.  
  14. // Standard Lotto Berechnung.
  15. function LOTTO(topf, gezogen, richtige) {
  16. var correctPos = _COMBIN(gezogen, richtige);
  17. var wrongPos = _COMBIN(topf - gezogen, gezogen - richtige);
  18. var pos = correctPos * wrongPos;
  19. var allPos = _COMBIN(topf, gezogen);
  20.  
  21. return pos / allPos;
  22. }
  23.  
  24. // Berechnet die Wahrscheinlichkeit bei einer Ziehung mindestens x richtige zu haben.
  25. function LOTTO_KUMUL(topf, gezogen, richtige) {
  26. var kumul = 0;
  27. for(var i = richtige; i <= gezogen; i++) {
  28. kumul += LOTTO(topf, gezogen, i);
  29. }
  30. return kumul;
  31. }
  32.  
  33. // Berechnet die Wahrscheinlichkeit bei der letzten Ziehung einen neuen Gewinner zu finden, wenn in jeder vorangehenden Ziehung keine gefunden wurde.
  34. function LOTTO_STEP_DEPEND(topf, gezogen, richtige) {
  35. if (gezogen == richtige) {
  36. return LOTTO(topf, gezogen, richtige);
  37. }
  38. // Nur die mit richtige-1 im letzten Schritt können hier gewinnen.
  39. var lastDrawNum = gezogen - 1
  40. var chanceToBeOneOf = LOTTO(topf, lastDrawNum, richtige - 1);
  41. // Die neue Ziehung ist aus dem Topf verbleibender Gegestände
  42. var potPre = topf - lastDrawNum;
  43. var chanceToGetTheOne = LOTTO(potPre, 1, 1);
  44. // Combine chances
  45. return chanceToBeOneOf * chanceToGetTheOne;
  46. }
Add Comment
Please, Sign In to add comment