Это сайт — моя персональная записная книжка. Интересна мне, по большей части, история, своя жизнь и немного программирование.

Правда выигрывает

Отличную игру подсмотрел у Сэма — в ней одиннадцать уровней, в каждом на экране функция, которая должна вернуть «true», аргумент функции вы пишете сами, причём его длина должна быть минимальной. На каждом уровне указан абсолютный минимум.

Мне пока не удалось победить уровнь №6 (30 символов против 22) и 10 (29 против 27), не хватило свободного времени на работе, чтобы додумать, попробую в выходные.

Решил все. №10 — утром, №6 — уже к полуночи. С номером шесть возился очень долго — пришлось через рефлексию отобрать все функции, которые не имеют обязательных параметров, просмотреть большинство и отбросить кучу интересных, но тупиковых идей.

10 комментариев
aktuba 2018

Покажи 6-й!)

Евгений Степанищев 2018

Лучше я подтолкну к решению ) Надо взять все встроенные функции, найти в них все, у которых нет обязательных параметров и которые при вызове с параметром запомнят предыдущее значение, а при вызове без него — вернут. Найти можно несложным скриптом :)

Потом уже легко уместить найденное в требуемый объём.

А 10-е решил?

aktuba 2018

До 10-го не дошел ещё). Про 6-й — хм, интересно. Займусь через часик, спс.

aktuba 2018

Спасибо, толчка хватило. Правда все-равно пришлось повозиться из-за привычки писать код без notice/warning/etc... Первоначально мой вариант был правильный […], но он явно длиннее варианта с нотайсем) В сумме потратил примерно минут 30.

10-й решил быстро, но в 28 символов) Минут за 5. Еще минут 15 потратил на удаление лишнего символа))))

Евгений Степанищев 2018

Я удалил решение всё же :) Вдруг кто-то ещё захочет решить самостоятельно ) Интересно, что в 10-м получилось 28, у меня 29 было, не понимаю как вышло 28 )

Можно на почту: imbolk@gmail.com

aktuba 2018

[...]

вот так)

Евгений Степанищев 2018

Опять же удалил решение. Не, я вообще не знал, что можно. Догадался, пока думал что можно сократить — так как других вариантов не оставалось. И даже в доке пока не нашёл, где написано, что так разрешается.

aktuba 2018

Ну я подобный подход как-то давно видел в каком-то проекте. Уже и не помню в каком. Тогда тоже удивлялся и в доках искал — не нашел.
Теперь мне интересно, как ты из 29 символов сделал 27, если использовал стандартный подход)

Евгений Степанищев 2018

Ну так я использовал стандартный, потом перебрал в уме всё дерево вариантов, понял, что есть несколько решений и все не укладываются, взял самое короткое, подумал, что конструкции языка не выкинуть, это невозможно, значит надо убирать не их, вот и додумался :)

aktuba 2018

подумал, что конструкции языка не выкинуть, это невозможно

я до сих пор думаю, что есть какой-то вариант для этого)))