Chat:Ru/2020-08-07
vrabosh: это не размышлять надо, а читать
jiki: http://chat.codingame.com/pastebin/60337d52-ff88-41b2-88a9-639b7ec43802
Uljahn: матричные методы на графах - это топчик
amurushkin: так задолбался читать. но одно я понял. я вчера сказал одно слово и его всю ночь обсуждали и день.
amurushkin: даю установку на сегодня - паттерн builder )
mykeich: а я все решаю codingame-sponsored-contest. никак не могу что то дельное получить
BorisZ: mykeich а ты в контесте последнем участвовал который пакман?
BorisZ: тут похожая задача то
BorisZ: лабиринты только надо нарисовать
BorisZ: ну и точки кроме тебя никто не есть
BorisZ: подумал может я спойлерами тут кидаюсь, сорь
mykeich: до этого я давно дошел
mykeich: сейчас пытаюсь проверить правильно ли я сделал алгоритм движения призраков
mykeich: а так пару странностей есть. почему в M3L3 призраков на одного больше как будто:)
BorisZ: а ну я смотрю ты высоко уже забрался )
mykeich: карта не вся используется в M2L1. при переходе через левую границу попадаешь не на край а в глубину карты справа
mykeich: 4000 как не странно получилось случайно при каком то кривом алгоритме. причесал скатился до 3000:)
BorisZ: а тесты и валидаторы одинаковые хоть там?
BorisZ: а то с них станется - поменять немного лабиринт
mykeich: по всем признакам - нет. там названия есть и они не совпадают. не изучал на сколько
mykeich: посмотрел. все разные
BorisZ: действительно разные (
BorisZ: а все симметричные?
BorisZ: не проверял?
mykeich: Я assert ом проверял число игроков. В M3L3 их на одного больше.
BorisZ: по одной из осей то всяко должны быть симметричные
mykeich: интересная мысль
mykeich: Яб даже сказал гениальная, а я не додумался:)
BorisZ: я тоже не предполагал даже что враги могут вести себя по разному
BorisZ: да и вообще не факт что тут они ведут себя так же как в той статье на хабре
mykeich: я думаю что у них разный алгоритм. когда паровозик получается то некоторые отбиваются. Вот хочу проверить алгоритм дебагом, но муторно
BorisZ: у меня жадный алгоритм совсем простой - беги к ближайшей точке, если враг на расстоянии <=2 то беги от врага
BorisZ: первый лабиринт например и наполовину не зачищает
BorisZ: http://chat.codingame.com/pastebin/2940f2b8-4c78-4525-a29b-11ee21c66353
mykeich: у меня получалось полностью зачистить за 500 ходов
mykeich: надо точно знать движение призраков
BorisZ: если предполагать что они никогда не меняют направление на 180 градусов и симметрию проверить то можно уже далеко продвинуться
BorisZ: чур меня
mykeich: не простая задача, а все как то спустя рукава отнеслись
Uljahn: :thinking:
BorisZ: и через край карты он у меня даже не ходит, вот тупица
mykeich: там еще координаты могут прийти за пределами карты вроде
Uljahn: я придумал ввести понятие телепорта)
Uljahn: для этих случаев
BorisZ: телепорт это в произвольную точку, а тут края склеены просто
mykeich: проще понять точные границы карты и уменьшить width, если привидение координат уже реализовано то больше ничего делать не придется
Uljahn: у нас кубер и dead_man заморачивались этим контестом, там что не все спустя рукава отнеслись
mykeich: http://chat.codingame.com/pastebin/e4f1a122-589a-4550-aee1-a4f45570e3e7
mykeich: ну вот ситуация что 0 призрак прет вниз а не влево за пакменом 4
mykeich: почему я н епонимаю, переключил режим на другой или что?!
jiki: Ульяна как ты делал лабиринт?
Uljahn: mykeich: у тебя лабиринт меняется там?
Uljahn: jiki: bfs и выбор ближайшей цели
mykeich: Uljahn да, этот лабиринт от M1L1 и запущен на M2L1.
jiki: а ты можешь сказать ты обход в ширину сращзу делал того вида который там дают?
jiki: http://chat.codingame.com/pastebin/7e7a1000-c85b-40f2-a094-0d70d7fb78b6
jiki: от меня просят куда идти
Uljahn: да, сначала цель - это вопросик
mykeich: jiki что за пазл?
Uljahn: kirk quest
jiki: я закоментировал движение мне кинуло такую картинку
jiki: если точка есть иду к ней?
Uljahn: https://www.codingame.com/training/hard/the-labyrinth
Uljahn: ищешь путь по точкам до ближайшей цели, т.е. до знака вопроса, это этап исследования
Uljahn: в комцентр не заходишь пока
mykeich: nfvтам персонаж карлосон?
jiki: какая магия вокруг этих графов вотточно видект бог ребятки эжта тема конченная
jiki: для новичка сказать искать все равно как балерина завтра полетит на комете
Uljahn: я без графов делал, тупо поиск в 2D массиве
jiki: ну будь там другая матрица ты ее вставлял в бфс и точки метил?
jiki: или куда ты их записывал?
jiki: бфс же и с деревьями так же работает с матрицей н на н
Uljahn: угу
jiki: ты новичкам не говори такое
jiki: ты щас обманул человека сказал что не с графом а ты работал с графом
jiki: я более менее разобрался но нихера не понимаю пока
Uljahn: не с графом, но 2D матрицу можно рассматривать как граф, если проверять только соседние клетки
jiki: если ты матрицу засунул в бфс это граф
BorisZ: лабиринты называются MxLy, тут х - это сам лабиринт, а у - начальная позиция просто - верно?
jiki: это матрица какаято из определений графов
jiki: какая там она я знать не хочу но приходится разбираться
wlesavo: лабиринт классный пазл прямо, тут и туман войны примитивный и поиск пути, я помню когда решил прямо себя сразу человеком почувствовал
jiki: https://prog-cpp.ru/data-graph/#width
jiki: а как матрицу классифицировать?
jiki: так ладно пойду тупо все попробую
Uljahn: ок, не буду мешать тебе упорствовать в своих заблуждениях :relieved:
jiki: я всю ночь пытался понять потом во сне понял щас опять сижу не пойму
Uljahn: "я более менее разобрался но нихера не понимаю пока"
Uljahn: вся суть jiki
jiki: это ко мне не имеет никакого зхначения
jiki: я и вопрос который интерес разные вещи и вопросы разные
Uljahn: бфс можно пилить без графов, просто нужен метод получения соседей текущей клетки, а откуда их получать - не так важно, из графа или из матрицы, или из другой структуры данных
Uljahn: чтобы найти путь по проходимым клеткам к ближайшей цели
jiki: чтобы найти символ и пометить его или записать в другую структуру?
Uljahn: в том числе и это
Uljahn: тебе надо отмечать посещённые в процессе поиска клетки, чтобы не зациклиться
jiki: а до этого ты работал с графами?
Uljahn: естественно
Uljahn: нам в вузе давали теорию и про матрицы рассказывали
jiki: и до этього ты работал с графами и знал об этом а щас знаешь что это не граф
Uljahn: ну, можно матрицу преобразовать в граф, но зачем?
jiki: я вот гуглил всю ночь пришел к тому что тут кидают граф
Uljahn: матрица с лабиринтом нагляднее при печати в дебаг
Uljahn: я видел часть вашего разговора с vrabosh, там речь идёт о свосем других матрицах)
Uljahn: смещность, инцидентность, достижимость и т.д.
Uljahn: *смежность
Uljahn: да, а у нас тут матрица с лабиринтом в инпуте
Uljahn: символьная
Uljahn: и индекс текущего положения, ещё мы знаем размер лабиринта
jiki: ее можно в граф преобразовать
jiki: я так понимаю граф имеет вид 0 или 1 в ячейке 1 это есть ход ноль нету
jiki: надо научиться пользоваться графами
Uljahn: граф - это способ представления связной структуры, linked list - это граф
Uljahn: это матричное представление графа
jiki: по нулю нельзя ходить по единичке можно
Uljahn: там могут быть не только нули и единички, но и веса рёбер
Uljahn: зависит от матрицы
jiki: а тут я вызываю фатал ерор
jiki: ребра матрицы имеют вес понимаешь
Uljahn: рёбра графа, или элементы матрицы
Uljahn: лучше бы тебе с нуля теорию подучить, начни с неориентированных графов
jiki: знаешь как я представляю себе граф?
Uljahn: не надо
mykeich: не надо
jiki: есть такой прибор где дырочки
jiki: дырочки соединены проводками
Uljahn: учи теорию или бан
jiki: перечитай вопрос или бань
jiki: другой человек может не понять
jiki: и я вижу ты сам не уверен
jiki: http://chat.codingame.com/pastebin/34567f0d-4f59-4668-a3b6-ee192ccae914
Uljahn: ок профессор
jiki: не надо не обьясняй поищу чела который доступно обьяснит
Uljahn: корейца попроси
jiki: вообще в этом деле главное понять что граф это карта если ты узок как я
jiki: а остальную инфу искать надо
jiki: где идет обьяснение для чайников и обьясняется каждое движение и элемент и что происходит
Uljahn: и вообще, с чего бы тут кто-то должен объяснять то, что за 15 секунд можно нагуглить?
Uljahn: тут сайт для практики, а не для онлайн-обучения основам под контролем преподавателя
jiki: я гуглил всю ночь я даже дерево из точек этих гребаных нарисовал
mykeich: И в чем проблема?
Uljahn: ты просто искал удобное и лёгкое объяснение
Uljahn: в днк?
jiki: если предположить что каждая нода сенсер
jiki: и в опр парент кидать точку
jiki: дальше не буду писать потомучто я не понимаю пока
jiki: но теоретически я говорю о дереве направления
jiki: а что до дерева делать не понял пока
Uljahn: из корня у тебя будут ветки с проходимыми клектами-соседями
jiki: каждая ячейка имеет 4 сенсора
Uljahn: на каждой итерации нужно разворачивать ветки на текущей глубине дерева и проверять, достигнута ли целевая клетка
jiki: вот мое исследование но я пока понял только ниточку
Uljahn: сенсоры - это потенциальные соседи, из них нужно выбирать только те, которые проходимые
Uljahn: и не посещённые ранее
Uljahn: т.е. нужно вести учёт посещений
jiki: ну у меня в дереве я хочу иметь только точки тоесть направление камеры
jiki: учет посещений я веду отсекая отвлетления если есть углубление
Uljahn: если ты с деревом связался, то в итоге получишь ветку, в узлах которой будут клетки пути, а в конце - целевая клетка
Uljahn: вернее, не клетки пути, а экшоны, если ты направлениями оперируешь
jiki: проверка тру нажал тру записал в дерево
jiki: но мы не нажимаем проверяем и записываем
jiki: но до дерева надо дорости я всмысле осознать что происходит до дерева а тут я не уверен
jiki: я прохожу в ширь матрицу и пишу точки в дерево?
Uljahn: да, один шаг в ширину и апдейт дерева
jiki: вот этого я не понимаю в ширину предпологается что он идет от колонок?
jiki: сверху вниз чтоли ходит?
jiki: в дереве я понимаю как он работает
jiki: я сущность обхода в ширину в матрице не понимаю
Uljahn: в ширину - значит от текущих активных клеток в стороны непосещённых проходимых соседей
jiki: вершины это строки я исследовал вроде
Uljahn: т.е. надо фронт хранить - список активных клеток, которые на переднем крае поиска
Uljahn: а, ты карту в граф хочешь конвертить, ну ок
gybson_samara: в пэкмане я в граф конвертил, очень удобно
mykeich: Uljahn ты уверен что не стал целью издевательств с целью вовлечь тебя в бессмысленный разговор ради разговора?
gybson_samara: из любой точки путь любой длинный легко считать
jiki: gybson_samara ты можешь сказать как матрицу в граф представить?
jiki: http://chat.codingame.com/pastebin/148ce032-6690-4263-9d3f-408a464ed3c5
Uljahn: mykeich: предлагаешь игнорить вопросы по существу и не вестись на троллинг тупизной?
gybson_samara: jiki как-то так graph = {(y, x): [] for y in range(height) for x in range(width) if f[y,x]!=STATE_WALL}
Uljahn: jiki: шёл бы лучше в линейку шпилить, зачем тебе эти графы?
jiki: на графах частично память работает и некоторые технологии
gybson_samara: y,x это индексы в матрице, а то да, стенка
jiki: а почему сначало игрик а потом икс
Uljahn: потому что в матрицах принята индексация (строка, столбец)
jiki: магия какаято ладно попробую
jiki: я получаю граф и прохожу в ширь
jiki: пишу гребаные точки в дерево
jiki: а кто понимает вообще что происходит
jiki: https://prog-cpp.ru/data-graph/#width
jiki: в матрице нули и единицы
jiki: чо там происходит я понимаю но я не могу связать вывод с работой проги
jiki: ну в ширь проходить она выводит 1 2 3 74 6 5
Uljahn: порядок посещения узлов
jiki: или если дерево уже является графом тогда вопрос стоит иначе как матрицу в дерево преобразовать
jiki: над этим вопросом я бьюсь уже как начал думать над другой задачей
Uljahn: дерево - это граф, но не всякий граф - дерево
Uljahn: Automaton2000: граф Буратино
Automaton2000: ну смотря какие у тебя цели конечно
jiki: все не буду травмировать я пока не понял
jiki: обидно что даже в 3д эта хренатень нужна
jiki: поэтому буду разбираться
jiki: прям щас начну исследовать
Uljahn: спасибо, что держишь в курсе
Uljahn: а то мы ломаем голову, начал ты уже исследовать или нет
mikitosina1: Ребят, всем привет! Стало интересно, а есть вообще в ascii баква "хуй"? Прошу прощения за мат.
mikitosina1: буква*
jiki: выведи все символы и посмотри
BorisZ: забить в гугле быстрее
BorisZ: ascii - там всего 128 символов, там русских букв то нет
gybson_samara: в аски есть все, что есть на клавиатуре и еще немного =)
jiki: string s=""; for(int i=0;i<255;++i) cout<<s=i<<endl;
gybson_samara: https://ru.wikipedia.org/wiki/ASCII#/media/%D0%A4%D0%B0%D0%B9%D0%BB:ASCII_Code_Chart.svg
jiki: gybson_samara а где ты учился по графам?
Uljahn: mikitosina1: была буква Х (хер) в глаголице Ⱈ
jiki: http://chat.codingame.com/pastebin/e77dd97e-7e0e-4221-bcdb-f4a6f62b34a4
Uljahn: узлы - это индексы строк и столбцов, вроде бы
Uljahn: т.е. 0-й узел - это нулевая строка, он связан со столбцами, если в строке 1
jiki: тоесть на глаз нельзя себя проверить прога выводит числа которые соответствуют узлам
Uljahn: видно, что 0-й узел связан с 1-м, 2-м и последним
jiki: точка входы на строке из нулей и единиц
jiki: которая дает ход на соседние строки
jiki: и она мб выводит в какой последовательности шла чтоли?
Uljahn: нет конечно, это просто топология, т.е. структура
Uljahn: как узлы соединены между собой
Uljahn: дальше надо алгоритмом по ней ходить
jiki: щас проверю 0 узел с 1 2 и последним
gybson_samara: jiki в универе я учился, 20 лет назад =)
jiki: я вот тоже но видимо на тот момент испугался как щас
jiki: и нихрена не понятно пока
mykeich: jiki ну и где код?
jiki: я пока пытаюсь в ее код вьехать
jiki: алгоритм бфс я проделывал в дереве и понимаю но не понимаю вот условия
mykeich: В чей код?
jiki: Найти все рёбра, лежащие на каком-либо кратчайшем пути между заданной парой вершин. Найти все вершины, лежащие на каком-либо кратчайшем пути между заданной парой вершин.
jiki: http://chat.codingame.com/pastebin/1ab78ffc-d5ce-4daa-9de3-516bde223140
jiki: визуально глядя на матрицу по выводу можно понять что происходит?
jiki: тоесть это ребра вершины
jiki: https://prog-cpp.ru/data-graph/#width
mykeich: т.е. у вершины может быть до 7 соседей?
jiki: так пойду у страуструпа гляну
mykeich: а зачем nodes[j] == 0 в проверке соседей?
mykeich: проверка что вершина уже посещенная чтоль. магические числа
jiki: как визуально в матрице найти эти цифры?
mykeich: ты пытаешься понять BFS?
jiki: графы скорее всего потомучто алгоритмом я пользовался
mykeich: ну код как код, что ты хочешь от него?
jiki: я хочу глядя в матрицу понять откуда взялось это
mykeich: не понятно
jiki: просто если я щас вставлю и подставлять буду какието 0 и единицы для меня это будет черный ящик
jiki: на что смотреть в матрице надо?
jiki: чтобы понять что за ним 2
mykeich: Это номера вершин в том порядке в котором и обходит BFS. Эта инфа по сути бессмысленна для практического применения.
jiki: а если так вместо этой матрицы мне надо сгенерировать
mykeich: пример?
mykeich: не, давай пример
mykeich: здесь вопрос в способе описания графа, автор того кода выбрал такой, я предпочитаю другой
jiki: нажимает кнопку и прога бедит обратно
jiki: это как раз генерация графа
jiki: тоесть тот маршрут или еще чтото можно представить в виде графа клеток где он и нпц
mykeich: так сложно на словах. опиши свою карту в коде, минимальный пример который тебе понятен
jiki: блин так и работает обидно что я как бобик
mykeich: я не могу тебе помочь без конкретного примера. мне лень кирка открывать
jiki: http://chat.codingame.com/pastebin/39b0f04e-7954-4092-b083-76b760d8e9c2
amurushkin: а в чем вопрос? на этой карте 3 точки проходимы что ли?
jiki: я уже боюсь говорить на эту тему
mykeich: карта как карта, ещеб описание к ней
mykeich: Описание читал? The character # represents a wall, the letter . represents a hollow space, the letter T represents your starting position, the letter C represents the control room and the character ? represents a cell that you have not scanned yet.
mykeich: Обычная карта в который вариантов движения только четыре
mykeich: в каком виде у тебя эта карта в коде?
jiki: щас тогда попробую преобразовать
jiki: я сначало понять пытался
mykeich: char grid[R][C];
mykeich: Тебе пойдет?
mykeich: теперь тебе надо её использовать в BFS?
jiki: щас обновление скачается
jiki: ну я предпологал так сделать вот
mykeich: ты о чем?
jiki: вопросы в нули превратить
mykeich: Зачем?
mykeich: не занимайся оптимизацией раньше времени
mykeich: оставь char
BorisZ: нет, ты путаешь карту лабиринта с представлением графа в виде матрицы связности
BorisZ: это разные вещи
mykeich: jiki тебе не обязательно приводить к тому формату данных что у тебя в примере по bfs
mykeich: т.е. вредно
BorisZ: пример ты неудачный нарыл, матрица связности для представления карты типа шахматной доски - плохая идея
mykeich: http://chat.codingame.com/pastebin/1bfcb8ce-c995-4b7d-9cb6-6dbe75adc8bd
BorisZ: тут если нужно граф то лучше чтоб он был в виде списка вершин, у каждой вершины список соседей
jiki: иду бфс по этой карте вширину
jiki: потом двигаюсь если не стена до С
jiki: иде влево пишу в левый сенсор
jiki: верх нода которая за верх отвечает
jiki: когда дошел до С озращаюсь по дереву вверх
jiki: дерево нарисовал вроде работает и понятно а до дерева пробовать буду
Uljahn: у нас разговор с этого начался. что есть матрица с картой лабиринта и это не граф, но в бфс её использовать можно
Uljahn: преобразование в граф - это лишний слой абстракции
Uljahn: в данном конкретном примере, конечно
jiki: есть задачи где это необходимо
Uljahn: так бы и сказал, что хочешь в общем виде решить
jiki: я убегаю хрен знает куда
jiki: и как они генерят себе графы?
Uljahn: тогда надо как gybson_samara сказал - преобразовать карту в граф
jiki: тупо координаты подставляют чтоли в матрицу?
mykeich: http://chat.codingame.com/pastebin/ae965121-f4e9-41ac-84af-0818becef6ef
Uljahn: клетка с индексами - это нода, у неё есть соседи - ставим в строке единичку напротив них, вот и всё
Uljahn: пронумеруй клетки карты построчно сквозной нумерацией и с ней работай, так проще будет
jiki: тоесть теоретически можно сканировать память
jiki: в дерево еще оно и метить заполнение чемто твердым в любой элемент тупика
Uljahn: да что угодно, только в случае 2D поверхности такое представление будет неоптимальным
Uljahn: в кирке ограничение на размер лабиринта 100 по вертикали, 200 по горизонтали, матрица смежности будет 20к на 20к размером )))
Uljahn: и состоять из нулей на 99.9%
jiki: я кажется начинаю вьезжать почему кадровый буфер в думе в дереве кадр на ноду
jiki: кадр на ноду это значит перерисовать с каждой итерацией
Uljahn: в общаке обсуждают, как при генерации симметричной карты избежать узоров в форме свастики лол
jiki: и тут мы тоже с каждой итерацией перерисовываем все состояние
jiki: пока не С и есть точка и не стена
jiki: тоесть если взять первый пример движение вправо предпологает перерисовку всего кадра
jiki: сделал движение на одну клетку перерисовал все состояние кадра
jiki: прочел сделал движение перерисовал весь кадр
mykeich: причем тут твоя проблема с пониманием BFS?
jiki: этот цикл перерисовывает кадр
jiki: http://chat.codingame.com/pastebin/391b0b7c-5e6e-4a4f-90ff-9e4a21270c7e
jiki: http://chat.codingame.com/pastebin/f0f38741-bf95-4ddf-9a9f-a96cf9fb902f
jiki: в кадре происходит изменение
jiki: если убрать изменение кадра кадр фалсится
jiki: если мы уберем в игре время он остановится на первом кадре
jiki: и в ноде буду поиск делать бфс
jiki: http://chat.codingame.com/pastebin/68becda5-f9e8-4694-8d85-a899d9dc61e1
jiki: Построение изображения Для ускорения отображения используется BSP-дерево[9] (в отличие от порталов в Duke Nukem 3D). Объекты изображаются в виде спрайтов, в отличие от Quake.
Движок рекурсивно проходится по BSP-дереву, отрисовывая стены от ближних к дальним[10]:
jiki: сделал шаг вперед узел сменился
jiki: http://chat.codingame.com/pastebin/d8afae9d-2d60-49db-b0cc-261909c785e9
amurushkin: да в дум как такового перемешения в высоту нет
amurushkin: в quake только появилось
jiki: что изза особенностей этой задачки
jiki: рисование кадра на 1 действие
jiki: кадр можно помещать в узел
jiki: эта задачка 2 у дума тоже решение было в 2д для 3д только это единствоенное отличие а по сути там 2д
jiki: тоесть первый кадр суем в вызываем поиск внутри кадра
jiki: тоесть будет по честному работать тогда
jiki: в каждом кадре свой поиск
jiki: они все заканчиваться будут а кадр обновлять состояние
jiki: ну кароче пофиг к задаче не имеет отношения но интересно
jiki: nbr njr gj,elbk hfpj,hfnmcz c 'njq ,flzujq
jiki: тик ток побудил разобраться
jiki: гуглил вчера мктс и пришел к тому что надо разобраться с поисками
Uljahn: Automaton2000: ехидный принтер взбесился, сумеешь ли ты совладать с ним
Automaton2000: а ты уже в бронзе
jiki: щас наверно задачи более интересно
jiki: в то время попрывная была 3д
jiki: а щас зэт буфер типо обьемный
jiki: а в 3д и куби типо нодами заполняется
jiki: https://beru.ru/product/forceberg-cube-kub-iz-magnitnykh-sharikov-5-mm-chernyi-216-elementov/100875393731?utm_term=13488571%7C100875393731&lrfake=213&utm_source=google&clid=603&utm_medium=search&utm_campaign=gb_new_smart_shgb_search_rus&utm_content=cid:10071742979%7Cgid:102113747260%7Caid:435684997647%7Cph:pla-917103022941%7Cpt:%7Cpn:%7Csrc:%7Cst:u&gclid=EAIaIQobChMI54eFo5qJ6wIVQ9OyCh0zlAEMEAQYAyABEgK3R_D_BwE
jiki: может это не корелирует с реальностью но мб и такое есть
wlesavo: Automaton2000 попроси ульяна что-то с этим сделать :slight_smile:
Automaton2000: так я не про это
Uljahn: ваш голос принят.
Uljahn: пока статистику собираю по отзывам активных пользователей, как права пофиксят - будем принимать меры
jiki: на твое раздражение другими в чате это не повлияет и не решит корень проблемы
jiki: на самом деле даже только усугубит
jiki: тебе потом буду другую политику модераторы обьяснять подожди годик
jiki: ты кикаешь уникальных пользователей
jiki: значит сюда можно писать
wlesavo: ты вайпаешь чат своим дневником, отбивая желание у любого другого участника хоть что-то писать, мне даже это сообщение не хочется отправлять, если честно, потому что оно получит твой многострочный ответ
jiki: сделай лог себе в другом месте
jiki: и потом недостатки чата на меня не вешай
jiki: это сугубо твоя проблема
jiki: сделай чат где ты его не вайпнешь
Uljahn: лол
jiki: есть полно методов решения твоей проблемы
Uljahn: например бан
jiki: да ульяна забанить с его циферкой
Uljahn: это тоже функционал чата
jiki: чтобы он его восстановить не смог
jiki: тыже грозишь мне баном я тебе тоже могу
jiki: желаю чтоб теб забанили без восстановления
gybson_samara: Uljahn намного эффективнее было бы возможность каждому персонально вести свой игнор-лист
jiki: пока вас не забанить вы так и будет жужу
jiki: уверен разок забанить тебя ты сразу проще станешь относится
Uljahn: gybson_samara: такая возможность есть во внешнем клиенте
jiki: чтобы ты тоже проше через этот путь если хочешь стать модератором
Uljahn: я вменяемый, мне достаточно намекнуть, если моё поведение начинает кого-то раздражать
jiki: создашь по новой себе аккаунт
jiki: сразу пофиг на чат станет
jiki: и потом тебе самому не в напряг когото о чем то просить писать не писать
jiki: забаньте того забаньте этого
jiki: он пишет в чат забаньте его
wlesavo: маленький тролль во мне конечно получает некоторое удовольствие от этого ментального потока, но все таки интересный чат приоритетнее
Uljahn: так никто и не пишет кроме тебя)
jiki: ну общайся кто тебе мешает
Uljahn: а с кем ты общаешься?
jiki: вы сами это иницируете и потом общаетесь
Uljahn: тупо в пустоту воду льёшь
jiki: это со стороны ты не видел что вы пишите если вообще не писать сюда
jiki: как он посмел в чат написать
Uljahn: мы обсуждаем то, что нельзя нагуглить за 15 секунд, и что относится к платформу CG
jiki: а потом сам так же общаешься
jiki: ну я говорю тебе ты потом сам же общаешься просто ты не можешь писать в чат не общаясь никто не может
Uljahn: я-то общаюсь с людьми, а не с пустотой
jiki: за то что позиционируешься так тебя бы давно следовало забанить как обертывать нету смысла главное посыл вежливо тоже можно оскарбить
jiki: я хочу чтобы тебя забанил без права восстановления на этом аккаунте
jiki: чтобы ты понял чо ты сам несешь
Uljahn: пока ты в меньшинстве, а против тебя уже много голосов
jiki: ну мое желание этим не изменится
jiki: а если я такой есть еще таких же 2 процента будет
607: Ульян, против него ещё +1 голос
Uljahn: 607: принято
jiki: мое желание чтобы тебя забанили без восстановления этого аккаунта
jiki: вполне конкретное желание
jiki: если интересно я тебе скажу почему
gsomix: Предлагаю репортить об неадекватном поведении через форму на сайте.
gsomix: В профиле есть кнопка "Report Abuse".
jiki: я уже делал щас надеюсь рассмотрят мой репорт
Uljahn: вообще, я не набивался в модеры, это коммьюнити меня попросило взяться, делегировало мне право выражать общее мнение, т.о. я буду принимать решения в пользу большинства с учётом мнения меньшинства
jiki: Ульян ты читай иногда что пишешь
jiki: я еще раз тебе повторяю в погоне за доказательством становишься заложником ложных идей
jiki: зачем когото оскарблять обязательно надо
jiki: зайди на нулевой аккаунт
jiki: у бана нету адекватного обьяснения кроме как голосование
jiki: кроме как попросить не писать в чат куда можно писать
Uljahn: объяснение просто - убрать источник нерелевантной информации
Uljahn: *простое
jiki: получается ты неадекват если твои цифры аргумент
jiki: значит тебя забанить надо
jiki: потомучто ты не понимаешь чо ты несешь
jiki: тебя надо лишить привелегий
jiki: ты не понимаешь здраво их
jiki: не цифр ни модераторства
jiki: разочек тебя надо лешить привелегий
jiki: а если по честному у моего предложения вполне конкретная без оскорбления тебя здравая формулировка
jiki: ты потерялся в том что простые люди сюда тоже могут заходить
jiki: вот только за это тебя вбан надо
Uljahn: ты перепутал чат CG с чатом вконтакте
jiki: чтобы зайдя на новый аккаунт ты в след раз думал чо ты иницируешь против кого чего просишь и зачем ты вообще ищешь каких то людей которые в чем то виноваты когда нет виноватых и никто не оскарбил тебя
jiki: ни за время пока ты недавно инициировал бан
jiki: не пиши не общайся тут много чего есть
jiki: но у тебя всегда должен быть виновник тпотомучто ты так сказал
jiki: а другой человек не гуру
jiki: и это вся проблема поверь
Uljahn: не бомби, кто тебя обидел?
jiki: херня твоя по типу идиоты люди кто не гуру
jiki: и что сюда писать нельзя
jiki: я тебя не сравниваю не обижаю ничего
jiki: вот щас я тебе все как есть сказал
amurushkin: gybson_samara: во внешнем клиенте можно
jiki: запараило итак не понимаешь чтото задашь не так вопрос тебя идиотом назовут
jiki: я ночью кидал живой анекдот
jiki: парень заходит в пост пишет как с графами разобраться в лабиринтах ему ответ пишут тут надо волновым алгоритмом решать
Uljahn: правильно пишут
amurushkin: а в чем анекдот? ответ верный
jiki: да срать может ему надо разобраться не с волновым а с графами
jiki: и конечно после такой сцены ясно что тут оскарбляет чото когото
BorisZ: jiki главная претензия к тебе - тебя слишком много в этом чате.
BorisZ: можно и вопросы задавать глупые и про что-то трепаться - никто не против
jiki: а ты не задаешь глупые вопросы
BorisZ: просто постарайся писать пореже - и большинство наездов на тебя исчезнет
amurushkin: вместо 10 сообщение в 2-3 слова лучше 1 на 20
BorisZ: угу, сформулировать мысль, потом писать. Если вопрос, то подумать, потом погуглить, потом писать - оно само так и получится
BorisZ: все будут только рады, вот честное слово
vrabosh: jiki, да и раздражает, когда человек нечего не сделал в теме которой спрашиваю, а он советы накидывает, потомучто теоретик..
vrabosh: и философ)
amurushkin: как пройти уровень в марио?
amurushkin: установить opengl. закодить марио
amurushkin: иногда так выглядит
Uljahn: скомпилить генту, поставить emacs
gsomix: О, кул, через Miranda работает.
Uljahn: угу, в миранде настроилось, но не нашёл как скрыть заходы/выходы на канал
gsomix: Uljahn, нужно настроить фильтр и включить его для чата.
gsomix: https://user-images.githubusercontent.com/5046855/88483505-02982180-cf71-11ea-8445-f78f9faddb44.png
gsomix: А потом фильтр включается в окне чата. Снизу справа есть пиктограммы.
490588: о, спасибо, разобрался
inoryy: фигасе, миранда ещё живая
inoryy: я ей в начале 00ых пользовался
607: тогда аська жутко рулила
Uljahn: так в миранде комбайн - ирц, аськи, джаббер и какие ещё протоколы добавишь
inoryy: ага, я для ирц и аськи и юзал
inoryy: даже в голову б не пришло что ещё живет
vrabosh: да мне не понятно как аська потеряла популярность?
Uljahn: а я чё-т даже не подумал про джаббер в миранде, хотя аську по работе использую
vrabosh: вроде она везде была и на больных древних.. неужели они не додумались, просто прикрепить еще номер телефона, и сразу скопировать вайбер и ватсап идеи как только появились
vrabosh: как компания с опытом, может уступать конкуренцию, тем кто без опыта?
Uljahn: компании с опытом более инертные
inoryy: в середине 00ых вне рашки стали популярны месенжеры с аватарками и гифками и тд, мсн например
inoryy: вайберы и воцапы пришли намного позже загибания аськи
vrabosh: так что там инертного? взял выпустил второй клиент.. аська мессагер, где поолитика как у ватсапа на тот момент. когда у вацапа допустм еще было 100млн людей
inoryy: до вайберов и воцапов еще всякие скайпы были
Uljahn: видимо у аськи протокол нерасширяемый
vrabosh: ониж поидеи должны в этой теме больше всех знать
tomatoes: вообще не помню как айсику умер :thinking:
vrabosh: вот ютуб к примеру, был на флэше вроде, стал не флэш.. перестроились
tomatoes: както слишком естесственно всё произошло
gybson_samara: была у меня аська 65510765, но боюсь доступ не восстановлю уже, да и зачем =) последние годы общались там только с женой и то на телегу перелезли
vrabosh: а мне надо вспомнить, востановить.. там штук 500 контактов наверно
tomatoes: оно работало и буквально недавно полностью удалили старые аккаунты
vrabosh: интересно узнать. что написали за это время)
gybson_samara: tomatoes а оно все как-то слишком естественно, рази ВНЕЗАПНО тик-ток
607: моя аська 111515844, лет 15 уже её не юзал
vrabosh: и стоили кучу денег пятизначники)
gybson_samara: моему 8значнику хз сколько лет то
Uljahn: даже на хабре недавно жаловались, что массовая зачистка неактивных акков в аське прошла
tomatoes: ну не кучу, но для номерка возможно много
tomatoes: в принципе сейчас красивое имя в твиттере тоже денег будет стоить
gybson_samara: я в твиттере 2 коммента подряд Маску написал (все прилично) и меня забанили
gybson_samara: на этом наши отношения с твиттером и закончились =)
Uljahn: русские хакеры опять вмешались в демократию
gybson_samara: да не, тогда очень много ему писали, вот твиттер и повел себя жестко
gybson_samara: впрочем это не моя проблема, приползут на коленях, прощу скорее всего
gybson_samara: по нейронкам и нампи очень странные туториалы попадаются, ни в одном не было next = np.dot(input, weights)[:]
gybson_samara: а еще функцию активации мапить
gybson_samara: тоже не делают
vrabosh: что во фласки вызывается когда ctrl+c нажимаю, хочу завершающий скрипт сделать
vrabosh: делаю так не помоагет
vrabosh: try:
app.run() except: print('ddsdds')
Uljahn: finally: может добавить, не?
vrabosh: сработало)
Uljahn: gybson_samara: что значит мапить?
Uljahn: есть np.vectorize, только он ускорения не даёт вроде
gybson_samara: Uljahn 1.0 / (1.0 + exp(-activation)) применить к вектору
Uljahn: лучше активацию на родных нампи-функциях написать, типа 1/(1 + np.exp(-activation))
gybson_samara: Uljahn лучше конечно, и сразу к вектору чтобы
Uljahn: именно
vrabosh: а при ctrl+z нечего не поможет?
gybson_samara: Uljahn все понял, спс
gybson_samara: Ну тогда вот вам годный туториал, если кому надо
gybson_samara: https://towardsdatascience.com/lets-code-a-neural-network-in-plain-numpy-ae7e74410795
inoryy: http://chat.codingame.com/pastebin/a0bcae84-01d9-4e8f-aaf5-8b36de0171aa
inoryy: блин
inoryy: vrabosh это тебе ^
vrabosh: при зете не работает
vrabosh: ^Z [1]+ Остановлен /usr/bin/python3 ...
gybson_samara: Uljahn а как это сделать в виде процедуры? чтобы не вернул, а прям в аргументе поменял
vrabosh: причем в процесса весит ps
Uljahn: gybson_samara: in-place?
gybson_samara: Uljahn да
gybson_samara: Uljahn а то сейчас h1 = 1/(1+np.exp(-h1))
gybson_samara: это 1. некрасиво, 2. плохая практика
Uljahn: хч, вход активации и выход активации - это разные сущности, почему в одной переменной они?
Uljahn: *хм
inoryy: vrabosh а тьфу на ctrl z оно и не будет реагировать, ctrl c конечно же
inoryy: на ctrl z оп система отправит процесс в бекграунд
gybson_samara: Uljahn это не вход и выход потому что, а состояние нейрона
Uljahn: gybson_samara: даже в статье по ссылке функция активации возвращает A_curr, Z_curr
Uljahn: активации слоя, в смысле
Uljahn: которая single_layer_forward_propagation
gybson_samara: http://chat.codingame.com/pastebin/acf60e33-045f-45c5-81e7-72cd61fe01a2
Uljahn: не аргумент
gybson_samara: нет особых причин разделять вход и выход нейрона, они идентичны
Uljahn: во фреймворках вообще граф выполнения билдится
gybson_samara: Uljahn и до этого дойдем =) везде найдем свои недостатки =)
Uljahn: там эти промежуточные переменные под капот уходят
gybson_samara: там у них времени вагон
gybson_samara: а я тут в последнем контесте дебаг отключал =)
Uljahn: возможно, имеет смысл тогда посмотреть в сторону ufunc
Uljahn: Ufuncs also have a fifth method that allows in place operations to be performed using fancy indexing.
Uljahn: https://numpy.org/doc/stable/reference/ufuncs.html
Uljahn: я с ними не связывался
gybson_samara: вооооооооооооо, мы все ближе!
gybson_samara: но не то
gybson_samara: гоню, то!
gybson_samara: Вот так надо просто написать 1/(1+np.exp(-h1,h1))
gybson_samara: хммм
gybson_samara: http://chat.codingame.com/pastebin/5f3690bc-b59e-478d-9b01-97cc640b41c1
gybson_samara: [0.75026011 0.90024951 0.96442881] [0.33287108 0.11080316 0.03688317]
Uljahn: это он экспоненту тебе посчитает только
Uljahn: пиши некрасиво, так хоть понятно
gybson_samara: если результат вычесть из 1, то получается то, что надо, с учетом округления
gybson_samara: Uljahn у меня не текст принимают, а скорость выполнения
gybson_samara: больше скорость - больше итераций
gybson_samara: сначала за копирование минус время, потом за уборку мусора
gybson_samara: при этом массивы уже в классах сидят и надо именно туда данные вносить, алиас дальше области видимости не пойдет
Uljahn: а если через a1[:] = sigmoid(z1) присваивать?
Uljahn: т.е. в уже созданный массив
inoryy: gybson_samara ты для бекпропа планируешь по новой вперед просчитывать? :)
Uljahn: это для обучения на CG что ли? :thinking:
Uljahn: или для исполнения уже обученной сетки?
gybson_samara: inoryy для дельты отдельный же вектор
jiki: https://edotor.net
jiki: http://chat.codingame.com/pastebin/94edf9ef-82a9-42c8-9804-ba23c73b0e91
jiki: https://imgur.com/a/5fZ63pM
gybson_samara: inoryy и потом какая вообще разница, если при движении вперед вход и выход связаны через константу?
gybson_samara: мы же обратьно только ошибку передаем, сами состояния нейронов уже не нужны
gybson_samara: http://chat.codingame.com/pastebin/b8a4afd1-ebc0-4d62-96f0-6cfff1591140
gybson_samara: вот кстати, из документации
Uljahn: gybson_samara: это ты binary network что ли мучаешь?
Uljahn: пипец под конец недели туго соображается :relaxed:
inoryy: gybson_samara hint: [f(g(x))]' = f'(x)*g(x)
inoryy: тьфу, f'(g(x))*g'(x)
vrabosh: если я работаю с json обьектом, какой самый быстрый инстрмент в питоне, чтобы его записывать в файл и обновлять
vrabosh: json.dump() это долго если обьект разрастется до больших обьемов
vrabosh: Если только не придумать свою реализацию.. типа записывать в конец файла изменения, а дамп делать допустим когда нагрузки нет, раз в час или когда завершаю приложение..
vrabosh: и если вдруг критическая ошибка.. то загружаю джисон, и потом прохожусь с файла по записи обьектов... за несколько секунд он возобновит все данные..
vrabosh: sql не предлагать) просто хочу с json поиграться)
vrabosh: Хотите еще одну задачку прикольную...
vrabosh: есть строка 'a.b.c.d' - я хочу схранить в ojb['a']['b']['c']['d] = 1
vrabosh: как это сделать? причем изначально obj = {}
vrabosh: pid = app.jval(f'uinf.{app.gid}.{app.vid}.pid', pid + 1)
vrabosh: красиво же получилось? если поля в дикте нет, то он создает.