国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

算法 - python 給定一個正整數a和一個包含任意個正整數的 列表 b,求所有<=a 的加法組合

瀏覽:114日期:2022-08-19 08:44:47

問題描述

例如,10,[1,2,3]

輸出類似:1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 12 + 2 + 2 +2 + 23 + 3 + 3 + 23 + 2 + 2 + 2 + 1

注意:是小于等于,list 內的正整數有可能并不能正好等于 a.

問題解答

回答1:

通過itertools.combinations_with_replacement我們寫短一點的代碼:

def solve2(lst, bound): max_length = bound // min(lst) for n in range(1, max_length+1):for c in itertools.combinations_with_replacement(lst,n): if sum(c) <= bound:print(’+’.join(map(str, c))) solve2([1,2,3], 10)回答2:

假設該問題符合下列假設:

列表內元素可重複使用

只要是能滿足小於等於上限值的組合都可接受, 就算遠小於上限值甚至是零也可以

以下是暴力法:

# code for python3from itertools import combinationsdef solve(lst, upperbound): candidates = [] for n in lst:for count in range(upperbound//n): candidates.append(n) allcomb = set() for l in range(1, len(candidates)+1):for comb in combinations(candidates, l): if not comb in allcomb:allcomb.add(comb)if sum(comb) <= upperbound: print(’+’.join([str(n)for n in comb]))solve([1,2,3], 10)

我回答過的問題: Python-QA

標簽: Python 編程
主站蜘蛛池模板: 成人国产精品免费视频不卡 | 国产一区二区三区免费在线观看 | 国产精品视频免费观看调教网 | 免费一级a毛片在线播放 | 国产成人啪精品视频免费网 | 中字毛片| 麻豆一级片 | 国产亚洲欧美另类久久久 | 99综合在线 | 一级毛片不卡免费看老司机 | 国产综合亚洲专区在线 | 亚洲第一黄色网 | 日韩视频在线观看一区二区 | 久久国产欧美另类久久久 | 成人午夜性视频欧美成人 | 牛人盗摄一区二区三区视频 | 一区二区三区免费在线视频 | 天堂8资源在线官网资源 | 亚洲综合久 | 亚洲欧美日韩精品香蕉 | 国产17部性孕妇孕交在线 | 久草视频资源 | 国产成人十八黄网片 | youjizzxxxx18欧美| 一级日韩 | 国产成人精品亚洲一区 | 扒开双腿猛进入喷水免费视频 | 操操综合| 国产a一级毛片含羞草传媒 国产a自拍 | 久久精品在现线观看免费15 | 国产思思| 国产中文字幕视频在线观看 | 久久久日韩精品国产成人 | 一区二区三区影视 | 成人午夜视频一区二区国语 | 日韩专区亚洲国产精品 | 国产91精选在线观看网站 | 国产伦精品一区二区三区 | 免费ab| 国产系列在线播放 | 在线观看国产精品一区 |