(define (dice n-sides n-dice) (if (= n-dice 0) '() (cons (+ (random n-sides) 1) (dice n-sides (- n-dice 1))))) (define (die n-sides) (+ (random n-sides) 1)) (define (dice-pair n-sides) (list (die n-sides) (die n-sides))) (define (coin-toss) (if (= (random 2) 0) 'H 'T)) (define (coin-tosses n) (if (= n 0) '() (cons (coin-toss) (coin-tosses (- n 1))))) (define (biased-coin-toss p) (if (< (uniform-random-number) p) 'H 'T)) (define *max-integer* (- (expt 2 31) 1)) (define (uniform-random-number) (exact->inexact (/ (random *max-integer*) *max-integer*))) (define (create-sequence fcn count) (if (= count 0) '() (cons fcn (create-sequence fcn (- count 1))))) (define (count-tosses heads tails seq) (if (null? seq) (list heads tails) (if (eq? (car seq) 'h) (count-tosses (+ heads 1) tails (cdr seq)) (count-tosses heads (+ tails 1) (cdr seq)))))