python生成n個元素的全組合方法
利用二進(jìn)制反格雷碼(bynary reflected Gray code)的方式生成n個元素的全組合,Cn1+Cn2+...+Cnn,
如在利用窮舉方法解決背包問題時,就需要找出物品的所有組合的子集。如有物品1,2,3.我們就可以生成3個位串的格雷碼,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個元素的全組合方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python pyecharts實現(xiàn)繪制中國地圖的實例詳解
pyecharts是一個用于生成 Echarts 圖表的類庫。Echarts 是百度開源的一個數(shù)據(jù)可視化 JS 庫。用 Echarts 生成的圖可視化效果非常棒。本文將通過pyecharts繪制中國地圖,需要的可以學(xué)習(xí)一下2022-01-01
python小數(shù)字符串轉(zhuǎn)數(shù)字的五種方法
本文主要介紹了python小數(shù)字符串轉(zhuǎn)數(shù)字的五種方法,根據(jù)具體需求選擇合適的方法進(jìn)行小數(shù)字符串轉(zhuǎn)數(shù)字,具有一定的參考價值,感興趣的可以了解一下2024-01-01
pandas 相關(guān)性和正態(tài)性分析的實踐
當(dāng)我們談?wù)撜龖B(tài)性(Normality)和相關(guān)性(Correlation)時,我們實際上在嘗試?yán)斫鈹?shù)據(jù)的分布模式和不同變量之間的關(guān)系,本文就來介紹一下pandas 相關(guān)性和正態(tài)性的實踐,感興趣的可以了解一下2024-07-07
Python基于DB-API操作MySQL數(shù)據(jù)庫過程解析
這篇文章主要介紹了Python基于DB-API操作MySQL數(shù)據(jù)庫過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-04-04

