python生成n個(gè)元素的全組合方法
利用二進(jìn)制反格雷碼(bynary reflected Gray code)的方式生成n個(gè)元素的全組合,Cn1+Cn2+...+Cnn,
如在利用窮舉方法解決背包問(wèn)題時(shí),就需要找出物品的所有組合的子集。如有物品1,2,3.我們就可以生成3個(gè)位串的格雷碼,0表示不選擇該物品,1表示選擇該物品。
算法如下所示:
import copy def brgd(n): ''' 遞歸生成n位的二進(jìn)制反格雷碼 :param n: :return: ''' if n==1: return ["0","1"] L1 = brgd(n-1) L2 = copy.deepcopy(L1) L2.reverse() L1 = ["0" + l for l in L1] L2 = ["1" + l for l in L2] L = L1 + L2 return L
以上這篇python生成n個(gè)元素的全組合方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python:pycharm中虛擬環(huán)境venv的使用及說(shuō)明
文章介紹了虛擬環(huán)境的必要性和實(shí)踐方法,虛擬環(huán)境可以幫助用戶管理不同項(xiàng)目所需的Python版本和第三方模塊,避免版本沖突和模塊沖突,文章詳細(xì)介紹了如何使用Python自帶的`venv`模塊創(chuàng)建和管理虛擬環(huán)境,并通過(guò)命令行和PyCharm兩種方式構(gòu)建虛擬環(huán)境2025-01-01
淺談numpy.where() 的用法和np.argsort()的用法說(shuō)明
這篇文章主要介紹了淺談numpy.where() 的用法和np.argsort()的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05
python入門基礎(chǔ)之用戶輸入與模塊初認(rèn)識(shí)
Python的強(qiáng)大之處在于他有非常豐富和強(qiáng)大的標(biāo)準(zhǔn)庫(kù)和第三方庫(kù),幾乎你想實(shí)現(xiàn)的任何功能都有相應(yīng)的Python庫(kù)支持。下面通過(guò)本文給大家介紹python入門基礎(chǔ)之用戶輸入與模塊初認(rèn)識(shí),一起看看吧2016-11-11
PyTorch之torch.matmul函數(shù)的使用及說(shuō)明
PyTorch的torch.matmul是一個(gè)強(qiáng)大的矩陣乘法函數(shù),支持不同維度張量的乘法運(yùn)算,包括廣播機(jī)制。提供了矩陣乘法的語(yǔ)法,參數(shù)說(shuō)明,以及使用示例,幫助理解其應(yīng)用方式和乘法規(guī)則2024-09-09
小議Python中自定義函數(shù)的可變參數(shù)的使用及注意點(diǎn)
Python函數(shù)的默認(rèn)值參數(shù)只會(huì)在函數(shù)定義處被解析一次,以后再使用時(shí)這個(gè)默認(rèn)值還是一樣,這在與可變參數(shù)共同使用時(shí)便會(huì)產(chǎn)生困惑,下面就來(lái)小議Python中自定義函數(shù)的可變參數(shù)的使用及注意點(diǎn)2016-06-06
Pandas之ReIndex重新索引的實(shí)現(xiàn)
這篇文章主要介紹了Pandas之ReIndex重新索引的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06
python線程池 ThreadPoolExecutor 的用法示例
這篇文章主要介紹了python線程池 ThreadPoolExecutor 的用法示例,幫助大家更好得理解和使用python線程池,感興趣的朋友可以了解下2020-10-10

