[PYTHON] Projekt Euler 4 Die Codierung mit einem neuen Ansatz schlägt fehl.

Die Häufigkeit, mit der der gleiche Wert beim Lesen von links oder rechts angezeigt wird, wird als Häufigkeit bezeichnet. Von der Häufigkeit, die durch das zweistellige Produkt ausgedrückt wird, beträgt das Maximum 9009 = 91 x 99.

Ermitteln Sie nun die maximale Häufigkeit, die durch das dreistellige Produkt ausgedrückt wird. http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%204

Ich habe den Code überprüft, den ich geschrieben habe. Es scheint Raum für Verbesserungen hinsichtlich der Beurteilung der Primzahlen zu geben, da beurteilt wird, ob der Rest der Division 0 wird oder nicht.

pe4.png

Der folgende Algorithmus wurde als ein dem Elastotenness-Sieb ähnlicher Algorithmus angesehen.

  1. Erstellen Sie zunächst eine Liste mit Zahlen, die aus dreistelligen Zahlen besteht. [False, False, ‥, True, ‥] Entspricht jeder Zahl unter 1 Million, wobei True das Produkt dreistelliger Zahlen ist
  2. Generieren Sie die Häufigkeit mit target = seed * 1000 + int (str (seed) [:: -1]), durchsuchen Sie die obige Liste anhand der größten Zahl und beenden Sie den Vorgang, wenn die Zahl gefunden wird, die True wird.

Ich habe versucht, das oben genannte umzusetzen.

def erat_approach():
  tl = [False]*(10**6)
  for i in range(800,1000):
    tl[i*800:i*1000:i] = [True]*200
  t = 999
  while 1:
    n = t*1000+int(str(t)[::-1])
    if tl[n]:
      break
    t-=1
  print n

Ergebnis: Explosion war spät (100-mal ausgeführt)

pe4_2.png

Recommended Posts

Projekt Euler 4 Die Codierung mit einem neuen Ansatz schlägt fehl.
Projekt Euler 37
Projekt Euler 7
Projekt Euler 47
Projekt Euler 4
Erstellen Sie ein neues numerisches Python-Berechnungsprojekt
Projekt Euler 38
Projekt Euler 17
Projekt Euler 26
Projekt Euler 8
Projekt Euler 23
Projekt Euler 22
Projekt Euler 19
Projekt Euler 50
Projekt Euler 42
Projekt Euler 33
Projekt Euler 43
Projekt Euler 35
Projekt Euler 36
Projekt Euler 24
Projekt Euler 46
Projekt Euler 48
Projekt Euler 45
Projekt Euler 6
Projekt Euler 44
Projekt Euler 39
Projekt Euler 40
Projekt Euler 49
Projekt Euler 29
Projekt Euler 27
Projekt Euler 41
Projekt Euler 18
Projekt Euler 13
Projekt Euler 30
Projekt Euler 16
Projekt Euler 14
Projekt Euler 34
Projekt Euler 25
Erstellen Sie eine neue Seite im Zusammenfluss mit Python
[Project Euler] Problem1
Aufgaben zu Beginn eines neuen Python-Projekts
Aktuelles Verzeichnis beim Erstellen eines neuen Verzeichnisses mit Jupyter
Ich kann ein Projekt mit PyWebView mit PyInstaller nicht in eine Exe verwandeln