サイファーでこれをどのように行うことができますか?
n個の親p1、p2、p3 .... pnとm個の子c1、c2、c3...cmがあります。
c1がp1、p2、およびp3(の子)から派生し、c2がp1 、p2、およびp3 (の子)から派生しているとします。c1が
与えられた場合、 c2を見つけることができますか?(c1と同じ親から派生したノード)
子は1...n個の親を持つことができます。
1390 次
1 に答える
8
私は実際に数週間前にここで非常によく似た質問をしました、そして私が得た答えはほんの少しの調整であなたのためにも働くでしょう。
START c1=node(*), c2=node(*)
MATCH c1-[:ChildOf]->parent<-[:ChildOf]-c2
WITH c1, c2, count(parent) AS parentsFound
WHERE length(c1-[:ChildOf]->()) = parentsFound
AND length(c2-[:ChildOf]->()) = parentsFound
AND c1 <> c2
RETURN c1, c2
注:おそらく、を使用するよりも、を選択する方が良い方法がありc1
ます。c2
node(*)
このクエリのロジックは1行ずつ:
- すべての子供から始め
c1
てc2
、 - と
parent
によって共有されているすべてのを検索するc1
c2
parent
見つかった共有の数を数える- 見つかったsの数がを持っているsの
parent
総数と一致することを確認してください。parent
c1
- 見つかったsの数がを持っているsの
parent
総数と一致することを確認してください。parent
c2
- (オプション)ノードを自分自身と比較することを気にしないでください
- 結果を返します!
于 2013-03-15T19:33:30.833 に答える