Chat:Ru/2021-03-26

From CG community
Jump to navigation Jump to search

vrabosh: так и не простые на 2 и 3 не делятся многие?

Uljahn: решето Эратосфена пилите?

vrabosh: я это CGFUNGE PRIME

Uljahn: я про алгоритм определения простого числа

magaiti: пилят решето на местном диалекте брейнфака

magaiti: запилил таблицы транспозиций для мктс

magaiti: в клоббере

magaiti: ну правда польза пока неочевидна

magaiti: хотя стал у топа чаще выигрывать

vrabosh: я вообще хз что делать. сам придумал чтото но оно длиное

vrabosh: 60k взял, ну максимум со своим алгоритмом я до 55к дойти смогу.. надо другое решение искать.

vrabosh: либо отложить на потом. когда в математики стану умнее и читать уже конкретно по тематики простых чисел.

vrabosh: а по сути так процессор и работает как в этой задачи программированить этот алгоритм? идет работа со стеком восновном?

MadKnight: vrabosh ты о какой задаче?

vrabosh: CGFunge Prime

magaiti: а зачем она тебе? решай что-нибудь попроще

Uljahn: может быть интересно попробовать свои силы, обломать зубки, потом через годик вернуться и зарешать

Uljahn: человек - дитя препятствий, Automaton2000

Automaton2000: у меня один и тот же код

vrabosh: смотрю сейчас, что есть вообще из задачь.. потом когда изучаю математику и другое, вспоминаю и понимаю, для чего это нужно.

Uljahn: угу, теория без практики мертва

vrabosh: ну стараюсь до максимума своего нарешать сейчас и если есть понятное мне другие решения, которые подскажут. то применю.

vrabosh: а пока я на 8 классе алгебры изучаю)

wlesavo: блин пропустил чет там марчете писал, а логов еще не подвезли

735487: wlesavo: вот держи что я в своих нарыл

735487: http://chat.codingame.com/pastebin/ca893521-7ae2-462d-be6a-f2018990c70c

735487: я правда не вчитывался оно или нет

wlesavo: amurushkin о, спасибо

YurkovAS: задача типа: написать на асм-е детектор простых чисел. интересно

YurkovAS: magaiti что за таблицы транспозиций? это для определения следующих ходов из тек состояния?

magaiti: это когда разные ходы ведут в одну позицию

magaiti: для минимакса можно хранить уже вычисленную оценку, для мктс можно тоже ченить прдумать

YurkovAS: а тут похоже их нет?

magaiti: есть

YurkovAS: для мктс-а же дерево переиспользовать

YurkovAS: + солвер

magaiti: солвер не делал пока

magaiti: потому и не могу выше 9-го запрыгнуть, видимо

YurkovAS: а ты сделал мега быстрое определение кол-во след ходов и быстрое применение любого рандомного?

magaiti: ну через pdep и pext

magaiti: а любого рандомного хз как

magaiti: как ты определяешь что у тебя равноемерное распределение для рандомного хода

735487: в том то и дело что никак. но зато быстро. смит говорит у него лучше если делать честный рандом. у меня наоборот. выигранная скорость с лихвой окупает честность рандома возможных ходов

YurkovAS: без pext, только pdep + сдвигами

magaiti: да, пдеп и сдвиги

YurkovAS: там смитст в чате скидывал эту функцию, примерно 8-11 марта проде дублировал

wlesavo: чето не поню, а рекурс раньше был в топе крестиков?

YurkovAS: а ну вот

YurkovAS: а сколько у тебя роллаутов на 2-ом ходу?

magaiti: 20r

magaiti: к

YurkovAS: рекурс в крестиках запили NN и теперь в топ1-2

wlesavo: офигеть

wlesavo: я пропустил чето это

YurkovAS: а, ну вот, а можно увеличить до 100к

wlesavo: он рассказывал что-то?

wlesavo: пойду в логах поищу

magaiti: и как увеличить до 100к? быстрыми роллаутами?

YurkovAS: это надо при expand запускать рандомное доигрываение сразу для всех новых детей

YurkovAS: а не для одного

YurkovAS: в этой игре оно дает положительный буст. в крестиках например играет хуже

magaiti: хм

YurkovAS: а солвер особо не поможет походу, т.к. первые решения появляются на 25-35 ходу

wlesavo: code jam кстати начинается сегодня вроде

Alex.swift: чеерез 49 минут

magaiti: хз, пока не получается экспанд всех, то есть получается, но не дает прироста

YurkovAS: получается 100-110к роллаутов на 2-м ходу?

magaiti: как ты считаешь роллауты?

magaiti: нет, не получается. у меня нет быстрого рандомного хода

YurkovAS: кол-во рандомных игр

YurkovAS: ну фаст ранд есть?

magaiti: фастранд допустим

YurkovAS: всяких специфичных для игры бонусов и штрафов у меня нет

YurkovAS: остается только скорость или какие-то параметры: константа и рандомный сид

vrabosh: https://escape.codingame.com/?invitation=Uoy-TG8-R8n-gtL

vrabosh: давно это они придумали? заходите по моему инвайту плз)

YurkovAS: удачно ресабмитнулся. хотя до этого было печальнее, раз 5 пытался, т.к. топ6 почти равны

vrabosh: кто нить уже проходил эскэйп этот ? оно будет развиваться, рейтинги итд? или это просто один раз мисси пройти и забыть?

tutubalin: я всё пытаюсь коллег заманить, но пока не выходит

tutubalin: vrabosh могу поделиться ещё идейками по поводу CGFunge

tutubalin: 1. делать вывод через цикл - это медленно. гораздо быстрее поставить CCCCCCC в строчку

tutubalin: 2. топовые решения - это хардкод

vrabosh: вывод я и делаю так "текст"ссссс

vrabosh: у меня решение долгое поиска простых чисел или не простых.

vrabosh: я перебором от 3 и до 97 иду..

vrabosh: если в питон перевести то такой алгоритм next(False for i in range(3, 100, 2) if i%i == 0]

vrabosh: if nums%i == 0 так точнее

YurkovAS: тут еще писали про 6n+1, 6n-1, т.е. можно сначала проверить и только потом делать этот цикл

MadKnight: кто тут с андроид студио работал?

vrabosh: False if num%2 == 0 else next((False for i in range(3,100,3) if num%i == 0 and num//i > i), True)

vrabosh: вот пральная функция.. как я делаю

vrabosh: блин всеравно опечатываюсь. ну суть думаю поняли

vrabosh: YurkovAS а как с 6n+-1 поверять?

YurkovAS: т.е. все простые числа кроме 2 и 3 подходят по маске 6n-1 или 6n+1

YurkovAS: остаток от деления на 6 будет 1 или 5

vrabosh: это как подходят по максе

YurkovAS: ну вот так :)

vrabosh: понял

YurkovAS: если подходит, тогда запускаешь свой тот цикл, т.к. проверки по маске недостаточно

vrabosh: мне кажется она на все цийры выдает 1 и 5

vrabosh: [num for num in range(4, 100) if (6*num+1)%6 == 1 and (6*num-1)%6 == 5]

vrabosh: так? он все числа показывает

YurkovAS: num % 6

vrabosh: реально чтото не понимаю..

vrabosh: [num for num in range(4, 100) if (num%6+1) in (1,5) or (num%6-1) in (1,5)] вот такое пробу. и по разному

YurkovAS: http://chat.codingame.com/pastebin/11438202-87a2-4dc1-b31e-8eccc1869f25

vrabosh: так просто и вроде работает)

vrabosh: хотя мне кажется то на то и выйдет..

tutubalin: num > 4 and num%6 in (1,5)

tutubalin: это не 100% проверка на простые, понятное дело. но это быстрая проверка на делимость на 2 и 3. одном делением проверяешь сразу оба делителя

tutubalin: точнее, вот так правильнее будет: num in (2,3) or num%6 in (1,5)

tutubalin: vrabosh https://www.youtube.com/watch?v=-qH4RlHZAp4

vrabosh: у меня 2 сразу проверяется, там вообще очень коротко, ну и потом с 3 начинается круг, неужел вверхний вариант будет меньше чем круг мой?

tutubalin: ну если честно, не знаю, даст ли на CGFunge такой уж большой выигрыш

tutubalin: но просто интересное свойство простых чисел, которое стоит иметь в виду

tutubalin: но вообще, к сожалению, чтобы выйти в топы, нужно хардкодить. где-то на гитхабе нашёл тесты и затачивал решение под них

vrabosh: я так и понял. без хардкора там наверно гдето 20к получается..

vrabosh: но надо хотябы на 20-30к мне сделать без хардкора.

vrabosh: чтото не помогла эта штука с (n*n-1)%24

tutubalin: да не. я этот видос запостил потому что там про n%6 говорится

tutubalin: ты спрашивал, откуда это взялось, а там хорошо объясняется

tutubalin: а n*n%24 - это уже следствие. просто прикольный факт, от которого мало пользы