Comment detail
水の移し替えパズル (Nested Flatten)自己フォロー 1 2 3 みたいな数列だと、先ほどのコードだと停止しません。 答えがないので仕方ないとも言えますが、悔しいので、過程の再出現の時点で「n/a」と返すコードを書いてみました。 全ての変遷の履歴を持ち、チェックする為、2番目の例だとなかなか計算が終わりません。 実行結果: $ gosh 73.scm (4 2 10) -> 10 (1 2 3) -> n/a $
1 2 3 4 5 6 7 8 9 10 11 12 | (define (wpz . l)
(display #`",l -> ,(apply wp () l)\n"))
(define (wp n . l)
(let1 sl (sort l)
(cond ((= (caddr sl) (cadr sl)) (+ (length n) (cadr sl)))
((member sl n) "n/a")
(else (wp (cons sl n) (+ (car sl) 2) (- (cadr sl) 1) (- (caddr sl) 1))))))
(define (main args)
(wpz 4 2 10)
(wpz 1 2 3))
|
#3557 見ちゃうと、この解じゃ駄目な感じ。最小手数の証明も出来てないし。 自分でマイナス評価です。





katsu
#3569()
[
Scheme
]
Rating-1/1=-1.00
Rating-1/1=-1.00-0+
1 reply [ reply ]