Stas
я понял, F# не для нищебродов с плохими ПК :)
Anatoly
Vasiliy
https://i.redd.it/l6hr3g799f261.jpg
Danil
Загадка от Жака Фреско
Vagif
Мой вариант решения задачи из Advent of Code 2020
https://gist.github.com/object/bd02bdf1a24ffc5168a8f3a5be3ba22e
Vagif
Дилан сейчас лайв решает https://youtu.be/dBpXhygf9r8
Ilya
Ilya
нашел https://adventofcode.com/2020/day/1
Vagif
Ага
Ilya
Ага
а данные только после регисрации?
Vagif
Ilya
Да
а какие числа у тебя получились?
Vagif
Ilya
Vagif
Язык какой-то странный, длинно выходит 😜
Ayrat
Ayrat
Vagif
Ilya
Пока что на сишарпе решение самое короткое...
Ayrat
Ayrat
Ayrat
хотя я щас посмотрел, вроде не тупой
Ilya
Ilya
Тупой перебор пока что у Дилана, вроде бы.
Ilya
А вот на фшарпе можно было бы весь код запихнуть в интерполяцию строки!
Ayrat
да, твой вариант неплох
let pair = // (456, 1564)
let fst = Seq.find (fun i -> data.Contains i && data.Contains(2020-i)) [1..2020]
fst, 2020 - fst
Ilya
Ayrat
это по желанию
Ilya
Можно было в одну строку написать.
Ilya
И в зип сложить.
Ayrat
Ayrat
похоже мой начальный вариант не так уж плох
Ayrat
дада, ща обобщим!
Vasily
Seq.pairs не покатит?
Vasily
А, у нас явного нет такого
Ayrat
Ayrat
переделал на общую
Ayrat
этот вызов ищет на 3 числа
Vasiliy
https://city4people.ru/post/nashi-popravki-v-byudzhet-moskvy.html
для тех кто в мск)
Ayrat
я кстати не смотрел в твое
Vasily
Можно, кстати, намного красивее
Ayrat
ну давай Василий
Vasily
Идея в том, чтобы сделать второй сет 2020 - x
Ayrat
стопудово деревом?
Roman
Vasily
Потом по идее пройти по первому сету и отсечь только то , что есть во втором
Vasily
В общем, зависит от того, сколько у нас памяти есть
Vasily
А можно и вообще ещё проще
Vasily
Set.contains у нас же o(1) типа?
Vasily
[ for i in s do if s.contains 2020-i then yield i*2020-i]
Vasily
Псевдокод
Roman
Ayrat
Roman
ты, Василий, пишешь по-русски, а надо на фшарпе
Vasily
Я с телефона
Vasily
Какие три числа?
Vasily
Которые в сумме 2020 дадут?
Ayrat
Ага
Vasily
Ayrat
Но там нет апи для вытаскивания поддерева
Ilya
Ayrat
Ayrat
Найди два (три, четыре...) числа из набора, которые в сумме дают 2020
Vasily
Ну тогда seq of seq по факту
Ayrat
Ну там можно через сортед сет сократить
Vasily
Можно рекурсивной функцией
Vasily
В теории
Vasily
Ещё вопрос , там любые три?
Vasily
Или полное множество
Aleksander
ну кстати с allPairs тоже можно провернуть
Vasily
Ну allpairs даёт только пары
Vasily
А тут уже речь о суммах
Aleksander
https://gist.github.com/khaale/534bc1b45eca5ff4231a6601ed70178e
Vasily
Точнее, о количестве >2
Aleksander
делаем попарную сумму элементов через allPairs, фильтруем < 2020, используем как вход в функцию для первой части