Я новичок в Cypher и Neo4j, но я нахожу это действительно интересным и пытаюсь использовать его для решения математической задачи, которая у меня есть. Чтобы облегчить иллюстрацию проблемы, я уменьшил ее и надеюсь, что вы поможете мне найти правильные логики c.
Математическая задача: учитывая набор плиток, как многими способами вы можете выбрать 3 плитки, с суммой, меньшей x?
В моем примере, давайте просто скажем, что у меня есть 5 плиток (100, 100, 80, 80, 50), и это Я должен включить по крайней мере одну 100-плитку, и это x равно 270.
Поскольку порядок не имеет значения, я думаю о проблеме так, что я начинаю с самого высокого nr, а затем с можно выбрать go либо для того же номера снова, либо для следующего меньшего числа, либо для второго меньшего числа. Это означало бы, что начиная с 100, я мог бы выбрать либо 100, либо 80 (следующий нижний), либо 50 (второй нижний).
Пока что я могу определить путь, начинающийся с 100 и идущий на 2 шага дальше к m:
MATCH path = (n:Node {value:100})-[:CONNECTED*2]-(m)
ВОПРОС: Как найти все пути с указанной c суммой node.value? Поскольку порядок не имеет значения, меня интересуют только уникальные односторонние пути. (Имеется в виду, например, что если я получу один путь как 100-80-50, то меня не интересует путь 50-80-100, так как он содержит точно такие же плитки, только в другом порядке).
Спасибо !