ruby - 我如何使用 ruby​​ 生成数字组合?

标签 ruby math combinations

我需要使用 ruby​​ 生成数字组合。 例如:

arr = [1,2,3,4,5]

约束条件是,组合数字应包含数字5,长度至少为3或以上。 (即 125、521、1245 等。)。以上数组元素(取值1~5)在组合数中可能出现一次或两次或多次。

最佳答案

试试这个:

arr = [1, 2, 3, 4, 5]
arr = arr * 5
out = []
3.upto(5) do |i|
  arr.combination(i) do |c|
    out << c if c.include? 5
  end
end
out = out.uniq.sort
puts out.inspect

# yields 2531 elements:
# [[1, 1, 1, 1, 5], [1, 1, 1, 2, 5], ... [2, 3, 5], ... [5, 5, 5, 5, 5]]

关于ruby - 我如何使用 ruby​​ 生成数字组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6502672/

相关文章:

php - 查找没有共同元素的组合

python-3.x - 使用 "maximum diversity"高效绘制组合

ruby - 如何将字符串传递给函数而不是 ref (Ruby)

ruby-on-rails - 如何遍历匹配正则表达式的数组元素?

Ruby Sequel : Array returned by query is being returned as a String object, 不是数组对象

python - 如何计算每个帖子的 xyz 位置和时间差的多边定位?

javascript - JavaScript 中的简单数据验证和数学运算

ruby-on-rails - Ruby stdlib 和 Rails stdlib 中的日期类不同

python - 获取从字节到 gb python 的百分比

c - 生成具有重复的集合元素的 k 组合的算法?