PasteRack.org
Paste # 85630
2018-03-14 23:50:28

Fork as a new paste.

Paste viewed 132 times.


Embed:

dice

  1. #lang racket
  2.  
  3. (require data/enumerate
  4.          data/enumerate/lib)
  5.  
  6. (define num-dice 8)
  7. (define num-sides 6)
  8.  
  9. (define-values (total-ways ways-with-all-values)
  10.   (for/fold ([total-ways 0]
  11.              [ways-with-all-values 0])
  12.             ([dice (in-enum (listof-n/e (below/e num-sides) num-dice))])
  13.     (values
  14.       (add1 total-ways)
  15.       (+ ways-with-all-values
  16.          (if (= (set-count (list->set dice)) num-sides)
  17.              1 0)))))
  18.  
  19. (/ ways-with-all-values total-ways)

=>

665/5832