Информация об изменениях

Сообщение Re[3]: Перевод понимания из интуиции в логику от 22.11.2020 15:52

Изменено 22.11.2020 15:53 xma

Re[3]: Перевод понимания из интуиции в логику
Здравствуйте, Khimik, Вы писали:

K>Дело в том что я упростил задачу — предложил определять вообще любые циклы. Такого вещества с 14-членным циклом конечно не существует, а вообще ароматические циклы могут быть разных размеров, например в азулене есть два смежных цикла из 5 и 7 атомов.


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

1) отбраковываем все атомы имеющие не более одной связи, а также направления из других атомов — которые к ним (одиночным атомам) ведут

2) проходим по каждому оставшемуся атому в массиве,

2.1) находим для текущего атома — все циклы в которые он входит, сохраняя для каждого атома (этих циклов) — полный список всех индексов входящих в них атомов

3) по новой проходим по атомам в массиве (исключая атомы из п.1.),

3.1) и проверяем количество и совпадение номеров атомов (в любом порядке) для полученных циклов из п.2.1 — и когда если эти данные совпадают, то сохраняем эти данные (каждый раз — с новым нормальным индексом цикла, а старые данные удаляем)

вуаля !!

п.2.1.1) находить циклы при этом придётся отсечением тех многоугольников (возможно и невыпуклых) где внутри есть другие атомы, по координатам .. (другого решения сходу не видать — разве что нейросети смогли бы как то обобщить решение/поиск , но по мне так — это не особо и надёжно)

на самом деле — на словах мне кажется понять тоже не просто, но если человек — не понимает ни на словах ни на C/C++, то сложно представить как ему это вообще объяснять можно ..

дискасс ?
Re[3]: Перевод понимания из интуиции в логику
Здравствуйте, Khimik, Вы писали:

K>Дело в том что я упростил задачу — предложил определять вообще любые циклы. Такого вещества с 14-членным циклом конечно не существует, а вообще ароматические циклы могут быть разных размеров, например в азулене есть два смежных цикла из 5 и 7 атомов.


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

1) отбраковываем все атомы имеющие не более одной связи, а также направления из других атомов — которые к ним (одиночным атомам) ведут

2) проходим по каждому оставшемуся атому в массиве,

2.1) находим для текущего атома — все циклы в которые он входит, сохраняя для каждого атома (этих циклов) — полный список всех индексов входящих в них индексов (/номеров) атомов

3) по новой проходим по атомам в массиве (исключая атомы из п.1.),

3.1) и проверяем количество и совпадение номеров атомов (в любом порядке) для полученных циклов из п.2.1 — и когда если эти данные совпадают, то сохраняем эти данные (каждый раз — с новым нормальным индексом цикла, а старые данные удаляем)

вуаля !!

п.2.1.1) находить циклы при этом придётся отсечением тех многоугольников (возможно и невыпуклых) где внутри есть другие атомы, по координатам .. (другого решения сходу не видать — разве что нейросети смогли бы как то обобщить решение/поиск , но по мне так — это не особо и надёжно)

на самом деле — на словах мне кажется понять тоже не просто, но если человек — не понимает ни на словах ни на C/C++, то сложно представить как ему это вообще объяснять можно ..

дискасс ?