重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
本篇文章為大家展示了使用python怎么輸出一個(gè)序列的所有子序列,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
如下所示:
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
移位運(yùn)算符 << 的優(yōu)先級(jí)大于賦值 =
用01二進(jìn)制串決定數(shù)組中的每個(gè)數(shù)字是否輸出
[]=000;[1]=100;[2]=010;[3]=001;[1,2]=110;[1,2,3]=111…
如何實(shí)現(xiàn)?
第一個(gè)循環(huán)實(shí)現(xiàn)的是01串的遍歷,eg.由000到111
第二個(gè)循環(huán)實(shí)現(xiàn)的是數(shù)組的遍歷,eg.將000與數(shù)組中的每一位數(shù)字做判斷
在if語(yǔ)句中,用到了向右移位,由于二進(jìn)制串是對(duì)稱的,所以我們可以將01串從后向前與數(shù)組中的每一位數(shù)字做判斷。
eg.001與100對(duì)稱,110與011對(duì)稱…
在001中,最后一位是1,說(shuō)明數(shù)組中3需要輸出
但是在我們遍歷數(shù)組的時(shí)候,先遇到的是1與arr[0],不過(guò)由于對(duì)稱性,這種情況其實(shí)與在100中,后遇到的是1與arr[2]
上述內(nèi)容就是使用python怎么輸出一個(gè)序列的所有子序列,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。