我在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 还在计算 任何人都有解决方案
任何人都有任何解决方案。为此
答案 0 :(得分:0)
import numpy
def findway(m,n,x):
table = numpy.zeros((2,x+1))
for j in range(1,x+1):
table[1][j] = 1
for j in range(1,x+1):
for k in range(1,j):
table[1,j] += table[1][j-k]
print table[1][x]
n=input('Enter a number')
findway(6,1,n)
但是这里也有一个问题,我想要输出600,但它显示格式输出(2.07475778444e + 180) 但我想以整数格式