2014-01-21 30 views
0

我玩弄了大量的vars多种组合,我很好奇,如果ruby实现了一种方法来生成这些列表给定长度和变量列表,与mathematica处理相同的方式元组。ruby​​-mathematica样式元组列表

鉴于长度3和变量a,b和c它会输出一个阵列或多个阵列与A,B,C的每一种组合,3长

ABC ACB BAC BCA 驾驶室 CBA

通常这只会是容易做到的,除了在长度与列表10-15个与10 IM左右瓦尔

+0

请您澄清一下(用编辑而不是评论)您的意思是“用10个左右的变量列出10-15个长度”。在你的例子中,如果长度是4而不是3,具有相同的3个变量,那么其中一个排列是“abac”吗?请注意,Ruby的'permutations'和'combinations'会在内存中生成整个数组。如果这是一个问题,那么有办法一次遍历一个排列。 –

回答

5

你可以使用permutations法阵:

letters = ['a', 'b', 'c'] 
p letters.permutation(3).map(&:join) 
#=> ["abc", "acb", "bac", "bca", "cab", "cba"] 
+0

杰出的和完美的,谢谢贾斯汀! –