如何在图表中找到派系?

时间:2012-11-10 22:23:58

标签: ruby

我正在使用Ruby和Ruby Graph Library http://rgl.rubyforge.org/

如何在图表中找到所有派系(完整的子图)?

具体来说,我正在寻找涉及两个特定顶点的5团。


我真正想要的是 - 项目欧拉Problem 60

  

素数3,7,109和673非常值得注意。通过取任何两个素数并以任何顺序连接它们,结果将始终是素数。例如,取7和109,7109和1097都是素数。这四个素数的总和,792,代表具有此属性的一组四个素数的最低和。

     

找到一组五个素数的最低和,其中任何两个素数连接以产生另一个素数。

如果十进制连接'pq'和'qp'都是素数,我的图有顶点素数,边从p到q。

1 个答案:

答案 0 :(得分:0)

  

具体来说,我正在寻找涉及两个特定顶点的5团。

假设这两个顶点是firstsecond

common = ug.adjacent_vertices(first) & ug.adjacent_vertices(second)

for triple in common.combination(3)
    a,b,c = triple
    if ug.has_edge?(a,b) && ug.has_edge?(a,c) && ug.has_edge?(b,c)
        return [first,second,a,b,c]