Пишу сюда по трем причинам: (i) не могу молчать, (ii) думаю вам должно быть интересно, (iii) это еще один пример зачем нетривиальная математика бывает нужна программисту.
Используя хабр максимум как источник новостей про всякие андройды и прочий мир pop-IT, я всегда поражался несостоятельностью тамошних статей на хоть сколько-то околонаучные темы(взять хотя бы трендовые нейронные сети и «ИИ»). Но вот сейчас наткнулся я на пост «Как я завалил собеседование в Twitter», где рассказана кулстори парня, который не решил задачку «заполнения водой дискретной сутпеньки». Если пройдете по ссылке, то сможете лицезреть десятки постов в стиле «зачем это программисту надо уметь решать», или «что за глупое собеседование, он же в Твиттер интервьюировался, а не в канализацию», ну и прочие народные хохомы, о том что гад интервьюеры такие дураки, задают олимпиадные задачи, которые не позволяют судить о реальном уровне программистов.
Но никто не упомянул, что этот метод на самом деле называется «water-filling», который есть решение задачи оптимальной разгрузки коммуникационных каналов, которая ставится следущим образом
max_x \sum log(a_i + x_i),
s.t. x_i >= 0, \sum x_i = 1.
И решение выписывается через ККТ условия.
Я думаю понятно, зачем твитеру специалист, который хотя бы знал, что это задача разгруки информационных каналов, и мог бы ее решить(точнее просто заимплементить само решение).