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庫得到了一個解決方案,它放出非常快 –