Chat:Ru/2020-08-29
Uljahn: но тут очевидно нужен ещё import sys, поэтому для код-гольфа не очень подходит
_Lion_: доброе утро:wave:
vrabosh: в нампи можно массив по осси поворачивать и то что уходит за приделы появлялись с другой стороны?
vrabosh: 1,2,3
2,0,0 3,0,0
vrabosh: надо так
vrabosh: 1,3,2
2,0,0 3,0,0
vrabosh: ось здесь 1
vrabosh: по часовой на 90 градусов прокрутил
vrabosh: я помню делал с осями, но не помню, переведут они то что захоит за придлы сдругой стороны
vrabosh: 3,2,1,0,0
0,0,2,0,0 0,0,3,0,0
vrabosh: былобы такое если массив больше
ConstantBolzmann: ты не правильно написал своюб мысль в последнем примере
ConstantBolzmann: если по оси икс то вроде там другие числа будут
ConstantBolzmann: а что тебе мешает просто перемножить матрицы
ConstantBolzmann: и сохранить эту библиотеку
ConstantBolzmann: https://numpy.org/doc/stable/
ConstantBolzmann: https://numpy.org/doc/stable/search.html?q=matrix&check_keywords=yes&area=default
vrabosh: жесть, уже позабыл нампи, надо опять вспоминать..
vrabosh: m[::,1::], m[::,0] = m[::,:-1:], m[::,-1].copy()
vrabosh: сам чат уже говорит что не очень)
vrabosh: m[::,1::], m[::,0] = m[::,: -1:], m[::,-1].copy()
vrabosh: расскажите как понармальному сделать?
vrabosh: http://chat.codingame.com/pastebin/667cda8a-b959-4f6e-b810-a0f2a8dd80db
vrabosh: во вроде нашел. m = np.roll(m, 1, -1) надо теперь разобраться как это работает
vrabosh: ConstantBolzmann чего так тихо? где люди? наверно из за флуда уже забили на этот чат
vrabosh: зачем ты меня приучил флудить?)
vrabosh: мне вообще эти штуки с матрицами нравятся.. может есть геометиря построенная на матрицах?
BorisZ: https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BD%D0%B7%D0%BE%D1%80
BorisZ: тензоры наверное ты имел ввиду
BorisZ: ну геометрия и так в общем на матрицах смотря с какой стороны смотреть)
BorisZ: геометрия - слишком резиновый термин
amurushkin: матрицы же алгебра по идее
BorisZ: не знаю, я не силен в определениях, спроси меня что такое алгебра я тоже не смогу сказать )
BorisZ: пересекаются области эти в любом случае
BorisZ: ну и у нас и за бугром разная терминология - путаница короче
BorisZ: я помню учебник был по курсу аналитическая геометрия, дак там ни одной картинки не было
BorisZ: негде отдохнуть глазу визуала
amurushkin: матрицы и геометрия у меня вызывают ассоциации с шейдерами. хотя я ниразу не писал их
ConstantBolzmann: мне теселяция нравится очень
ConstantBolzmann: читали хабр сегодня?
amurushkin: если хочешь обратить внимание на какую то статью то лучше сразу на нее ссылку давать
ConstantBolzmann: https://habr.com/ru/news/t/517030/
ilgiocatore: они же еще вчера удалили, хабр слоупочит
amurushkin: смог на руби написать p gets.to_i.to_s(2).count(?1) )))) самый короткий вариант наверное
vrabosh: круто
wlesavo: опа, закрыл карту
ConstantBolzmann: опа энжин заработал)
ConstantBolzmann: щас разбираюсь с https://www.codingame.com/training/medium/maze
amurushkin: попался клеш в котором я смог на руби 16 символов. p gets.chomp.sum прикол ))
amurushkin: нагуглил
amurushkin: надо было сложить коды символов
amurushkin: читерство блин
BorisZ: вместо chomp можно chop
BorisZ: chomp режет пробел или все пробелы, не помню уже, а chop ровно один символ вроде пофиг какой
BorisZ: нет предела совершенству )
BorisZ: не пробелы а переводы строки
amurushkin: я в руби вообще почти ноль :)
BorisZ: за 15 минут гольф клеша можно продвинуться сильно
BorisZ: с помощью гулга)
BorisZ: я примерно так и делал тоже
ConstantBolzmann: я думаю все так делают)
BorisZ: вот нашли еще пользу в гольфе, а то все говорят что нафиг он нужен
ConstantBolzmann: ну там уже подходя к гольфу код должен быть соответствующего уровня как я понял тоесть новичку нет смысла гольфить, я так понимаю коды ранжируются тоже по уровням
ConstantBolzmann: вот я чака написал мне нет мысла кодить, там код не уровня гольфа
ConstantBolzmann: твоему коду твоему скилу есть смысл
ConstantBolzmann: *гольфить а не кодить
BorisZ: не, тут как раз через практику набивается навык, многие свои решения открывают
BorisZ: просто пишешь как можешь, потом смотришь как победители сделали, набор приемов ограничен
ConstantBolzmann: это впитать надо чтобы не зазубрено было
BorisZ: а если не лень потом подумать над задачей спокойно то вобще прогресс будет быстрый
BorisZ: главное не бояться что займешь последнее место, это у многих такое ограничение в голове
BorisZ: поучаствую, обосрусь, засмеют - всем пофиг на самом деле
ConstantBolzmann: угу, вот к примеру рост, пол года назад я боялся тематики фритайпинга, сейчас спокойно наклепал что надо уже без кути
ConstantBolzmann: http://chat.codingame.com/pastebin/680195c9-add6-477b-99a2-749d80e91eaa
amurushkin: втянулся я в шортовые клеши. там задачки легкие обычно и как раз нужно придумать короткий путь решения и тогда и код сам по себе короче делается
ConstantBolzmann: везет тебе а я как не зайду в клеш блин какието тяжелые задачи или я отсталый
ConstantBolzmann: последние разы скипал
BorisZ: не надо скипать то, надо пытаться решить, если не общее решение то хоть чтоб часть тестов проходило
amurushkin: у меня хуже всего реверсы идут
BorisZ: зато если подумал над задачей то потом смотришь как решили другие и все намного понятнее
amurushkin: адски сложных вроде особо и нет
ConstantBolzmann: кароче у меня по кайфу ява пошла, (на прототипы чисто кайфую), а голову ломаю и люблю с++
ConstantBolzmann: и тут на клешах в си++ пока поймешь что сделать пол века пройдет)
amurushkin: клеши надо на питоне или руби. круче всего
ConstantBolzmann: ни у меня онли С++
amurushkin: капец я так спешил а чел за 24 секунды успел ))
BorisZ: наверное по второму разу эта же задача попалась
amurushkin: я физически не успел набрать :)
amurushkin: а ты чего так долго?
BorisZ: подумал что надо длину а потом 4* - читаю плохо
ConstantBolzmann: http://chat.codingame.com/pastebin/81211ae3-40ab-48b0-b52f-8ef2387578f5
ConstantBolzmann: как папка 3 место)
amurushkin: я текуще сделал на питоне 53. а потом загуглил руби и сделал на 22 :))
BorisZ: я не придумал ничего хорошего (
amurushkin: у меня попоще код был. жалко не скопировал
BorisZ: да блин сквиз, красиво, прям под руби задачка )
amurushkin: ага случайно нагуглил
amurushkin: на питоне было примерно так p=0;s="";for c in input(): if c!=p:p=c;s+=c print(s)
ConstantBolzmann: а как узнать что число слишком большое?
amurushkin: насколько большое?
ConstantBolzmann: я чот делю на 10 процес засыпает
ConstantBolzmann: ну чисел к примеру 40
ConstantBolzmann: типо sizeof(h)>=256?
amurushkin: sizeof от числа даст количество байт по идее. и там будет от 1 до 8 наверное
ConstantBolzmann: 123123213123123123123123131313131313131313131313131313131
ConstantBolzmann: вот такое число
amurushkin: а такое число в стандартные типы не влазит
amurushkin: а вообще чтобы поделить на 10 просто откуси последний символ и поставь точку
ConstantBolzmann: !(sizeof(unsigned long int))
ConstantBolzmann: так сделал пофиг все равно не прошло
ConstantBolzmann: бронзу завоевал)
BorisZ: поздравляю ) в чем бронзу то?
ConstantBolzmann: сертификатик)
BorisZ: amurushkin сделал тот клешь через re.findall - получилось 70, потом через zip - 59, твое решение в лоб самое короткое
BorisZ: на питоне изначальное с циклом
BorisZ: zip с инпутом же, сдвинутым на 1 символ вправо
BorisZ: ConstantBolzmann трудно чисто на си дальше будет, там надо и shortest mode сколь-то то побед
ConstantBolzmann: а я то что вообще не знаю пропускаю
ConstantBolzmann: там где есть зацепки конкретизирую а если труба пропускаю
ConstantBolzmann: ну а смысл питон учить?
ConstantBolzmann: я уже выбрал язык
BorisZ: для клешей надо базовый синтаксис да с десяток трюков
BorisZ: ты же клятву верности не давал, что будешь только на плюсах писать всю жизнь)
ConstantBolzmann: притом питон вкорне изподвыподверта язык не то что си тоесть он упрощен до нехочу а это отдаляет от реальной реализации и привыкая к такому сахару отвыкаешь от всего более такого как должно быть на самом деле
ConstantBolzmann: тоесть мне сплит прописать надо
ConstantBolzmann: а в питоне он уже сразу
ConstantBolzmann: тоесть питон не дает выбора все на сахарах
ConstantBolzmann: не давал но уже совесть не позволяет
ConstantBolzmann: типо начал на этих лыжах поеду на этих
BorisZ: кто бы знал как оно должно быть на самом деле )
ConstantBolzmann: ну я могу примерно сказать +=
BorisZ: всегда полезно с другой точки зрения посмотреть имхо
ConstantBolzmann: если нет базы то да питон, если базу уже вкинули и были азы то тут от того что нравится но обычно где кидали базу там Си++ СИ я редко встречал любителей с базой, которые на паскале или делфи, в основном все на базе остаются
ConstantBolzmann: или в пхп уходят вот еще
ConstantBolzmann: модули какието писать говорят почти как си++
BorisZ: для меня например питон хорош не сахаром, а тем что на любую прикладную задачу есть готовая либа - pip install и пользуйся сразу
BorisZ: любое непонятное место - куча мануалов на любой вкус, очень длинная история и большое коммюнити
ConstantBolzmann: мне учится надо зачем мне питон, я вон кодил на питоне там все легко даже страшщно становится
ConstantBolzmann: уж лучше ява
ConstantBolzmann: не должно быть легко
ConstantBolzmann: это легко на асемблере проверить
ConstantBolzmann: залетаешь в масм 32 или 64 и вот она реальность забыл там тут забыл, тут чутка чото не понятно и понеслась пляска
ConstantBolzmann: даже топы теряются в коде
BorisZ: ассемблер - это очень нишевая штука, в него погружаться нет смысла никакого, если ты точно не знаешь зачем он нужен
BorisZ: как с прикладной точки зрения так и с тточки зрения потенциального трудоустройства
ConstantBolzmann: поспорить могу
ConstantBolzmann: асемблер как раз показывает все
ConstantBolzmann: потомучто там теперь пол ядра в библиотеке
Pyhesty: а есть что-то вроде bits/stdc++.h для питона?
ConstantBolzmann: в винде асемблер не нишевая штука
ConstantBolzmann: а вполне реальный болтик
ConstantBolzmann: я уж не говорю про глифы в шейдерах про игры и прочие драйверы
Pyhesty: в шаблонах контестов и sys и math так что добавляют... зачем-то... я перехожу с ++ на питон... пот и ищу есть ли универсальный импорт
BorisZ: насколько я знаю нет
BorisZ: это хедер который в себя все стандартные либы включает ведь?
Pyhesty: ага, а питоне то же дофига стандартных либ?
BorisZ: не встречал в питоне такого ни разу, вряд ли оно есть - сильно бы все замедлило, каждый импорт отнимает времени сколько-то, интерпритатор же
ConstantBolzmann: Борь а ты писал в асемблере?
ConstantBolzmann: там щас ващето шейдеры при его помощи крутятся
BorisZ: только в универе лабораторные, тысячу лет назад
ConstantBolzmann: 16 вообще не то и прерывания все забанены щас
ConstantBolzmann: там просто портировано пол ядра)
BorisZ: с тех пор ни разу не понадобилось и не встречал вживую никого кому это было бы нужно )
Pyhesty: никто в первую дюну не играл?
ConstantBolzmann: я не знаю могу скрин покзать)
ConstantBolzmann: да Борь у тебя это крутится на обработке шрифта
ConstantBolzmann: это нужно и сейчас
BorisZ: а в проще между транзисторы электроны летают - нафига мне про все это знать )
ConstantBolzmann: код в разы упакованнее правда сложный
BorisZ: *в проце
ConstantBolzmann: ты не понял)
ConstantBolzmann: есть уязвимость
BorisZ: Pyhesty первая это был квест вроде бы, совсем древний, вторая уже RTS
ConstantBolzmann: в шейдерной обработке уязвимость за счет кода в шейдере который )
ConstantBolzmann: туда можно асемблер запустить)
ConstantBolzmann: сопсно шейдер и крутит асемблер
ConstantBolzmann: а шрифты у нас рендерятся через шейдеры теперь с версии какой там
Pyhesty: BorisZ да, первая была от первого лица, не совсем квест, но да, просто если кому интересен tasm16, то на олдгеймс уже три года завис перевод первой дюны, так как не удаётся упаковать обратно графику... если хочется покодить с пользой, то на олдгеймс =)
ConstantBolzmann: так перекинь код в 32
ConstantBolzmann: ты был в масме?
ConstantBolzmann: там различий минимум
ConstantBolzmann: тасм 16 это старые ашки
Pyhesty: а что делать с вызовами биоса и доса в 32м?
ConstantBolzmann: а теперь типо круче функционал
ConstantBolzmann: не там теперь круче
ConstantBolzmann: теперь в разы уцдобнее
ConstantBolzmann: пушишь и принтишь ядром
ConstantBolzmann: ашки заблочены и биос и прочее но зато в библиотеке пол ядра доступно
ConstantBolzmann: посути асемблер с функционалом си
ConstantBolzmann: я сначало испугался потом покурил так даже удобно
Pyhesty: эта игруха написана в 91м... какое там её перенести в 32й... чет какая-то дичь... или ты не мне? видео режимы всё не то, никто олд геймы при переводе не переносит на новый язык... она уже переведена, проблема с упаковкой ресурсов, она при распаковке больше и вылезает в чужую память ( хз где, нужно дизассмить...
ConstantBolzmann: блин ну ладно лови
ConstantBolzmann: щас я тебе кину
ConstantBolzmann: https://youtu.be/AQDRdkXTdbA
ConstantBolzmann: это то что это возможно вообще!
BorisZ: Pyhesty не знаю, сомнительная затея с переводом. Я например если увижу игрушку из 90-х старую, может и пущу слезу ностальгии, а если она будет переведенная то отплюнусь только)
ConstantBolzmann: а вот твоя переинициализация в новый асемблер добро пожаловать)
ConstantBolzmann: https://youtu.be/grN0tUYWyj4?list=PLtz4hzJDq7ZzJYNJVX6NghM5bIKFBs-ud
BorisZ: то есть аудитория - ностальгирующие старперы, им перевод мне кажется не нужен )
Pyhesty: ну тут кому как, переводят дос игры до сих пор и старперы с удовольствием играют и ностальгируют, не всем понятен инглиш, а практическая польза от знания ассемблера .286 - это дизассм старых прог...
ConstantBolzmann: польза от асма это проц 64 и прога на нем же на 64
ConstantBolzmann: считай дос асм только на максималках
ConstantBolzmann: там все видосы на русском
ConstantBolzmann: перевести я имею ввиду на 32 бита
ConstantBolzmann: в досе щас нету смысла
Pyhesty: да я вижу - гляну, спс
ConstantBolzmann: ты быстро вьедешь потомучто я то троишник не писал того что ты ослике делал
BorisZ: Pyhesty ну блин ты диверсант, зашел на олдгеймс, смотрю скриншоты, пускаю старческю слезу теперь)
Pyhesty: =)
ConstantBolzmann: а я от асемблера плачу)
Pyhesty: там ещё форум есть ) и нужны программеры для перевода некоторых игр )
ConstantBolzmann: ностальгирую и плачу и еще плачу что бисо и дос забанены)
Pyhesty: под многозадачной системой прямой доступ биос зло...
ConstantBolzmann: так его зщакрыли изза дыр
ConstantBolzmann: они и щас есть их знать надо
ConstantBolzmann: кстати в дебаге работают они
ConstantBolzmann: тоесть принтить будет и там делать что ты писал просто само прерывание системой не вызовется
ConstantBolzmann: ну и не в екране а в памяти ток видно будет
ConstantBolzmann: ты прикинь регистр 64 разряда
ConstantBolzmann: а меня учили когда 16 было
ConstantBolzmann: 64 в реальном времени
Pyhesty: "кстати в дебаге работают они" вероятно просто копия образа памяти биоса, а что мешает прыгнуть не по прерыванию, а прямому адресу? через драйвер как-нить в биос
ConstantBolzmann: хз я добрый кодер
ConstantBolzmann: прикладуха игры
ConstantBolzmann: насколько я понял все позакрывали изза ввода ворлд лок и курить фрибсд надо кароче
ConstantBolzmann: а вот на фрибсд времени и нет как раз
ConstantBolzmann: гайант лок в фрибсд режим называется
MadKnight: как дела посоны?
MadKnight: ConstantBolzmann Pyhesty
ConstantBolzmann: потихоньку привет
MadKnight: чё кодишь?
ConstantBolzmann: клешь и думаю о паре задачках
MadKnight: каких?
YurkovAS: MadKnight привет. Давно тебя небыло, потеряли уже.
MadKnight: да я в дискорде был
MadKnight: я слышал про то что вы меня потеряли
MadKnight: мне struct рассказал
MadKnight: хотел поменьше в чатиках сидеть и побольше кодить
YurkovAS: ясно, главное что все ок.
MadKnight: а ты что делаешь YurkovAS ?
ConstantBolzmann: что написал?
YurkovAS: да, чатики то еще зло. проще спросить, чем самому разбираться.
ConstantBolzmann: я вот тройку игр написал щас буду хвастаться)
YurkovAS: кодю гиперсоника
YurkovAS: MadKnight: но, чекни csb :grin:
MadKnight: а чё с ним
MadKnight: зачем
MadKnight: ConstantBolzmann чё за игры?)
ConstantBolzmann: змейка тренажер для слепого обучения клавы и матрицу начал остановил пока
ConstantBolzmann: и все в кое каком режиме
ConstantBolzmann: сдесь нельзя говорить про это
YurkovAS: MadKnight да подвинул тебя и микеича в ксб) такой кайф был, уже забыл. страдаю дальше в других мульти
MadKnight: а какой алгоритм использовал?)
MadKnight: smitsimax ?
YurkovAS: смитсимакс. там баг был симе, случайно заметил с он сразу стал заметно сильнее. больше не улучшил, там еще удачный сабмит получился - решил больше в нее не лазить.
MadKnight: у меня для него есть офигенская идея
Pyhesty: подскажите как в питоне считать все строки из input через list?
MadKnight: list([input() for i in range]) ?
MadKnight: Pyhesty
Pyhesty: сработало, спасибо
MadKnight: Pyhesty а что это ты такое делаешь?
Pyhesty: да питон изучаю... после плюсов тяжко, основная задача в питоне подобрать нужную функцию для решения задачи, в плюсах - напиши все сам =)
Pyhesty: ну и читабельность пытаюсь повысить, что бы не создавать пустой список, потом добавлять append...
MadKnight: ага, даже слишком
MadKnight: слишком "напиши всё сам"
MadKnight: мне они потому не нравятся для бизнес разработки
Pyhesty: ну питон для бизнес разработки то же такое себе... у нас заказчик любитель питона 2.7 при этом он конечно успевает принимать от нас 1.2ГБайта в секунду, но обработать это уже не в его силах... 64 ядра сотни гигов, хотя то же на GPU бы решалось на лету... так что питон не для потоковых данных...
MadKnight: у питона совершенно другая проблема
MadKnight: он медленный
MadKnight: я не о том говорил
MadKnight: в плюсах приходится слишком уж много фигни вручную пилить
Pyhesty: это да, спасает копипаст из инета... но прямая работа с памятью иногда полезна
Pyhesty: шарпы, кстати, не медленнее плюсов... хотя то же через прослойку работают...