Python Bit vollständige Suche

Methode 1

>>> from itertools import product
>>> n = 3
>>> [[i for i, j in zip(range(n), mask) if j] for mask in product((0, 1), repeat=n)]
[[], [2], [1], [1, 2], [0], [0, 2], [0, 1], [0, 1, 2]]

>>> n = 5
>>> [[i for i, j in zip(range(n), mask) if j] for mask in product((0, 1), repeat=n)]
[[], [4], [3], [3, 4], [2], [2, 4], [2, 3], [2, 3, 4], [1], [1, 4], [1, 3], [1, 3, 4], [1, 2], [1, 2, 4], [1, 2, 3], [1, 2, 3, 4], [0], [0, 4], [0, 3], [0, 3, 4], [0, 2], [0, 2, 4], [0, 2, 3], [0, 2, 3, 4], [0, 1], [0, 1, 4], [0, 1, 3], [0, 1, 3, 4], [0, 1, 2], [0, 1, 2, 4], [0, 1, 2, 3], [0, 1, 2, 3, 4]]

Methode 2

>>> n = 3
>>> [[i for i in range(bit) if bit & (1<<i)] for bit in range(1<<n)]
[[], [0], [1], [0, 1], [2], [0, 2], [1, 2], [0, 1, 2]]

>>> n = 5
>>> [[i for i in range(bit) if bit & (1<<i)] for bit in range(1<<n)]
[[], [0], [1], [0, 1], [2], [0, 2], [1, 2], [0, 1, 2], [3], [0, 3], [1, 3], [0, 1, 3], [2, 3], [0, 2, 3], [1, 2, 3], [0, 1, 2, 3], [4], [0, 4], [1, 4], [0, 1, 4], [2, 4], [0, 2, 4], [1, 2, 4], [0, 1, 2, 4], [3, 4], [0, 3, 4], [1, 3, 4], [0, 1, 3, 4], [2, 3, 4], [0, 2, 3, 4], [1, 2, 3, 4], [0, 1, 2, 3, 4]]

case: cpp

#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)

int main() {
  int N = 3;

  map<int, vector<int>> mp;
  rep(bit, (1 << N)) rep(i, bit) if (bit & (1 << i)) mp[bit].push_back(i);

  for (auto x : mp) {
    cout << x.first << " : ";
    for (int n : x.second) cout << n << ' ';
    cout << endl;
  }
}

output



1 : 0 
2 : 1 
3 : 0 1 
4 : 2 
5 : 0 2 
6 : 1 2 
7 : 0 1 2 

Recommended Posts

Python Bit vollständige Suche
Bestätigen Sie die vollständige Suche
Vollbit-Suche mit Go
PYTHON2.7 64-Bit-Version
Bit vollständige Suche und direkte Produktmenge
Sequentielle Suche mit Python
Python-Übung 1-Breiten-Prioritätssuche
Dichotomie mit Python
[Python] Suche (NumPy) ABC165C
Memo zur Bisektionssuche (python2.7)
[Python] Bisection-Suche ABC155D
Lineare Suche in Python
Dichotomie mit Python
Dichotomie mit Python 3
Suchen Sie Twitter mit Python
Binäre Suche in Python
Verwenden Sie Such-Tweets: Vollständiges Archiv / Sandbox in Python
[Python] BFS (Suche nach Breitenpriorität) ABC168D
Suche nach Breitenpriorität / bidirektionale Suche (Python Edition)
Suchalgorithmus mit word2vec [Python]
Homebrew Python - Youtube Suchprogramm
[Python] DFS (Tiefenprioritätssuche) ATC001A
Löse mit Python [100 ausgewählte Fragen aus der Vergangenheit, die Anfänger und Fortgeschrittene lösen sollten] (010 --014 Vollständige Suche: Bit vollständige Suche)
Binäre Suche in Python / C ++
Algorithmus in Python (Dichotomie)
[Python] DFS (Tiefenprioritätssuche) ABC157D
Suchmaschinen arbeiten mit Python
Suche nach Twitter-Tweets mit Python
[Python] Suche nach Tiefenpriorität und Suche nach Breitenpriorität
Vollständiges Verständnis des Python-Debuggens
Optimieren Sie die Websuche mit Python
Schreiben Sie eine Dichotomie in Python
Installieren von Kivy unter Windows 10 64bit Python3.5
Python
Setzen Sie MeCab in "Windows 10; Python3.5 (64bit)"
Python2.7-Installation in einer Windows 32-Bit-Umgebung
Algorithmus in Python (Tiefenprioritätssuche, dfs)
Ich möchte den vollständigen Text mit elasticsearch + python durchsuchen
Beherrsche die lineare Suche! ~ Python-Implementierungsversion ~
Installieren von Kivy-Designer unter Windows 10 64-Bit Python3.5
Lernen mit ABC173C (Bit-Vollsuche, Kopieren einer mehrdimensionalen Liste, eine Dimension einer mehrdimensionalen Liste)
Erstellen Sie mlpy mit python3.3 (64bit) (Windows 64bit)
Schreiben Sie eine Suche mit Tiefenpriorität in Python
Lösen Sie Teilsummenprobleme mit der vollständigen Suche in Python
Reproduzieren Sie die One-Touch-Suche mit Python 3.7.3. (Windows 10)
Suche nach Tiefenpriorität mit Stack in Python
Python 2-Minuten-Suche und ihre Ableitungen
Über etwas vollständige Suche, die häufig bei Wettkampfprofis auftritt Aus den Augen von Anfängern mit Python
Homebrew Python Teil 3 - Das Produktsuchprogramm von Amazon
Ändern Sie die Python 64-Bit-Umgebung mit Anaconda in eine 32-Bit-Umgebung
Python-Handspiel (berechnet voller Mordred)
Algorithmus in Python (ABC 146 C Dichotomie
Python Bit Arithmetic Super Einführung
Suchen und spielen Sie YouTube-Videos mit Python