打印从列表的y元素中选择的x不同对象的所有组合
-
29-09-2019 - |
题
例如,52张扑克手中的5张卡= 2598960组合。
我如何实际显示所有这些组合?
查找数字的代码很容易:
def binomial_coef(total,subset)
factorial(total) / (factorial(subset) * factorial(total - subset))
end
def factorial(n)
n.downto(1).inject(:*)
end
# different 5 card poker hand combinations
cards = 52
hand_number = 5
puts binomial_coef(cards, hand_number)
关于打印所有实际组合的解决方案的想法吗?
例如:
1,2,3,4,5
1,2,3,4,6
等等
甚至有助于开始。谢谢!
解决方案
cards = (1..52).to_a
hand_number = 5
cards.combination(hand_number).to_a
=> [[1,2,3,4,5],[1,2,3,4,6],...]
其他提示
(1..52).to_a.combination(5)
puts (1..52).to_a.combination(5).to_a.inspect
不隶属于 StackOverflow