Codesprint закончился, можно обсудить задачи. Лично я полностью решила четыре штуки:
- Picking Cards - произведение ((количество карт номиналом < i) - i + 1) по i от 1 до N.
- Coin Tosses - рекурсия по количеству орлов, которые осталось выбросить с текущего момента; за один шаг рекурсии рассматриваю один бросок монеты, и получаю либо орла (переход к "осталось выбросить на одного орла меньше"), либо решку (переход к известному матожиданию числа бросков, нужных для того, чтобы выбросить N орлов подряд - 2N+1-2). Немного начудила - считала не в целых, а в Decimal (Python), так что преобразование в строку получилось страшноватое, но прошло.
- Fraud Prevention - много-много парсинга и строковых манипуляций, в итоге я хранила все полученные строки в map тройной вложенности, с ключами deal id, email id, card info и последним значением - множеством order_id, соответствующих данному набору ключей. Обманными считались те пары deal id + email id, у которых было больше одной записи card info. Так получилось удобнее, чем сверять с предыдущими записями на ходу.
- Quora Classifier - задача, которая меня порадовала больше всего: она оказалась в точности тем, чему учил профессор Ng! Первый шаг - нормализация данных (интервалы значений не заданы, так что просто на максимум). Второй - логистическая регрессия + лекция Large Scale Machine Learning, т.е. параметры подстраиваются под один (случайно выбранный) образец, а не под все сразу. 100 000 итераций для качественного обучения хватило с запасом, прошло с первого сабмита.
Direct Connections:
Я тоже не очень в них разбираюсь). Для 1 символа достаточно 2х состояний начальное и терминальное. Для * и объединения нужно, имхо, пара новых состояний -- новое начальное и новое терминальное + несколько eps переходов (интересно как обойтись только 1 или 0 новыми состояниями?). Более того даже если в итоге получится только 50 состояний то при переходе к ДКА теоретически может получиться порядка 2^50 состояний, а у них мультитесты из 40 тестов и уже 100 состояний дают ТЛ.
UPD: Для конкатенации можно обойтись 0 новыми состояниями.