fork download
  1. (defun probability-of-kill (sides health)
  2. (* (/ (expt sides (floor health sides)))
  3. (if (> (mod health sides) 0)
  4. (/ (1+ (- sides (mod health sides))) sides)
  5. 1)))
  6.  
  7. (progn
  8. (dolist (x '((4 1)
  9. (4 4)
  10. (4 5)
  11. (4 6)
  12. (1 10)
  13. (100 200)
  14. (8 20)))
  15. (format t "~a sides, ~a health -> ~f% probability~%"
  16. (first x)
  17. (second x)
  18. (* 100 (probability-of-kill (first x) (second x)))))
  19. (terpri))
Success #stdin #stdout 0.01s 10528KB
stdin
Standard input is empty
stdout
4 sides, 1 health -> 100.0% probability
4 sides, 4 health -> 25.0% probability
4 sides, 5 health -> 25.0% probability
4 sides, 6 health -> 18.75% probability
1 sides, 10 health -> 100.0% probability
100 sides, 200 health -> 0.01% probability
8 sides, 20 health -> 0.9765625% probability