Tag: 笛卡尔产品

笛卡尔幂(自相矛盾的笛卡尔积)

我需要在我的代码中计算一个数组的笛卡尔积,其自身的次数不同。 例如,如果我的数组是[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] 最简单的方法是什么?

数组哈希的所有组合

摘要 给定Hash,其中一些值是数组,如何获得所有可能组合的哈希数组? 测试用例 options = { a:[1,2], b:[3,4], c:5 } p options.self_product #=> [{:a=>1, :b=>3, :c=>5}, #=> {:a=>1, :b=>4, :c=>5}, #=> {:a=>2, :b=>3, :c=>5}, #=> {:a=>2, :b=>4, :c=>5}] 当特定键的值不是数组时,它应该只是按原样包含在每个生成的哈希中,就像它包装在数组中一样。 动机 我需要为不同的选项生成给定各种值的测试数据。 虽然我可以使用[1,2].product([3,4],[5])来获取所有可能值的笛卡尔积,但我宁愿使用散列来标记我的输入和输出,以便代码比仅使用数组索引更容易解释。