亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:148日期: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 內(nèi)的正整數(shù)有可能并不能正好等于 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:

假設(shè)該問題符合下列假設(shè):

列表內(nèi)元素可重複使用

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

以下是暴力法:

# 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

標(biāo)簽: Python 編程
主站蜘蛛池模板: 国产日产久久高清欧美一区 | 99在线免费观看视频 | 国产亚洲精品影达达兔 | 中文字幕精品在线 | 久久有精品| 国产精品成人一区二区 | 广东毛片| 亚洲国产综合人成综合网站00 | 欧美一级性视频 | 日本68xxxxxxxxx老师 | 亚洲成a人v在线观看 | 亚洲国产精品大秀在线播放 | free性欧美hd另类精品 | 99久久免费精品国产免费高清 | 在线观看片成人免费视频 | 最近韩国日本免费免费版 | 久久亚洲人成国产精品 | 久久99国产精品亚洲 | 久久免费视频网站 | 国产激情一区二区三区在线观看 | 天天鲁天天爱天天鲁天天 | 手机看片日韩日韩国产在线看 | 女人张开双腿让男人桶完整 | 曰韩美女一级视频 | 亚洲国产字幕 | 国产精品系列在线 | 成人影院欧美大片免费看 | 久久亚洲国产精品 | 久久精品福利视频在线观看 | 全免费a级毛片免费毛视频 全午夜免费一级毛片 | 亚洲成人福利网站 | 99久久国产| 免费观看a视频 | 久久精品综合免费观看 | 日本一区二区高清免费不卡 | 国产亚洲精品美女一区二区 | 久久经典免费视频 | 久久精品国产亚洲网站 | 亚洲欧美日韩精品久久亚洲区色播 | 曰韩毛片 | 黄色美女视频免费看 |