我正在制作一个问题清单。有3个问题,每个问题有4个答案。我试图计算哪些组合是可能的。
应该有4x4x4(= 64)种可能的组合。我期待像这样的数组[1,1,1](用户用第一个答案回答所有3个问题)。
我看到ruby有一个很好的permatation方法,但它不是永久性的。组合方法只需要一个帐户1个数组。
总之,我有3个数组,每个都有[1,2,3,4],我喜欢每个组合的64个数组
答案 0 :(得分:5)
答案 1 :(得分:1)
如果所有问题的答案数相同,您可以使用针对问题数量提出的答案数来计算可能组合的数量。红宝石的代码是:
answer_count = 4
question_count = 3
combinations = answer_count**question_count
如果每个问题的答案数量不同,您可以对它们进行计数,然后将它们相乘以获得答案(就像您在问题中所做的那样)。例如,如果你有3个问题,第一个有4个答案,第二个有5个答案,第三个有3个答案,你可以这样做:
answer_counts = [4, 5, 3]
answer_counts.inject(1) {|product, answers| product * answers}