Chat:Ru/2020-09-22
_Lion_: ПРИВЕТ ВСЕМ
735487: у меня были python,ruby,php,c и c++ и хватило
_Lion_: :wave:
Uljahn: прив
magaiti: https://www.codingame.com/replay/488266668
735487: это они у тебя 2 раннера что ли? или любят парами ездить?
magaiti: когда как
magaiti: могут меняться
magaiti: кручу=верчу, обмануть хочу
735487: в этом реплее просто есть места где они оба на чек едут
magaiti: да ест такой иф
magaiti: если оба обгоняют раннера
Uljahn: это уже ближе к AI, чем хардкод ролей, тут и тимворк сильнее проявляется
735487: пытался задачку на клеши законтрибутить для ачивки. сука все заполнил и браузер упал. выяснил опытным путем что падает как только stub секцию заполняешь. пипец и не сохранилось нихера
Uljahn: браузер упал? :scream_cat:
Uljahn: дваненько с таким не встречался
735487: ну вкладка с сообщением out of memory
735487: и там раздел preview подозрительно мигал
735487: какая то лажа со скриптами что они память жрут я думаю
gybson_samara: на яндекс.кап пойдет кто?
Jokero: там же типо задачки только по ИИ
Jokero: для питонистов
Uljahn: :smiley:
Uljahn: Automaton2000: пора добавить в ЕГЭ по информатике задачки по ИИ
Automaton2000: кстати о книгах, читали Гарри Поттер и Методы Рационального Мышления?
magaiti: Automaton2000, а что ты думаешь о Василиске Роко?
Automaton2000: я понял что у меня нет
magaiti: ну слава богу
735487: https://imgur.com/a/qESxTi2 есть у кого нить мысли что тут делать надо?
wlesavo: сложна как то
magaiti: сумма циф р + заглавных букв * 3 + строчных * 2
magaiti: ы
wlesavo: неплохо
magaiti: че думаете, стоит мне реверс клашем заняться?
magaiti: набил 11/47.07 в гоночках, догоняйте
735487: да ответ я потом посмотрел у тех кто решил. сам не догадался
magaiti: ответ был 104? без него я б тоже не догадался, наверное
735487: у меня в гоночках есть 2 версии. одна умеет обыгрывать смита и робо но не подымается выше 15 места. другая подымается до 12 но проигрывает им всегда ))
magaiti: надо вычислять с кем играешь
magaiti: например по длине стелки
magaiti: зашибись идея?
735487: я в той задаче догадался что надо делать что то с кодами символов но не нашел формулу
735487: по какой длине стрелки ты предлагаешь противника определять?
magaiti: не с кодами, с порядковым номером в алфавите
magaiti: по расстоянию от пода до точки куда ехать
magaiti: в аутпуте противника
735487: а мы видим его аутпут разве?
magaiti: мм, хз
magaiti: давно не смотрел в ту часть кода
735487: тут не раик тут противника так просто не определишь
Uljahn: можно разве что дискретность углов поворота замерить
magaiti: и траста, по идее
735487: врядли это что то даст
Uljahn: я так в meanmax определил, какой коэффициент у кубера был в формуле -k*Vel
Uljahn: немножко инфы даст, с миру по нитке - и можно будет противников классифицировать худо-бедно
Uljahn: теортетически, можно сразу двумя подами блочить до таймаута, если блокер противника тупит где-то далеко и ждёт раннера
YurkovAS: или научиться определять, что противник использовал щит. интересно, дало бы это профит...
Uljahn: по коллизии же можно определять, а без коллизии - никак
magaiti: по ускорению?
Uljahn: если была коллизия, можно определить, включал ли противник щит, по перераспределению импульса
Uljahn: достаточно симулировать противника со щитом и ускорением 0
gybson_samara: в этом году у яндекса есть раздел "Алгоритмы", чет типа клэшей, 6 задач за 120 минут
magaiti: перепроверял код физики в csb, долго тупил над соударениями. В итоге я так понял, что у магуса код правильно симулирует сервер, но что они там в ЦГ курили, когда писали минимальный импульс?
magaiti: почему нормируется только половина импульса, и как это понять из описания csb?
Uljahn: в описании только минимальный импульс указан, т.е. если при соударении импульс меньше, то заменяется на минимальный, детали во время контеста получали реверсом реплеев, насколько я помню
magaiti: ну вот я о том, что реверс реплеев дает код, который с точки зрения физики не имеет смысла
magaiti: там вектор на самом деле 2*fx
magaiti: а на минимальный импульс проверяется его половина
magaiti: как, почему
magaiti: то есть как я должен догадаться что сравнивать надо не импульс, а его половину, и нормировать тоже половину?
gybson_samara: абсолютно упругий удар?
magaiti: да
magaiti: но нет
magaiti: супер-упругий
gybson_samara: оба пода одинаковой массы
magaiti: в описании сказан "миниальный импульс 120"
magaiti: обычно одинаоковой
magaiti: но не всегда, щит увеличивает массу в 10 раз
magaiti: и в коде вычисляется величина, равная половине передачи импульса, и вычитается два раза. причем второй раз она может нормироваться до 120, если она меньше
Uljahn: https://swagcoloredkitteh.github.io/2016/12/08/elastic-collision.html
magaiti: и?
magaiti: там сказано как, но не почему
magaiti: нам же не рассказали в конкурсе, как они решили сделать
magaiti: дали только одно число
Uljahn: ты такие вопросы задаёшь, будто модель для контеста физики писали
Uljahn: скорее всего, просто где-то стырили формулу :)
magaiti: стырили формулу, не разобрались, додумали сами
magaiti: т решили что это очевидно
magaiti: и*
magaiti: очевидно же, что минимальный импульс нужно сравнивать с половиной импулься
735487: то ты не видел какие хаки в раике бывают в физике
magaiti: это не хак, это произвол
Uljahn: может, чтобы никто не реверснул движок во время контеста
Uljahn: но такие почему-то всё равно нашлись, скорее всего - во французском чате админов запытали
magaiti: по нормальному надо нормировать max(j, jmin), а у них 0.5j+max(0.5j,jmin)
magaiti: да я думаю можно и так зареверсить, если настойчивость есть
magaiti: сделать статистику, подогнать формулу
735487: в первом раиковском они локалраннер декомпилировали
magaiti: ы
magaiti: а що це - раик? Республиканская ассоциация инвалидов-колясочников?
735487: чего так сразу то?
magaiti: хз первая ссылка
magaiti: ¯\_(ツ)_/¯
735487: первое слово russian последнее cup
magaiti: ясн
magaiti: я похоже стабильно беру 11-е теперь
magaiti: оптимизировал коллизии. но что делать дальше - хз
gybson_samara: Uljahn надоело мне во флоатах решать бэтмена, стал в матрицах =))))
gybson_samara: for y in range(height): http://chat.codingame.com/pastebin/af720c2b-4bca-4559-86f7-c68bd1da7c85
gybson_samara: как такое в нампи модно делать?
Uljahn: field[y < Y, x] = 0
Uljahn: надо подумать, как формулу прикрутить
Uljahn: Y это константный 1D массив (вектор) по сути, его можно бродкастить...
Uljahn: берём вектор-строку "y", бродкастим с вектор столбцом "Y" через сравнение, получаем матрицу-маску, которой индексируем: field[y < Y] = 0
Uljahn: x тут вообще не нужен будет нужны данные для тестов
gybson_samara: массив точек, да
Uljahn: вот так:
Uljahn: http://chat.codingame.com/pastebin/3b82376c-989f-4691-8c7a-e63a2839d7ab
gybson_samara: спс
Uljahn: вся суть нампи - создать маску для индексации
gybson_samara: y = np.arange(height)[:, None] можно исключить, как опыт показывает
gybson_samara: а нет
gybson_samara: этот хитрый блокнот запоминает =)
inoryy: magaiti тоже помню долго мучался с этим
inoryy: до сих пор хз как люди реверснули за 7 дней это чудо
Hennygosa: Всем привет, я новенький здесь. Подскажите где я могу попросить о помощи с упражнением которое я не могу решить?
Uljahn: inoryy: может, кто-то из них уже с sf2442 был знаком
Uljahn: Hennygosa: здесь спрашивай
Uljahn: ещё можешь поискать вкладку discussion или тему на форуме
Uljahn: вкладка на заглавной странице пазла обычно (но может отсутствовать), не в ide
Hennygosa: я делаю задание ASCII art где нужно вывести MANHATTAN символами решётки и я не могу сообразить за что взяться? Вот есть ширина символа, высота, слово и строка - алфавит ASCII. С чего начать?
Hennygosa: я понял как вывести одну букву но когда слово тут же не по буквам надо выводить а как-бы строчками (верхнюю часть всех букв, среднюю, нижнюю)
Uljahn: собираешь строчку из кусочков и выводишь
Uljahn: потом следующую
Uljahn: на каком языке кодишь?
Hennygosa: вот чтоб кусочки собрать в строку есть ли какие нибудь методы для упрощения выборки? или надо самому по индексам считать?
Uljahn: если можешь одну букву вывести, то всё равно её по строкам выводишь?
Uljahn: вместо вывода можно её в вектор запоминать
Uljahn: или динамический массив
Uljahn: двумерный
Uljahn: это если собрать все кусочки и потом выводить
Uljahn: если сразу выводить строкой, то одномерного хватит
Hennygosa: одну букву по строкам вывожу да
Uljahn: ну вот, вместо вывода сохраняешь первый кусок в массив, потом от второй буквы верхний кусок тоже в массив и т.д.
Uljahn: это цикл по буквам сообщения
Hennygosa: спасибо, пойду попробую
Uljahn: в конце получится массив с верхними элементами, их комбинируешь в одну строку и выводишь
Uljahn: и переходишь к следующей итерации - читаешь инпут для второй строки
gybson_samara: я сначала все считал, потом все вывел
Uljahn: да, так проще дебажить
Uljahn: первое решение тоже такое было, потом переписал, чтобы сразу выводить
Uljahn: получилось раза в два короче
magaiti: сегодня в csb улучшил код - добавил 80 строк комментариев :grinning:
magaiti: чтоб еще через 3 года по новой не тупить
magaiti: черт, 0.04 не хватило до топ 10
magaiti: :muscle_tone2:
735487: то я его скинул хорошо.
magaiti: давай еще :)
735487: 70% против него получилось
735487: сейчас скоро запущу ))
YurkovAS: amurushkin заметил еще фичу: на глубине 2+ нет хода 0-0
735487: думаешь не нужен? можно впринципе попробоватьэ
YurkovAS: у меня нет на 2-7
YurkovAS: но есть -9+9 на 2-7
YurkovAS: -9 +9 = 200
735487: у тебя глубина с 0 или с 1?
YurkovAS: с 1
735487: в чем смысл углов 9 на 2 глубине? если ты ход берешь с 1 и там его не будет
YurkovAS: так лучше играло. давно еще это сделал. в последних версиях пробовал все это менять, было хуже.
YurkovAS: и щита нет на 2-7
735487: вот реально странно
YurkovAS: ну может он там лучше доруливает. хз. найдено экспериментальным путем.
YurkovAS: и ходы в дереве сначала со скоростью 200, потом с 0.
735487: оно у тебя по порядку исследует?
735487: у меня с рандомом лучше
YurkovAS: по порядку и сначала повороты, потом прямо
735487: у меня мои на старте почему то любят стоять :)
YurkovAS: заифай первый ход 200 и буст
YurkovAS: у меня так
YurkovAS: поддержка буста на 1-ом ходу немного дала прибавки. в цислах не помню, почти незаметно
YurkovAS: таймауты и финиш не поддреживаю, тестил, почему-то было хуже. там еще статистика не точная и медленно все это.
YurkovAS: а так было красиво смотреть как раннер помогает противника затаймаутить или летит к финишу сломя голову
735487: у меня давно так и было что на 1 ходу буст. сейчас он по оценке им играет
735487: у меня таймауты поддерживает но не так чтобы прямо помогает их достичь
gybson_samara: по идее буст лучше использовать чтобы сбить лидера
YurkovAS: magaiti крутой бот! 8 побед против нейронок за сабмит.
735487: только почему тогда смита не обгоняет?
gybson_samara: учитывая, что блокер обгонит любой буст, стратегически в нем нет смысла, кроме как атаковать
YurkovAS: да там одного начинаешь выигрывать, а другому начинаешь проигрывать
735487: мне бы вот скрестить свои 2 версии ))
735487: о смита разок обыграл
magaiti: о молодец, нааба опустил
735487: ничего и до тебя доберусь ))
magaiti: га в топ 10 :)
735487: magaiti: как переделать оценочную чтобы она давала результат от -1 до 1,
magaiti: арктангенс?
magaiti: хз, ты уверен что это хоршая идея?
735487: да мне надо :) я заюзал tanh. я вот почему то думал что он другие цифры дает. а сейчас вот думаю что может и нет
gybson_samara: amurushkin вроде sin и cos дают от -1 до 1
magaiti: https://en.wikipedia.org/wiki/Sigmoid_function
735487: прикол только сейчас недавно обнаружил что мой под не юзает щиты если таймер щита включен
magaiti: ты меня бустишь :)
735487: это временно :)
magaiti: а что ты понимаешь под таймером щита?
735487: надо же пробовать новые оценочные
735487: таймер щита это 3 тика за которые нельзя разгоняться
magaiti: хмм, а щит можно на таймере юзать? я не помню уже)
735487: я сам не помню но мне кажется что можно
magaiti: хм, не написано, что нельзя
magaiti: надо свой код проверить
735487: вот и я так подумал а вдруг он не включает щит когда надо
magaiti: а не, у меня норм
735487: YurkovAS: у тебя баг. https://www.codingame.com/replay/488569369 твои не хотят выигрывать
magaiti: у меня буст не включается на таймере)
735487: а что можно?
magaiti: хз вроде не запрещено. но ускорения не будет
YurkovAS: magaiti у тебя какой ттл в ксб?
YurkovAS: -1ч впустую: сидеть и смотреть как идет сабмит
magaiti: ттл?
YurkovAS: да, таминг на 1 ход. в задаче написано 75мс
magaiti: 60
YurkovAS: ого, чего так мало?
YurkovAS: пробовал увеличивать? до 65-70
magaiti: та бывают скипы по 10 мс
YurkovAS: у меня до этого был 71мс
magaiti: зато не таймаутит
magaiti: есть где-то тема на форуме, там делали бота который время мониторит, он там до 11 мс пропавшего времени репортил
YurkovAS: ну это же мало, 10мс дадут больше сим
YurkovAS: да, у тебя не таймаутит
magaiti: ну вот выбирай
magaiti: больше сим или рандом луз
magaiti: я недавно пробовал до 70 увеличивать, пошли таймауты. потом 65, все равно иногда авылетало. поставил 60
YurkovAS: т.е. 70мс круче не стало...
magaiti: сильно круче играть не стал
magaiti: я потестирую может еще потом. сейчас охота в топе повисеть ?)
magaiti: Ж)
YurkovAS: конечно
YurkovAS: да мне тут тесты в cg-bench показали улучшение заметное и локально тоже, но что-то на проде не так все. и таймит, поставил 68мс
magaiti: цг бенч, что-то знакомое. это сайт или что-то скачивать надо?
YurkovAS: против робо не очень, а против верхних 3-х типа хорошо должно быть
magaiti: тоже бы потестить
magaiti: симуляции пилил на этой неделе
YurkovAS: https://github.com/s-vivien/CGBenchmark вот этот тул - удобно, можно несколько противников прописать и пусть тестит против них
YurkovAS: ну и brutal-tester еще есть, в нем локально толко тестить, зато быстрее, чем тем.
magaiti: спасибо, посмотрю. ща спать надо бы уже
magaiti: успехов
YurkovAS: спс и тебе!