您好我有25个不同的选择,需要从中选择5个选项。
对于所有可能的组合,我认为它计算为
combinations(range(25), 5)
但我有限制要求选择保留在某些位置
第1位可用选秀权
[0, 1, 2, 3, 4]
第2位可用选秀权
[5, 6, 7, 8, 9]
等
我想知道有多少组合可用,确保考虑到0 - 4只能在位置1中使用,而5-9只能在位置2中使用,
我几乎没有统计经验,只是想知道这种类型的抽样是什么?
谢谢
答案 0 :(得分:1)
也许我不理解你的问题,但是它不仅仅是5 5 ?那就是:<number-of-avalailable-picks-for-each-position> ^ <number-of-positions>
。
对于位置1,您有5种可能的选择,对于每种选择,您对位置2有5种选择,对于这25种选择中的每一种,您有5种选择位置3等。
现在,如果每个位置的可能选择具有不同的大小,则选择的数量是选择列表大小的乘积。翻译成Python:
choicesLists = [
[0, 1, 2, 3, 4, 5, 6, 7],
[24, 23, 22, 21, 20, 19, 18, 17, 16, 15],
[8, 14],
[9, 13],
[10, 11, 12]
]
nbChoices = reduce(lambda x,y: x*len(y), choicesLists)
如果你想使用itertools获得整个选择列表,你可以按照Dan D的建议使用product
:
combinations = product(*choicesList)
答案 1 :(得分:1)
结果为5**5
因为,对于第一个位置,您可以选择 5 C 1 = 5 way。
所以你可以做到第二名。至于第一和第二位置,您可以选择
5 * 5方式。
因此对于5个位置,答案将是5 5 或5**5
。