総当たり戦の日程作成
Posted feedbacks - Scheme
参考にあったアルゴリズムを使いました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | (define (kirkman-2 n)
(define (first n)
(append '((1 2)) (comb 3 n)))
(define (comb low high)
(if (= (- high low) 1)
(list (list low high))
(cons (list low high)(comb (+ low 1) (- high 1)))))
(define (rotate m n list)
(map
(lambda (ilist) (map (lambda (i) (+ (% (+ i m) n) 1)) ilist))
list))
(define (iter-rotate m datalist)
(if (= m 0)
'()
(cons (rotate m n datalist) (iter-rotate (- m 1) datalist))))
(iter-rotate n (first n)))
(display (kirkman-2 6))
(newline)
|


ryugate
#5661()
Rating2/2=1.00
see: カークマンの組分け
[ reply ]