ランダムにビット列を作っていったら、[0,0,1] が最初に登場するのは、いつ頃でしょう?
自分でも試してみました。リストでも良いですよね。
(use math.mt-random)
(use srfi-1)
(define rand
(let1 m (make <mersenne-twister>)
(^ ()
(mt-random-integer m 2))))
(define (first-occurrence pat)
(let rec ((ls '()))
(let ((plen (length pat))
(llen (length ls)))
(if (and (<= plen llen)
(equal? (split-at ls plen) pat))
llen
(rec (cons (rand) ls))))))
(define (times i expr)
(let rec ((i i)(acc '()))
(if (or (negative? i)(zero? i))
acc
(let1 r (expr i)
(rec (- i 1)(cons r acc))))))
(define (average ls)
(round->exact (/ (apply + ls)(length ls))))
ほんまや。
0 件のコメント:
コメントを投稿