python生成n個元素的全組合方法
更新時間:2018年11月13日 11:29:48 作者:那時的風兒
今天小編就為大家分享一篇python生成n個元素的全組合方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
利用二進制反格雷碼(bynary reflected Gray code)的方式生成n個元素的全組合,Cn1+Cn2+...+Cnn,
如在利用窮舉方法解決背包問題時,就需要找出物品的所有組合的子集。如有物品1,2,3.我們就可以生成3個位串的格雷碼,0表示不選擇該物品,1表示選擇該物品。
算法如下所示:
import copy def brgd(n): ''' 遞歸生成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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python pyecharts實現(xiàn)繪制中國地圖的實例詳解
pyecharts是一個用于生成 Echarts 圖表的類庫。Echarts 是百度開源的一個數(shù)據(jù)可視化 JS 庫。用 Echarts 生成的圖可視化效果非常棒。本文將通過pyecharts繪制中國地圖,需要的可以學習一下2022-01-01python小數(shù)字符串轉(zhuǎn)數(shù)字的五種方法
本文主要介紹了python小數(shù)字符串轉(zhuǎn)數(shù)字的五種方法,根據(jù)具體需求選擇合適的方法進行小數(shù)字符串轉(zhuǎn)數(shù)字,具有一定的參考價值,感興趣的可以了解一下2024-01-01Python基于DB-API操作MySQL數(shù)據(jù)庫過程解析
這篇文章主要介紹了Python基于DB-API操作MySQL數(shù)據(jù)庫過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-04-04