0
我写了一个python程序找到系列的组合打印输出python程序基于间隔和组合
有一个骰子有6个面孔。
用户输入2
则显示的出来是因为没有计数,其中两个是来在组合
当然,如果我们抛出拿到2的总和最大的两个骰子投掷需要骰子
(1+1) and (2) so count is 2
如果我抛出的3总之,出卖出期权
(1+1+1),(1+2),(2+1),(3) so count is 4 enter code here
,如果我抛出的4总和则放出来是
(1+1+1+1),(1+1+2),(1+2+1),(2+1+1),(2+2),(3+1),(1+3),(4) count is 8
我写的代码是
# I am considering the Board is horizontal single line
def count_values(values,num):
for i in range(num):
print(values[i]," ",end='')
print('')
def print_list(out_put,values,num,count=0,show=False):
dice=6
if num == 0:
count_values(values,count)
out_put[0] += 1
elif num > 0:
for k in range(1,dice+1):
values[count] = k
print_list(out_put,values,num-k, count+1,show)
n=int(input('Enter A number'))
values=[0]*n
out_put=[0]
print_list(out_put,values,n)
print(out_put)
它显示出来放了小投入喜欢10,20,30 但 我想输出为100和500和610样输入, 但是获得更多时间(约5-6小时仍在运行)并且组合计数大于1145201564 还算 任何一个都有这个解决方案
任何人都有任何解决方案。此
它看起来像你正在统计[分区](https://en.wikipedia.org/wiki/Partition_(number_theory))。如果您还需要生成它们,请参阅[此问题](https://stackoverflow.com/questions/400794/generating-the-partitions-of-a-number) –
谢谢您的建议。但我通过使用numpy库得到了一个解决方案,它放出非常快 –