Chat:Ru/2020-11-19
Uljahn: Automaton2000: kak deal?
Automaton2000: я к тому что у меня есть
BorisZ: крутить параметры - почти всегда бесполезно, взятые от фонаря работают не хуже, лучше новые фичи пилить
BorisZ: чет никто со мной не спорит, странно Automaton2000
Automaton2000: я понял, что это не просто
Hoggins: новый параметр богу параметров - это тоже новая фича
BorisZ: да, нужно вводить больше параметров)
BorisZ: я подумал как можно было бы доказать что новые фичи лучше чем кручение параметров - провести двойное слепое рандомизированное исследование
BorisZ: взять 100 человек, разбить случайно на 2 группы, одна пилит фичи, а другая - контрольная
BorisZ: она думает что пилит фичи а на самом деле крутит параметры)
BorisZ: потом опубликовать в солидном научном журнале
BorisZ: результаты
Hoggins: такое исследование могут проводить в CG. Смотреть корреляцию процента отличий кода и результативности сабмита
Hoggins: ух, вообще мечта иметь доступ ко всему тому .... коду который мы сюда сабмитим. Там же столько гениальных идей :)
BorisZ: это тоже было бы круто, но солидный научный журнал не возьмет )
BorisZ: я думаю идей не так много, повторяются они
BorisZ: что-то прям оригинальное да еще и чтоб оно побеждало - это может пара примеров можно вспомнить
BorisZ: я только смитси могу вспомнить
BorisZ: параллельный рост мктс для каждого агента
Hoggins: может этого хватит для солидного журнала?
BorisZ: это мсмитс который придума он вроде преподает гдето
BorisZ: недалек от академических кругов короче
SergeI: если журнал не возьмет, создайте свой =)
Uljahn: смитс физику преподаёт, а CS только недавно взялся изучать
Uljahn: да и его алгоритм очень похож на DUCT вроде, хотя и не идентичен
Uljahn: вот и всё, эйлер уходит с шарпа, Automaton2000
Automaton2000: и у меня не было
wlesavo: BorisZ у смитса там вроде в d&b были результаты мирового уровня, я подначивал опубликовать его
Uljahn: под результаты надо теорию подводить, асимптотические оценки
Uljahn: на arxiv полно статей типа "мы придумали алгоритм", а там одни формулы ))
Uljahn: без псевдокода даже...
wlesavo: теорию неплохо конечно иметь, но для того чтобы опубликовать самого алгоритма и бенчмарка с другими статьями вполне хватит
Uljahn: и таких статей полно, вот только результаты не всегда воспроизводимые))
Uljahn: берут какой-то бейзлайн, какой-то набор тестов, херак-херак - получили 10% улучшения, запилили статью
Uljahn: потом покрутили параметры - ещё 5% улучшения, ещё статья
Uljahn: я три года arxiv мониторю, пришлось уже аддон ставить, чтобы баззворды подсвечивать и скипать мусорные статьи
735487: я тоже пару раз пытался по статьям расширения для mcts писать. вообще не получилось
wlesavo: Uljahn и это только в CS а прикинь че там в физике например, еще хуже ситуация. но архив что ни говори таки помойка относительная, если брать высокорейтинговые журналы там сэтим чуть получше, хотя не прямо на много
Uljahn: это понятно, всё бесплатное - помойка по умолчанию
Uljahn: но и там изредка попадаются стоящие задумки
Uljahn: я больше для тренинга инглиша мониторю, да для изучения трендов
wlesavo: ну там попадаются хорошие статьи которые потом оказываются в нормальных журналах в основном, но как агрегатор такой норм
wlesavo: я делал себе rss фид с разных журналов нормальных, тоже удобно, там фильтров достаточно много и у большинства уважающих себя журналов есть такое
Uljahn: на rss пейволы не распространяются же?
wlesavo: ну как, там же только заголовки и абстракты, если open access типа nature какого-нибудь то там вообще все бесплатно. а так если действительно интересная статья то скайхаб в помощь
wlesavo: у архива тоже кстати рсс есть
Pyhesty: на питоне совсем нестабильно с таймингами?((( а то вылетов то один цикл в контесте 1-2мс, а некоторые 25-30 ну и вылеты постоянно...
Uljahn: не только на питоне
Uljahn: пока грешим на рефери, в некоторых мульти такие выбросы не замечены, админы обещали после контеста разобраться
gybson_samara: я же могу структуру интов в массив кастить?
735487: в плюсах через union вроде делается такое
735487: или что в твоем понимании кастить?
gybson_samara: ну взять из класса 4 байта в виде массива и сложить с другими =)
gybson_samara: соответственно указатель кастится в int[4] и вуаля
735487: наверное так можно только если там никакого хедера у структуры в начале
gybson_samara: разумеется
gybson_samara: если есть хедер, то добавить его размер к указателю
735487: но зачем настолько стремно делать?
735487: переопредели оператор плюс и слаживай структуры
gybson_samara: ну вот у меня есть массив классов, мне надо из каждого класса взять 4 байта, прибавить - проверить результат
gybson_samara: но можно и через точку взять
gybson_samara: чет я совсем жестко придумал, больше в духе C
Hamibar: питоны в топ 100 еще держатся. Получается можно на эвристечках играть.
gybson_samara: ну нафиг плюсы тогда, буду смотреть где у меня тормозит
735487: я с прошлого четверга то ли пятницы еще не писал ничего но собирался просто сделать структуру с 4 числами и для нее определить операторы и функцию какие надо
735487: а можно вообще засунуть в avx регистр и складывать. но тут я хз будет ли лучше или нет
wlesavo: Hamibar там безусловно неплохие эвристики, но основное это то что глубина большая не нужна
wlesavo: там все-таки у них тоже поиск
Hamibar: ну все питон в топы!
Hamibar: я то думал будет как крестики - все на MCTS
Uljahn: так все на бимсёрче, вроде
Uljahn: или даже чокудай
wlesavo: мда, написал спелл симу, придумал оценочную, все ради того чтобы она всегда выбирала нулевой спелл
gybson_samara: я сделал реверс от зелья к инвентарю, все замечательно, но баги ТА =)
wlesavo: два часа проведенные с максимальной пользой я щитаю
Uljahn: gybson_samara: от каждого зелья? с рестами?
gybson_samara: от лучшего
gybson_samara: без рестов, но с изучаемыми
Uljahn: а если противник выучит раньше?
gybson_samara: а как?
Uljahn: можно учить не по порядку же, но заплатить мзду
gybson_samara: мзду включаю в рецепт
Uljahn: так спелл достанется только противнику?
gybson_samara: неее
Uljahn: или ты учишь сразу максимальные нужные спеллы?
gybson_samara: ну если спелл -1,1, то в последовательность включается как -2,1
gybson_samara: и просчитывается с учетом мзды автоматически
gybson_samara: или -5,1, не суть
Uljahn: а, то есть только одно изучаемое включается в цепочку?
gybson_samara: все
gybson_samara: но они отсекутся
Uljahn: т.е. влияние противника не учитывается
gybson_samara: нет
gybson_samara: и так баги и таймауты =)
Uljahn: а, ты на питоне
gybson_samara: с нампи пока норм
Uljahn: в нампи удобнее всё хранить, чем в классах
gybson_samara: одна математика
Uljahn: в смысле, по быстродействию лучше
gybson_samara: у меня классов и нет
Uljahn: "ну вот у меня есть массив классов, мне надо из каждого класса взять 4 байта"
gybson_samara: это был порыв
Uljahn: это абстрактный пример был?
Hamibar: добавили бы воровство ингредиентов, было бы интересней :grinning:
wlesavo: блин нашел баг, все-таки работает спеллсима то
Uljahn: понятно
gybson_samara: ну тут 4 заклинания просто матаппарат
Uljahn: ейлер тоже баг нашёл, пока на плюсы портировался
gybson_samara: я в прошлый контент баг нашел исразу в серебро влетел =)
735487: а я вот неделю думал чтобы написал. впроде придумал почти сразу. казалось все простым и гениальным. а теперь вот читаю вас и думаю может и не начинать :)))))
Hamibar: gybson_samara обычно все наоборот)
wlesavo: на самом деле тут сима и поиск достаточно простые
wlesavo: у меня на mc держится в топ 50 +-
wlesavo: а вот че со спелами придумать хз, я думал изучение улучшу что-то даст, а нифига, оно как-то не улучшается
gybson_samara: с первыми четырьмя моментально считается последовательность, с изучаемыми уже дольше
wlesavo: да мне последовательность считать не интересно, мне интересно придумать что учить первые 4-6 ходов
gybson_samara: там и посчитай рецепты с изучаемыми
wlesavo: дальше у меня поиск работает нормально и сам учит что надо
gybson_samara: у меня дерево рецептов, если в нем есть что изучать - изучаем
gybson_samara: ресурсы на это уже посчитаны, добавить 1 ход на изучение
gybson_samara: должно быть дерево, но пока одна ветка =)
735487: wlesavo: давай расскажу что я хотел писать. может подскажу а может наоборот :)
wlesavo: давай, заодно идею обсудим
735487: моя мысль была такая что мы ищем последовательность как будто спелы уже изучены. и потом пройтись по найденной цепочке и сначала купить спел, чтобы его противник не забрал. ну естественно если хватит ресурсов. brew тоже перед поиском отдельно проверять. в противном случае ходить первый ход из найденной цепочки
735487: последовательность искать думал бфсом или рандомом
gybson_samara: из любого зелья можно выти на инвентарь овершенно определенным способом
735487: еще была идея через бфс искать за себя и за противника и делать те рецепты которые успеваешь раньше соперника
gybson_samara: несколькими, но они математически строго определены
wlesavo: ну это не эффективно, имхо. серчспейс увеличивает сильно, а дает мало очень редко пригождается выучить что-нибудь после первых ходов. мне сейчас нужен способ оценки долговременного профита от сформированной книги
wlesavo: понятно что у спелов должна быть синергия но как это формализовать хз
gybson_samara: ну ты если в первый ход сформировала книгу по всем рецептам из рефери, то да
gybson_samara: моя идея в том, что чтобы сварить [0,1,0,0] надо сварить [1,0,0,0] и т.д.
wlesavo: gybson_samara проблема поиска пути в том, что ты сразу используешь ингридиенты которые мог бы потратить на преобразование, оставшись с пустым или маленьким инвентарем очень много времени можно потерять
gybson_samara: я не сразу
gybson_samara: я разматываю цепочку от зелья к инвентарю, у меня может быть большой избыток
gybson_samara: после варки\
gybson_samara: ингрнидиенты на зелье это минимум, что я получу
gybson_samara: за минимум ходов, в теории
ilgiocatore: ну да, про поиск с конца я с самого начала думаю. но у меня эффективно это не получалось сделать
ilgiocatore: сложно так находить варианты, когда можешь сварить два зелья почти одновременно
Uljahn: wlesavo: прикидывал, что не стоит брать "околоравноценные" повторяемые, типа [0, -2, 2, 0] и [0, -3, 3, 0], повышать приоритет, если нет спеллов на апгрейд/даунгрейд какого-то тира или типа того
735487: или вручную проставить оценку всем 42 спелам
Uljahn: тут ещё про связность говорили
wlesavo: хм про повторяемые кстати не думал
Uljahn: amurushkin: зачем вручную? нейросеть же обучить )
Hamibar: интересно придумать способ быстрого перерасчета расстояний в графе всех состояний, если такое возможно конечно.
735487: нейросеть я пока научусь обучить и контест пройдет )))
Uljahn: и жизнь :(
Uljahn: Hamibar: там что-то про клики и факторизацию?
wlesavo: amurushkin суть в том чтобы всю комбинацию оценивать
Uljahn: как в LoCaM
amurushkin: Hamibar: всех состояний врядли но можно попытаться найти оптимальные решения от стартового ко всем рецептам
amurushkin: вот кстати вариант. запустить в оффлайне поиск нескольких путей для всех рецептов. и составить топ спелов которые учить
Hamibar: Uljahn клики это что?:grimacing:
Uljahn: "В теории графов кликой неориентированного графа называется подмножество его вершин, любые две из которых соединены ребром."
Hamibar: а я думал мышкой
Uljahn: т.е. по сути находим подграфы, полученные из исходного удалением ребра
Uljahn: типа факторизации
Hamibar: ну понятно. Сделать это быстро тяжеловато)
Uljahn: так в оффлайне же
Hamibar: а зачем нам в оффлайне?
Hamibar: все равно же не сможем перебрать все цепочки
Hamibar: я просто думал сделать сначала граф всех достижимых состояний из начальных условий. Потом брать какой-то спел и смотреть насколько он сокращает расстояния до зелий.
Hamibar: а потом решил вообще не участвовать)
amurushkin: так тогда лучше сразу включать в граф эти спелы и смотреть какие используются а какие нет
amurushkin: вот кстати возможно рабочая идея. найти бфсом например несколько кратчайших путей для всех рецептов. и собрать статистику по спелам которые выгодно изучать
wlesavo: 5/12 конечно лучше чем ничего, но чувство такое что все-равно не полезнее эвристики
Hamibar: так просто не хочется проходиться бфсом еще раз по всему графу. А хочется быстренько пересчитать расстояния
Hamibar: ну хотя мб это и не надо и так все можем успеть.
tomatoes: у меня примерно так сделано :thinking:
tomatoes: делаю вид что всё из тома изучено, прогоняю бфс, считаю чо использовалось
wlesavo: неплохо
Hamibar: я еще думал сделать что-то вроде цепочек зелий. Попробовать посмотреть за какое время мы можем собрать не 1 зелье а например 2-3.
Hamibar: хотя это не сработает. У нас же еще противник есть)
Uljahn: можно оценивать наборы компонентов, общие для нескольких зелий, тогда перехватить сложнее
Uljahn: сначала было удивительно, что питон в топ-40 где-то держался, сейчас уже джава в топ-15 удивляет
Uljahn: 10 прагм из 10 контест
amurushkin: может у джавы с рефери один сборщик теперь?
Uljahn: типа свой мусор можно отправлять на сборку в рефери?
amurushkin: ага :)
Uljahn: мб, в реплеях у wala какие-то интересные цифры выводятся в мессейдж, явно не количество нод
wlesavo: как же легко моего бота сломать, чуть чуть где-то подкрутил и все, перестает играть
Uljahn: классика выхода в легу - подёргать коэффициенты
wlesavo: у меня пока дерганьем только в окно получается выйти
wlesavo: приходиться возвращать все как было, тогда играет
wlesavo: а новые фичи хуже старых коэффициентов, короче до леги на этом похоже не доехать
Zero0: привет, всем. возник вопрос неожиданно, я раньше за собой не замечал, что сам с собой рассуждаю на Мы, типа "мы должны закамментить этот кусок и изменить эту переменную", у кого из присутствующих такое бывает? То я заволновался, вот, Горлум тоже сам с собой на Мы рассуждал....
wlesavo: это фигня, я когда на работу пришел заметил что у нас 90% людей вслух сами с собой разговаривают, сначала думал забавно, а потом когда как норму воспринимаешь сам начинаешь вслух рассуждать
ilgiocatore: ахах, ну я с детства разговариваю сам с собой вслух, когда никто не видит, и пока (к 27 годам) участь Горлума меня не настигла
Zero0: Спасибо откликнувшимся, но, меня большо, имено смутило, что поймал себя на том, что говорю себе в духе "мы должны", "если мы .." и т.п. С другой стороны, какая разница :slight_smile:
amurushkin: если кому то что то обьясняешь то это вроде само собой так получается
wlesavo: ну на счет мы не знаю, но ничего особенно необычного
amurushkin: главное чтобы не так https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BB%D0%BB%D0%B8%D0%B3%D0%B0%D0%BD,_%D0%91%D0%B8%D0%BB%D0%BB%D0%B8
Uljahn: https://www.meme-arsenal.com/memes/ad1da7492c9850dc3565b01472e840f7.jpg
Uljahn: literally me
Zero0: Uljahn :thumbsup_tone1: )
Xanrum: Кто нибудь использует повторяемые касты 3 или более раза? так и не подвернулся случай когда это б было нужно
wlesavo: 3 точно бывает
wlesavo: больше не обращал внимания
Uljahn: там не так много спеллов, которые можно 5 раз применить
wlesavo: бывает вроде но реже заметно
Uljahn: 7 штук насчитал
Xanrum: применить можно, но вот что бы был толк - это очень звезды как то сойтись должны
Uljahn: должен быты приоритет на однородность ингредиентов, например
Uljahn: тогда частоту можно повысить
Uljahn: *быть
wlesavo: ингридиенты лишними не бывают обычно
Uljahn: мы же про максимальную мощность преобразования щас говорим?
Xanrum: да, -2 +2 использовать все 5 раз
wlesavo: у меня обычно работает так что лучше преобразовать больше на всякй случай
Uljahn: ну вот, если есть нелишние ингредиенты, то 10 нужных тиров не наберётся
wlesavo: это достаточно эффективно, спелы в целом все-равно в плюс работают
Uljahn: даже эйлер в чате говорил, что скидывает иногда т0 на изучение ненужных спеллов, чтобы место освободить
wlesavo: ну хз, выглядит не очень эффективно
wlesavo: хотя я хз, может у меня автоматом так же иногда делает
Uljahn: так это всё посчитать можно, сколько тиров апгрейдится за ход
Uljahn: типа удельная эффективность преобразования
Xanrum: я сам так не писал, но заметил что мой бот тоже иногда скидывает 0 что б провернуть касты и сварить, обычно бывает если поменялась сильно ситуация
wlesavo: короче это +- само все считается в симе
Uljahn: ну, если прунинга нет, то да
NoiselessCommitter_ed80: я решил!
NoiselessCommitter_ed80: наверно
BorisZ: Zero0 я как диванный психоаналитик авторитетно говорю - мы вместо я - это попытка ухода от ответственности
BorisZ: если говоришь я дожен, то если не сделал то обосрался, а если говоришь мы должны и ни фига не сделано то я не виноват
BorisZ: Xanrum Кто нибудь использует повторяемые касты 3 или более раза? точно используют, видел реплей и с 4 и с 5 кратным кастом у топов
wlesavo: когда золото BorisZ :slight_smile:
BorisZ: сейчас, уже собираюсь с силами
BorisZ: все отмазы для слабаков
wlesavo: все отмазы для легенды оставим
BorisZ: либо ты в золоте либо нет, а зашло-не зашло и много работы не канает
BorisZ: легенда хз - может и не получится наверное, всякое бывает
wlesavo: очень уж высокий средний уровень, если легенда на открытии будет 20 человек еще можно подумать, а если 10 то можно даже не пытаться
wlesavo: ну я конечно коэффициенты подергаю, мало ли запушат потом, но все таки
wlesavo: слишком демотивирует когда каждая новая фича бота ломает в нулину
BorisZ: последний самурай на питоне держится еще
BorisZ: wlesavo пили фичи )
BorisZ: может комбинация разных подходов лучше сработает
wlesavo: да в том то и дело что пилю, но после этого бот перестает играть
BorisZ: дерево + монтекарло или бимсерч + еще что-то хз )
wlesavo: да на бимсерч долго переписывать, на дерево еще можно, но чето я не вижу большого смысла
BorisZ: объединять спеллы в цепочки паравозиком
wlesavo: ощущение такое что проблема не в поиске самом
BorisZ: которые друг в друга переходят
wlesavo: да они вроде сами неплохо объединяются
BorisZ: если паравозик за 1 шаг то может больше вариантов переберется
wlesavo: слабое место это изучение на начальных этапах у меня
wlesavo: но ничего не могу сделать с этим, подхода три уже проверил, все хуже чем просто нулевой спел
Xanrum: вопрос еще как долго и как много этот нулевой спел учить
wlesavo: в целом у меня против топов ненулевой винрейт, так что надежда остается, все-таки это не крестики где тебе шанса не оставляют
wlesavo: 4-5 спеллов достаточно, дальше сима сама подсасывает что нужно
Xanrum: меньше +6 на старте что-то плохо себя показывает
BorisZ: добавить фейковые спеллы к себе может?
Xanrum: это какие такие фейковые?
BorisZ: с ценой = цена + тир1 и 2 хода на каст
Xanrum: а есть вариант выгрузить все свои бои из арены? кроме как мышкой кликать каждый
wlesavo: ну у меня просто изучение как действие в симе, этого хватает вроде
wlesavo: есть апи
BorisZ: ну будто спелл в книге - это спел у тебя в памяти, просто догоже стоит каст (+ цена в синих камнях)
BorisZ: если уже в симе тогда смысла нет конечно
wlesavo: у меня хитро сделано, один раз за роллаут могу подсосать валидный спелл и дальше с ним играть
wlesavo: офигеть, даже еулер на плюсы переписал
Uljahn: Xanrum: https://www.codingame.com/playgrounds/53705/contest-tools-and-workflow/introduction
andrey-vinokurov: Я буду доволен, если на питоне зайду в золото :)
Xanrum: у питонистов в этот раз особый челендж
andrey-vinokurov: мне правда пришлось весть numpy выкорчевать чтобы в лимит уложиться :)
andrey-vinokurov: Но у меня теперь еще 40ms запаса :) сча буду изучать mcts :)
amurushkin: на питоне mcts можно и не начинать. потеря времени только
andrey-vinokurov: я хочу простую сделать, у меня оценка количества ходов до зелья и что учить внешняя будет :)
andrey-vinokurov: я вчера со стратой учить первое заклинание до первой варки соперника залетел наверх серебра
andrey-vinokurov: прочитал что тут коллеги в золоте учат просто 10 первых заклинаний :) поставил 12 смотрю что будет :)
Xanrum: пока писал парсер для боев с арены, бот неведомым способом улетел с 50 серебра в золотую лигу
Pyhesty: на питоне в золоте, как только сделал поиск варки на 5 ходов (полный перебор) вперед, сразу начал давать случайное время выполнения от 1 до 33мс, так что дальше, если тайминг так плавает питон не рулит, только если на статических таблицах, когда не нужно перебирать
andrey-vinokurov: ну у меня во многом так и есть, очень много считается на первом ходе, а для обучения я хочу сейчас посчитать таблицу заранее
S0L0: а почему от numpy отказался ?
andrey-vinokurov: ну я так себе питонист, может я что-то делал не так, но у меня все np.add, multiply, sum, min работали сильно медленее чем ручная фильтрация или использование стандартных sum, min
andrey-vinokurov: У меня мой предпросчет с numpy вылетал за секунду, а сейчас укладывается в 200 ms
Uljahn: а что предрассчитываешь?
andrey-vinokurov: ну я строю граф переходов из всех состояний в соседние, с учетом спелов, правда обратный, но не думаю что это важно :)
andrey-vinokurov: но зато это позволяет хорошо учитывать повторяемость на этапе предрасчета
Uljahn: типа матрицы 1001 х 115 с фильтрацией невалидный стейтов?
Uljahn: *невалидных
andrey-vinokurov: а 115 это что?
Uljahn: все возможные спеллы
Uljahn: с учётом повторяемых
Uljahn: так-то да, можно подсократить
andrey-vinokurov: ну по факту там же сильно меньше когда отфильтруешь невалидные
Uljahn: 20к у меня получается
Uljahn: и считает 20 мс
andrey-vinokurov: плюс я еще заранее расчитываю терминальные состояния для всех зелей
Uljahn: ?
andrey-vinokurov: ну я же с конца иду :)
Uljahn: а какая разница?
andrey-vinokurov: не знаю зачем :)
Uljahn: у меня просто спеллы с минусом
Uljahn: если от конца идти
Uljahn: как порядок применения спеллов засимулировать? генерить все перестановки?
andrey-vinokurov: ну я иду от всех состояний где могу сварить зелье к текущему, для каждого зелья отдельно
gybson_samara: как в cpp в вектор добавлять? =)
Uljahn: лучше не использовать вектор вообще
andrey-vinokurov: у всех свои проблемы :)
gybson_samara: как список то?
gybson_samara: Uljahn как лучше список сделать, нефиксированный массив?
Uljahn: сделать большой фиксированный, с запасом
gybson_samara: ну это несерьезно =)
wlesavo: да, потому что иначе ты не в стеке а в куче выделишь память
gybson_samara: мне просто список входящих параметров сохранить
RiSuS: Если нет цели в топ топа попасть, то бери вектор и не парься
RiSuS: у меня все на векторах) Пробовал массивы делать. Кода много, толку мало)
gybson_samara: я думаю моя борьба будет точно не за оптимизацию чтения параметров
Uljahn: а чё, в инете нет инфы, как в вектор добавить? pushback какой-нить?
RiSuS: push_back если с++
wlesavo: да пушбак
gybson_samara: я написал пушбэк
gybson_samara: оно тут в иде заругалось
gybson_samara: а, ну я вектор типов создал, а сунул указатель\
gybson_samara: ох и я наем я памяти по первости
gybson_samara: я если вектор почищу он объекты удалит же?
ilgiocatore: да
ilgiocatore: если это вектор объектов, а не указателей
gybson_samara: а то отвык я за памятью следить
gybson_samara: так что пока не буду наверное явно создавать =)
ilgiocatore: еще лучше использовать emplace_back вместо push_back, чтобы объект создавался "на месте" внутри вектора
ilgiocatore: push_back копирует объект
gybson_samara: спс
gybson_samara: но он void, все в конструктор не очень удобно
gybson_samara: а, c 17 ссылку дает
gybson_samara: а тут какая версия?
ilgiocatore: 17
gybson_samara: работает, огонь вообще
gybson_samara: int к bool все еще автоматически кастится?
ilgiocatore: вроде да
ilgiocatore: я недавно упустил баг с опечаткой "&" вместо "&&" ) но потом предупреждение от vs увидел к счастью)
gybson_samara: такой баг и в питоне можно словить
amurushkin: я несколкьо раз ловил баг что в условии писал a=b
gybson_samara: ну это вот да, это совсем подлый баг
gybson_samara: получил ссылку на структуру, хочу копию, memcpy?
ilgiocatore: можно просто присваивание использовать
ilgiocatore: в плюсах присваивание по умолчанию копирует объект
ilgiocatore: либо передать в конструкторе
ilgiocatore: memcpy обычно используется, чтобы в одну строчку массив скопировать
Egrace: А если я выжру всю память, что мне отведена, я получу какую-нибудь особую ошибку или такую же как по таймауту?
wlesavo: удачными сабмитами закатываюсь в топ 40, похоже не понюхаю легенду в этот раз(
ilgiocatore: Egrace на плюсах пишет просто таймаут
gybson_samara: ilgiocatore t_brew brew = brewin, brewin это t_brew* brewin
gybson_samara: нирботаит
Egrace: вот жеж
ilgiocatore: gybson_samara надо дереференсить
ilgiocatore: t_brew brew = *brewin
gybson_samara: спс
gybson_samara: можно перегрузить [] чтобы как inline? пишешь a[0], а оно сразу a.val подставляет?
Xanrum: а как оно будет работать если написать a[i] ?
NightLuna: почему сколько бы я ни улучшала становится только хуже
wlesavo: жиза
Xanrum: именно так, попал в золото, и все попытки улучшить - приводили к последнему месту золота
Xanrum: что тут за звери обитают
Xanrum: ощущение что они все просчитали еще на первом ходу
wlesavo: я с глубиной 5-7 дохожу до топ 40
RiSuS: А какие ощущения когда в последние дни в легу проходишь) В золоте всех рвешь. Выходишь на первое место. А в леге отгребаешь ото всех и случайная победа за радость) Местная лега будет очень крутая, да
wlesavo: на первом ходу ток хеши считаю немного
NightLuna: а дальше курят бамбук XD
NightLuna: ой помню прошла я так в легенду, потом была на последнем месте весь оставшийся контест, не очень
Xanrum: видимо я чтото со своей глубиной 9 - не учитываю
wlesavo: да я если в легу пройду сразу закончу)) там уже делать точно нечего будет
NightLuna: wlesavo, а ты только в начале учишь?
wlesavo: NightLuna не у меня в симе обучение прикручено\
NightLuna: вот это я понимаю
NightLuna: у меня в бфс тоже было обучение, а потом я начала учить только первые 10 ходов и стало лучше играть
wlesavo: а вот с начальным обучением ничего не придумал, уже сделал отдельную симу на стадию разбирания спеллов, играет заметно хуже чем просто учить нулевые
NightLuna: у меня глубина где-то 7-8 сейчас
NightLuna: мне кажется, что мало
wlesavo: у меня парадоксально чем меньше глубина тем лучше играет, было 15, уменьшил до 10 заиграло лучше, уменьшил до 7 заиграло еще лучше, теперь вообще 5
Zhmyh: вершин скоко
wlesavo: у меня мс
Zhmyh: а
wlesavo: 15к роллаутов гдето
wlesavo: ну с глубиной 5 правда там под 30к бывает
NightLuna: у меня было 15 глубина, но я переписала поиск и стало хуже
Hoggins: хм, что то в моем МС сделано по совету не так. С глубиной в 30 играет заметно лучше чем 15...
wlesavo: попробуй 6-7 для теста
Hoggins: хотя тут предсказуемость игры далеко не 30 ходов
Hoggins: Угу, пошел бэнчмаркать
NightLuna: а что у тебя функция оценки оценивает?
Hoggins: по сути собраные пошены
wlesavo: в mc главное вовремя роллауты заканчивать и симуляция оппонента хотя бы примитивная нужна
RiSuS: У меня МС не взлетело. DFS рвет в клочья
wlesavo: а, ты от бимсерча ушел?
wlesavo: хм, мож тоже на дфс перепишу если не пролезу на этой сломаной телеге в легенду
NightLuna: а как тут дфс писать? нужно как-то приоретизировать вершины в которые идти чтоли?
RiSuS: не ушел. Просто до сравнения с beam search дело даже не дошло)
RiSuS: места с 40 по 30 жуть какая-то. 50% винрейт. Если через них везет пробиться то дальше мест 5-8 легче идет. А потом затык =(
Hoggins: с глубиной в 6 получается 6к ролаутов для врага и 25к для себя. Всё как в той шутке: я печатаю 500 знаков в минуту, но такая белиберда получается :)
Hoggins: против себя бэнчмарк из 100 боев говорит 45 побед
wlesavo: у меня против 10-20 мест ненулевой винрейт, это конечно небольшую надежду дает, но такое себе
Xyze: RiSuS а дфс на какую глубину?
RiSuS: Xyze: пили beam search лучше
RiSuS: #2 судя по сообщениям со старта игру до конца просчитывает...
Xyze: жоска
RiSuS: О. Сабмит зашел. Буду ждать легенду)
MadKnight: до какого конца?)
RiSuS: до победного обычно
MadKnight: так рецептов нету
MadKnight: и книга рандомит
wlesavo: RiSuS найс
MadKnight: надо рандом игры брать за 3го игрока
MadKnight: который играет против тебя и за противника
MadKnight: RiSuS го запили это
MadKnight: и потом смитси
RiSuS: А че я? Пусть лучше Xyze пилит =)
Xyze: =)
Xyze: я просто не успеваю делать всё что хочу
Xyze: до сих пор в жопе золота
MadKnight: RiSuS так ты быстрее пилишь
MadKnight: ты и в гоночках быстрее чем Xyze
NightLuna: MadKnight а почему сам не запилишь?
Xyze: он постарел
Xyze: уже не может
MadKnight: я стал слишком перфекционистом
MadKnight: ни один язык меня больше не радует
MadKnight: не хватает фич чтобы писать красиво
MadKnight: а кашу не хочется
dbf: MadKnight напиши свой и транслируй его в C++
MadKnight: слишком просто
dbf: тогда в питон
NightLuna: ну транслируй в раст
MadKnight: го придумай мне синтаксис
MadKnight: а я запилю
MadKnight: мне крч надо разделить логику и оптимизации
MadKnight: знаешь хаскель?
dbf: https://code.kx.com/q/learn/q-by-examples/
dbf: вот у этого синтаксис неплохой
MadKnight: да это expressions
MadKnight: как на нём какой-нить filter() запилить?
Xanrum: https://www.codingame.com/replay/506307185 некоторые издеваются, не варят 6 зелье, а ждут
MadKnight: он же застрял
MadKnight: а, ты типа про 2го?
MadKnight: точно ведь
C2H5OH: Game Summary: Bossdorf has not provided 1 lines in time. Bossdorf was disqualified.
C2H5OH: жесть
MadKnight: во всех контестах такое бывает
Xanrum: второй это я - там все варианты зелий что можно было сварить - давали меньше очков чем у противника плюс его не т0 ингридиенты
MadKnight: Xanrum так ты мог наварить на 11+12 и ещё +10 с твоих камней
Xanrum: невозможно сварить и иметь 10 камней, какие то уйдут на варку ведь
MadKnight: ну значит rip
MadKnight: а го реально сделайте кто-нить как я предложил
Uljahn: я так понял, что из новых зелий не могло что-то посолиднее прийти? всё самое жирное сварили))
MadKnight: рандом игры возьмите за 3го игрока
MadKnight: как рецепты новые генерятся вообще?
Uljahn: из заданного списка выбираются
Uljahn: в рефери он есть
Uljahn: Xanrum: вы же по 4 сварили, ещё по два зелья можно было, не?
MadKnight: так я так и сказал
MadKnight: но отрыв слишком большой был
Uljahn: можно было ещё 22 наварить на зельях и 6 в инвентаре...
Uljahn: а, там 89
Uljahn: Automaton2000: finita la comedia
Automaton2000: я и говорю, что ГА меньше думать заставляет
MadKnight: можно и BS сразу для 3 игроков сделать
Uljahn: хотя, мог прийти поушн на 19...
MadKnight: вот именно Xanrum пофикси свой код
Zero0: я что-то не понимаю, чем я больше отлаживаю и улучшаю, тем у меня хуже играет, что надо чтоб в золото зайти?
BorisZ: после варки 5го зелья упадет еще одно - вдруг на 20, тоже не хватало?
Zero0: MadKnight. покажи свой код, любой, не обязательно из местных пазлов, интересно ...
System.Console.WriteLine("0 4\n0 3");" -- это самое крутое, что я видел:stuck_out_tongue_winking_eye:
Beard: gybson_samara constexpr int & operator[](const int & index) noexcept { if(index==0) { return val; } }
Beard: C++ не для лаконичных
Beard: это у меня чат застыл и я увидел вопрос
Beard: про перегрузку []
Zero0: я выше в одну строчку MadKnight пазл про marslander решил, меня впечатлило.
Zero0: в смысле решение, пазла, как MadKnight решил
Zero0: что-то такое увидеть бы ещё
Uljahn: реши то же самое на php)
Uljahn: там ещё круче решение
Uljahn: от мэда
Beard: Uljahn ахаха я вспомнил
Zero0: "реши то же самое на php)", - нда, увидел, круть, а так можно было? )
Hoggins: а что решать? мне теперь срочно нужно посмотреть
Zero0: marslander easy level на php
Hoggins: почему то я так и подумал увидев заспойленый цикл :troll:
Zhmyh: Ахахах. Залетел с какой-то парашей в топ 100.
Zhmyh: Я не понимаю
Zhmyh: Сидел в конце голды
Zhmyh: Потыкал веса
Zhmyh: И шо-то подскочил неплохо
Zhmyh: Кто-нибудь знает, как их нормально подбирать?
Zhmyh: Просто если на локалке играть и автоматически подбирать, то я смогу играть только с самим собой
Zhmyh: А флудить рандомными сабмитами - не очень идея