我是斯卡拉的新手,希望能够解决以下问题。斯卡拉:可变数量的数组之间的笛卡尔积
输入
我有一个Map[String, Array[Double]]
,看起来像如下:
Map(foo -> Array(12, 25, 100), bar -> Array(0.1, 0.001))
地图可以包含1和10键之间(在我的应用程序依赖于一些参数)。
处理
我想申请所有键的阵列之间的笛卡尔积并生成包含所有阵列的所有值的所有可能的组合的结构。
在上例中,笛卡尔产品将创建3x2=6
不同的组合:(12, 0.1), (12, 0.001), (25, 0.1), (25, 0.01), (100,0.1) and (100, 0.01)
。
为了另一个例子,在某些情况下我可能有三个键:第一个键有4个值的数组,第二个键有5个值的数组,第三个键有3个数值的数组,在这个产品必须产生4x5x3=60
不同的组合。
所需的输出
喜欢的东西:
Map(config1 -> (foo -> 12, bar -> 0.1), config2 -> (foo -> 12, bar -> 0.001), config3 -> (foo -> 25, bar -> 0.1), config4 -> (foo -> 25, bar -> 0.001), config5 -> (foo -> 100, bar -> 0.1), config6 -> (foo -> 100, bar -> 0.001))
你认为有什么解决办法/试过这么远? – Dima
TBH,无,任何解决方案将不胜感激 – Rami