Size: a a a

Programming Offtop

2020 April 21

ML

Mikhail Levchenko in Programming Offtop
ну типа любовный треугольник
источник

AN

Alexander Nozik in Programming Offtop
Mikhail Levchenko
забыл дописать C -> A
тогда да, но модификация решает
источник

AN

Alexander Nozik in Programming Offtop
Плюс в том, что алгоритм полностью параллельный. Есть некоторое дублирование, но оно скорее всего будет дешевле, чем синхронизация
источник

ML

Mikhail Levchenko in Programming Offtop
Alexander Nozik
Ну тогда так, берем все листья, делаем для них то, что я сказал, запоминаем обойденные ноды. Потом берем оставшиеся ноды и делаем с ними то же самое. Если нод много, то можно сэкономить и при следующей итерации не пересчитывать промежуточные ноды, если они уже посчитаны на предыдущей.
Если какие то ноды остались не посещёнными, то это же вроде уже не дерево
источник

AN

Alexander Nozik in Programming Offtop
Mikhail Levchenko
Если какие то ноды остались не посещёнными, то это же вроде уже не дерево
А кстати да
источник

AN

Alexander Nozik in Programming Offtop
И надо еще проверить, что конечная точка у всех одинаковая
источник

ML

Mikhail Levchenko in Programming Offtop
кстати, а если у ноды несколько предков, это дерево или уже нет?
источник

ML

Mikhail Levchenko in Programming Offtop
вродь цикла нет, под определение подходит
источник

AN

Alexander Nozik in Programming Offtop
Mikhail Levchenko
кстати, а если у ноды несколько предков, это дерево или уже нет?
У дерева вроде может быть только один предок
источник

AN

Alexander Nozik in Programming Offtop
Направленный ациклический граф - там может быть несколько предков, но у дерева, если не ошибаюсь, более сильные ограничения
источник

ML

Mikhail Levchenko in Programming Offtop
ацикличность — отсутствие циклов и то, что между парами вершин имеется только по одному пути.
источник

ML

Mikhail Levchenko in Programming Offtop
т.е. всё таки один предок
источник

AN

Alexander Nozik in Programming Offtop
Mikhail Levchenko
ацикличность — отсутствие циклов и то, что между парами вершин имеется только по одному пути.
А, ну тогда гарантированно один предок
источник

ML

Mikhail Levchenko in Programming Offtop
отлично. тогда всё просто:
идём от каждого листа к корню:
- если встречаем ноды, которые уже видели на своём пути – мы прошли по циклу – это не дерево
- если оказались в разных корнях – это не дерево
- если встретили ноду с более чем одним предком – это не дерево
- если мы обошли не все ноды – это не дерево

иначе это дерево
источник

AN

Alexander Nozik in Programming Offtop
Mikhail Levchenko
отлично. тогда всё просто:
идём от каждого листа к корню:
- если встречаем ноды, которые уже видели на своём пути – мы прошли по циклу – это не дерево
- если оказались в разных корнях – это не дерево
- если встретили ноду с более чем одним предком – это не дерево
- если мы обошли не все ноды – это не дерево

иначе это дерево
Ага. Дублирование  можно уменьшить путем исключения посещенных нод в следующем заходе.
источник

АО

Алексей Овсянников... in Programming Offtop
я чёт вот подумал... а для юнити (этот) на KotlinJS пишут?
источник

ML

Mikhail Levchenko in Programming Offtop
там же не совсем js
источник

ML

Mikhail Levchenko in Programming Offtop
а какой то их свой script
источник

АО

Алексей Овсянников... in Programming Offtop
а, не знал
источник

AL

Alexander Levin in Programming Offtop
Ну и судя по всему UnityScript они уже не поддерживают некоторое время.
источник