Size: a a a

2020 December 10

AP

Aleksei (astynax) Pi... in Haskell Start
Aragaer
крч
combinations x | x < 1     = 0
              | x == 1    = 1
              | otherwise = combinations (x-1) + combinations (x-2) + combinations (x-3)
Древовидная рекурсия там, где можно было обойтись без неё? Ну-ну
источник

A

Aragaer in Haskell Start
с мемоизацией нормально
источник

A

Aragaer in Haskell Start
но наверняка можно переписать по аналогии с фибоначчи
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Aragaer
крч
combinations x | x < 1     = 0
              | x == 1    = 1
              | otherwise = combinations (x-1) + combinations (x-2) + combinations (x-3)
Где тут мемоизация?
источник

AP

Aleksei (astynax) Pi... in Haskell Start
По-вашему, Хаскель всё подряд мемоизирует магически?
источник

JS

Jerzy Syrowiecki in Haskell Start
наверно, надо читать "если с мемоизацией, то нормально"
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Если с "если", то нормально :)
источник

к

кана in Haskell Start
уверен что можно за О(1) сделать, в худшем случае за логарифм
источник

A

Aragaer in Haskell Start
да, предполагалось с если
источник

TZ

Timofey Zakrevskiy in Haskell Start
Какая хорошая сегодня задачка на AoC
источник

TZ

Timofey Zakrevskiy in Haskell Start
Или две минуты с ручкой и бумажкой, или полчаса крутить вентиляторы
источник

AP

Aleksei (astynax) Pi... in Haskell Start
На бумаге почеркал, да. Потому что не у компа был, а хотелось развлечься :)
источник

A

Aragaer in Haskell Start
не знаю про две минуты, я полчаса тупил 8)
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Я просто сгенерил все замены вида
[1, 1, 1, 1, 1]
[1,    2,    2]
[   2, 1, 1, 1]
[   2,       3]
...
(такие разницы получаются, если выкинуть один или два элемента с вкладом +1)
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Количества вариантов мемоизировал, а дальше

product . map ((variants !!) . length) . filter ((== 1) . head) . group
источник

AP

Aleksei (astynax) Pi... in Haskell Start
(только менее partial :))
источник

TZ

Timofey Zakrevskiy in Haskell Start
Похвастаюсь:
$ stack exec -- advent --day 10 +RTS -s
<print answers>
        953,472 bytes allocated in the heap
             48 bytes copied during GC
         56,008 bytes maximum residency (1 sample(s))
        116,024 bytes maximum slop
<skip>
 INIT    time    0.000s  (  0.001s elapsed)
 MUT     time    0.000s  (  0.011s elapsed)
 GC      time    0.000s  (  0.000s elapsed)
 EXIT    time    0.000s  (  0.000s elapsed)
 Total   time    0.000s  (  0.012s elapsed)
источник

TZ

Timofey Zakrevskiy in Haskell Start
мемоизации нет
источник

AP

Aleksei (astynax) Pi... in Haskell Start
Да оно и без мемоизации быстро работает, на самом деле. Главное — не делать перебор всего набора данных :)
источник

A

Aragaer in Haskell Start
$ time ./10 < input10
2376
129586085429248

real  0m0.002s
user  0m0.001s
sys  0m0.001s
источник