Problem 228
コンテンツ
228 Minkowski Sums
ミンコフスキー和を求める問題.
一般の図形のミンコフスキー和を求めるのは難しいが…
今回は,凸な図形でしかも,かなり,かたちが綺麗.
整数演算で大丈夫なので,計算誤差も心配ない.
import Data.Set (unions, size, fromAscList) import Data.Ratio ((%)) p228 :: (Integral a) => a -> a -> Int p228 m n = size.unions.map polygon $ [m..n] where polygon k = fromAscList [ l % k | l <- [..k - 1]] main :: IO () main = print $ p228 1864 1909
もう少し効率化できそうな気配があるが,十分はやいので良しとする.
作成者 Toru Mano
最終更新時刻 2023-01-01 (c70d5a1)