Ищу некоторые предложения по полезным дискуссионным группам, статьям, историям успеха, справочным приложениям и инструментам (.Net) по теме поиска событий.
Я уже знаком с:
Статья Фаулера: который в основном запрашивает первое число, в котором статистическая сумма p (n) делится на 1000000.
Я использую рекурсивную фомулу Эйлера, основанную на пятиугольных числах (вычисленных здесь в pents
вместе с соответствующим знаком). Вот мой код:
ps = 1 : map p [1..] where
p n = sum $ map getP $ takeWhile ((<= n).fst) pents where
getP (pent,sign) = sign * (ps !! (n-pent))
pents = zip (map (\n -> (3*n-1)*n `div` 2) $ [1..] >>= (\x -> [x,-x]))
(cycle [1,1,-1,-1])
Хотя ps
, кажется, дает правильные результаты, он слишком медленный. Есть ли способ ускорить вычисление или мне нужен совершенно другой подход?