使用python怎么輸出一個序列的所有子序列-創(chuàng)新互聯(lián)

本篇文章為大家展示了使用python怎么輸出一個序列的所有子序列,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

十多年專注成都網(wǎng)站制作,成都企業(yè)網(wǎng)站定制,個人網(wǎng)站制作服務,為大家分享網(wǎng)站制作知識、方案,網(wǎng)站設計流程、步驟,成功服務上千家企業(yè)。為您提供網(wǎng)站建設,網(wǎng)站制作,網(wǎng)頁設計及定制高端網(wǎng)站建設服務,專注于成都企業(yè)網(wǎng)站定制,高端網(wǎng)頁制作,對木托盤等多個方面,擁有多年的網(wǎng)站推廣經(jīng)驗。

如下所示:

def sub(arr):
 finish=[]
 size = len(arr)
 end = 1 << size #end=2**size
 for index in range(end): # shift index
  array = []
  for j in range(size):
   # 00,01,10,11 is symmetrical
   if (index >> j) % 2: # this result is 1, so do not have to write ==
    array.append(arr[j])
  # print(array)
  finish.append(array)
 return finish

使用python怎么輸出一個序列的所有子序列

移位運算符 << 的優(yōu)先級大于賦值 =

用01二進制串決定數(shù)組中的每個數(shù)字是否輸出

[]=000;[1]=100;[2]=010;[3]=001;[1,2]=110;[1,2,3]=111…

如何實現(xiàn)?

第一個循環(huán)實現(xiàn)的是01串的遍歷,eg.由000到111

第二個循環(huán)實現(xiàn)的是數(shù)組的遍歷,eg.將000與數(shù)組中的每一位數(shù)字做判斷

在if語句中,用到了向右移位,由于二進制串是對稱的,所以我們可以將01串從后向前與數(shù)組中的每一位數(shù)字做判斷。

eg.001與100對稱,110與011對稱…

在001中,最后一位是1,說明數(shù)組中3需要輸出

但是在我們遍歷數(shù)組的時候,先遇到的是1與arr[0],不過由于對稱性,這種情況其實與在100中,后遇到的是1與arr[2]

上述內(nèi)容就是使用python怎么輸出一個序列的所有子序列,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司行業(yè)資訊頻道。

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

網(wǎng)站題目:使用python怎么輸出一個序列的所有子序列-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://muchs.cn/article18/ejsgp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供標簽優(yōu)化、網(wǎng)站設計公司、網(wǎng)站制作建站公司、服務器托管、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)