Comment detail

水の移し替えパズル (Nested Flatten)
あれこれ考えていたらこれで解が出るような気がしました。
探索を書かせるのが趣旨だったらごめんなさい。
1
2
3
(defun water-puzzle (a b c)
  (loop for (x y) in `((,a ,b) (,b ,c) (,c ,a))
    if (zerop (mod (- x y) 3)) minimize (max x y)))
差が全部3の倍数であるときの挙動が(僕がCommonLispを読めないため)よくわかりませんでした。
その場合
(min (max a b) (max b c) (max c a))
と同じになりますから、a, b, c のうち二番目に大きいものが返るはずです。

Index

Feed

Other

Link

Pathtraq

loading...