我有一个包含12个节点的无向图。在这种方法中:
def generate_paths
arr = []
(1..10).each { arr << [rand(12)].product([rand(12)]) }
arr
end
我生成一个这样的数组:arr = [[3, 12], [8, 12], [0, 3], [0, 5], [0, 10], [7, 9], [5, 5], [4, 9], [5, 12], [0, 1]]
表示图形边缘。
我想在图表中找到最长的路径,例如每条边最多使用一次。对于给定的示例,它将类似于:arr = [[1, 0], [0, 5], [5, 5], [5, 12], [12, 3], [3, 0], [0, 10]]
通过搜索欧拉路径但用其他编程语言编写,我已经在许多方面看到了解决这个问题的方法。我将如何在Ruby中继续它?
答案 0 :(得分:2)
目前还不清楚目标是什么。
我猜你正在尝试获取包含随机数的数组数组,其中任何给定数组的第二个数等于下一个数组的第一个数。
如果是这种情况,那么您可以使用each_cons
轻松实现这一目标,n
是&#34;每个连续&#34;的缩写。并采用random_numbers = 8.times.map { rand(12) }
# => [1, 0, 5, 5, 12, 3, 0, 10]
random_numbers.each_cons(2).to_a
# => [[1, 0], [0, 5], [5, 5], [5, 12], [12, 3], [3, 0], [0, 10]]
的参数(即项目数)。
{{1}}