ruby - 笛卡尔幂(具有自任意次的笛卡尔积)

标签 ruby cartesian-product

我的代码需要多次计算数组与其自身的笛卡尔积。例如,如果我的数组是 [1,2] 并且我需要将这些值填充到三个槽中,则结果将是:

[1,1,1]
[1,1,2]
[1,2,1]
[1,2,2]
[2,1,1]
[2,1,2]
[2,2,1]
[2,2,2]

最简单的方法是什么?

最佳答案

幸运的是,您可能正在从标准库中寻找重复排列和 Ruby 的 Array implements this :

[1,2].repeated_permutation(3).to_a
# [[1, 1, 1], [1, 1, 2], [1, 2, 1], [1, 2, 2], [2, 1, 1], [2, 1, 2], [2, 2, 1], [2, 2, 2]]

关于ruby - 笛卡尔幂(具有自任意次的笛卡尔积),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21347083/

相关文章:

ruby-on-rails - 查找字符串中的确切单词

loops - 如何在 lisp 中生成一个笛卡尔积?

ruby-on-rails - rails 上的 ruby : Paperclip & Ruby Mp3Info

ruby - Enumerable#find_all 异常 Ruby

ruby-on-rails - 在 Ruby 中的两个字符之间提取子链接

sql - 混合隐式和显式 JOIN

C#高级排列场景

ruby-on-rails - 错误 : Error installing pg: ERROR: Failed to build gem native extension

c++ - 如何使用 C++ Cuda 高效地实现并行笛卡尔积

java - Java 8 中流的笛卡尔积作为流(仅使用流)