[GO] Vollbit-Suche mit Python

Was ist Bit-Vollsuche? 2 ^ n Vollsuche

Beispiel ARC061: Viele Formeln

Sie erhalten die Zeichenfolge S, die nur aus Zahlen> 1 und 9 oder weniger besteht. Innerhalb dieser Zeichenfolge können Sie an einigen Stellen zwischen diesen Zeichen ein + setzen. Sie müssen keine eingeben. Das + darf jedoch nicht fortlaufend sein. Alle auf diese Weise erstellten Zeichenketten können als mathematische Formeln betrachtet und die Summe berechnet werden. Berechnen Sie die Werte aller möglichen Formeln und geben Sie die Summe aus.

Einschränkungen ・ 1 ≤|S|≤10 ・ Alle in S enthaltenen Buchstaben sind Zahlen von 1 bis 9.

Beispiel für Eingabe und Ausgabe

[in]  125
[out] 176
#  125、1+25、12+5、1+2+4 Muster von 5 können berücksichtigt werden.

Denkweise

Wenn es 125 ist, gibt es zwei Stellen (1 {a} 2 {b} 5), an denen Sie "+" setzen können, sodass 2 ^ 2 = 4 Arten von Formeln berücksichtigt werden können. ab Es gibt zwei Möglichkeiten, mit oder ohne "+". Und da es um Bit geht, suchen Sie nach der Stelle, an der Bit steht. Das Bild sieht wie folgt aus.

index a b
0 0 0
1 0 1
2 1 0
3 1 1

Sie können sehen, dass es insgesamt 4 Muster gibt.

Implementierung in Python

Verwenden Sie den Python-Bit-Operator Rechtsverschiebung ">>" bitAND "&". Für Details zu Bitoperatoren war hier sehr hilfreich.

Versuchen Sie, 11 ein Bit nach rechts zu verschieben. Die 1 ganz rechts verschwindet und ganz links wird eine 0 eingefügt. 1011 = 11 0101 = 5

Nehmen wir 10 & 12 BitAND. (Lassen Sie 1 nur dort, wo beide für jeden Ort 1 sind.) 1010 = 10 1100 = 12 1000 = 08

#Eingabe: 125
s = ["1", "2", "5"]
n = len(s)

for i in range(2 ** (n-1)):
    tmp = [False] * (n-1)
    for j in range(n-1):
        if i >> j & 1:
            tmp[j] = True
    pattern.append(tmp)

print(pattern)
[[False, False], [True, False], [False, True], [True, True]]

Ich konnte alle Muster durch vollständige Suche finden. Die Antwort auf das von mir gelöste Beispiel lautet übrigens so. (Obwohl der Code schmutzig ist und es einen intelligenteren Weg geben sollte, ihn zu lösen)

Recommended Posts

Vollbit-Suche mit Python
Python Bit vollständige Suche
Vollbit-Suche mit Go
Sequentielle Suche mit Python
Bestätigen Sie die vollständige Suche
Dichotomie mit Python
Dichotomie mit Python 3
Suchmaschinen arbeiten mit Python
Suche nach Twitter-Tweets mit Python
Optimieren Sie die Websuche mit Python
Erstellen Sie mlpy mit python3.3 (64bit) (Windows 64bit)
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)
FizzBuzz in Python3
Scraping mit Python
Ändern Sie die Python 64-Bit-Umgebung mit Anaconda in eine 32-Bit-Umgebung
Statistik mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
In Python integrieren
Durchsuche das Labyrinth mit dem Python A * -Algorithmus
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Ich möchte den vollständigen Text mit elasticsearch + python durchsuchen
Python beginnt mit ()
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Bit vollständige Suche und direkte Produktmenge
PYTHON2.7 64-Bit-Version
Lösen Sie Teilsummenprobleme mit der vollständigen Suche in Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Suchen und laden Sie YouTube-Videos automatisch mit Python herunter
Kausales Denken und kausale Suche von Python (für Anfänger)
Verwenden Sie Such-Tweets: Vollständiges Archiv / Sandbox in Python
Über etwas vollständige Suche, die häufig bei Wettkampfprofis auftritt Aus den Augen von Anfängern mit Python
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Versuchen Sie es mit Python.
Python lernen mit ChemTHEATER 03
"Objektorientiert" mit Python gelernt
Führen Sie Python mit VBA aus
Umgang mit Yaml mit Python
Löse AtCoder 167 mit Python
Serielle Kommunikation mit Python
[Python] Verwenden Sie JSON mit Python
Python lernen mit ChemTHEATER 05-1
Führen Sie prepDE.py mit python3 aus
1.1 Erste Schritte mit Python
Tweets mit Python sammeln