我試圖找到使用位操作設置的權力。我可以生成所有設置,但它們不可索引。我無法將它保存爲列表清單。我試圖通過互聯網找到解決方案,但無法獲得相關信息。Python:找到功率設置,而不使用像itertools等任何內置函數
這是我使用的代碼。
n = int(input()) # Size of the array
noteValue = [] # Array whose power set is to be found
for i in range(n):
noteValue.append(int(input()))
powerSet = []
for i in range(1<<n):
for j in range(n):
if (i & (1<<j) > 0):
powerSet.append(noteValue[j])
print(powerSet)
輸出:
[1, 2, 1, 2, 3, 1, 3, 2, 3, 1, 2, 3]
所需的輸出:
[[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]
我無法理解什麼是(I&(1 < 0)檢查。你能解釋一下嗎? –
@TirthRami @和<<是按位運算符。 (1 << J)實質上是指(1 *(2^j))。完整的表達式是檢查哪個位被設置(== 1)。有關此問題的完整參考,請訪問[powerSet](https://www.geeksforgeeks.org/power-set/) – Khurshid