Симметрия, инварианты и брутфорс
Пол Грэм как-то писал, что есть два вида самоподобия: симметрия и рекурсия. Про рекурсию я знал, потому что макаки-красноглазики её очень любят. Поэтому хидден-гемы лежат в симметриях, а не рекурсиях.
Суть задач на симметрию в том, чтобы найти инварианты и не думать о них. Вернее выяснить, что условно NP=/= P и заниматься чем-то ещё (это важная отсылка, погуглите).
В жизни слишком много инвариантов, чтобы описывать каждый, поэтому брутфорсом этот вопрос не решается, на практике NP=/= P.
Поэтому я изобрёл лайт-форс. Покупайте напиток на полках Никоры по всей Грузии с 1 мая.
Если серьезно, то лайт-форс это довольно тривиальная идея о низковисящих плодах. То есть, задача о рюкзаке — это классическая задача комбинаторной оптимизации, цель которой — выбрать набор предметов с наибольшей суммарной ценностью, не превышая допустимый вес рюкзака. Классическая NP полная задача. Как её решать ирл — очевидно. Берёшь самое ценное, заполнив половину веса, а все остальные ресурсы тратишь на подбор маршрута и поиск тактик, которые не требуют много вещей. Если ты не логист-слуга цивилизации, то ебаться с NP полнотой ты не обязан.
Кстати про рекурсию. Суть рекурсии всегда тюрьма. Сразу вспомнил рассказ "Это ты сделал мои голубые глаза голубыми". Там про то, что у всех глаза голубые, но есть ебанутый закон, что всех голубоглазых надо убить. В итоге там ебанутые рассуждения в духе "он знает, что я знаю, что он знает, что я знаю..." И даже какие-то выводы из этого. Но прикол в том, что это аналог загадки про два стула. Спойлер:
У каждого было достаточно информации, чтобы доказать, без капли сомнения, что у всех у нас голубые глаза. В полночь каждому из нас предстояло совершить ритуальное самоубийство.
«Знаете, что?» — сказала Энули, — «Я всегда хотела вам сказать это. У ВСЕХ У ВАС ГОЛУБЫЕ ГЛАЗА! ЖИВИТЕ С ЭТИМ!»
Ну то есть решение всей этой рекурсии буквально "Макс, иди нахуй".
Так вот, в задачах на симметрию тот же рекурсивно-тюремный вайб. Типа сначала выясни все инварианты, а только потом решай через то, что не инвариант. Зачем?
В жизни достаточно точно выяснить, что что-то точно не является инвариантом и это уже можно использовать как устойчивое структурное преимущество. Даже полуинвариант, типа "имей не стандартный интеллектуальный бэкграунд" даёт устойчивое преимущество, но правда только внутри структуры.