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

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

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

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

Поделиться
Отправить
Запинить
10 комментариев
aktuba

Покажи 6-й!)

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

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

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

А 10-е решил?

aktuba

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

aktuba

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

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

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

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

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

aktuba

[...]

вот так)

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

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

aktuba

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

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

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

aktuba

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

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

Популярное