繁体   English   中英

从带有红宝石数字的数组生成图形路径

[英]Generating graph path from an array with numbers in ruby

我有一个有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]]

我通过搜索Euler路径,但用其他编程语言编写,已经在许多方面看到了解决这个问题的方法。 我将如何在Ruby中继续它?

目前还不清楚目标是什么。

我猜你正在尝试获得一个包含随机数的数组,其中任何给定数组的第二个数等于下一个数组的第一个数。

如果是这种情况,那么你可以使用each_cons轻松实现这一点, each_cons是“每个连续”的缩写,并且接受n的参数(即项目数)。

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]]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM