shiro #2322(2007/08/18 18:38 GMT) [ Scheme ] Rating1/1=1.00
シーケンスのshuffleはライブラリに追加しようかなあ。 今回のお題はshow-bingo関数で実装してます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
(use srfi-1) (use srfi-27) (use srfi-42) (use gauche.sequence) (use util.list) (define (shuffle! seq) (do-ec (: n (- (size-of seq) 1) 0 -1) (let1 p (random-integer (+ n 1)) (unless (= p n) (let1 tmp (ref seq n) (set! (ref seq n) (ref seq p)) (set! (ref seq p) tmp))))) seq) (define (bingo n) (shuffle! (iota n 1))) (define (show-bingo lis) (do-ec (: row (slices (zip (iota (length lis) 1) lis) 10)) (begin (do-ec (: p row) (format #t "~3d" (car p))) (newline) (do-ec (: p row) (format #t "~3d" (cadr p))) (newline) (newline))))
Rating1/1=1.00-0+
[ reply ]
shiro
#2322()
[
Scheme
]
Rating1/1=1.00
Rating1/1=1.00-0+
[ reply ]