Ich lief etwas dynamischer Programmcode (versuchte Brute-Force widerlegen die Collatz-Vermutung = P) und ich benutzte ein Diktat, um die Längen der Ketten zu speichern, die ich bereits berechnet hatte. Offensichtlich hatte es irgendwann keinen Speicher mehr. Gibt es eine einfache Möglichkeit, eine Variante von dict
zu verwenden, die Teile von sich selbst auf die Festplatte auslagern wird, wenn es keinen Platz mehr hat? Offensichtlich wird es langsamer als ein In-Memory-Diktat, und es wird wahrscheinlich am Ende meinen Festplattenplatz verschlingen, aber das könnte auf andere Probleme, die nicht so sinnlos sind, zutreffen.Python Disk-Based Dictionary
Ich erkannte, dass ein Disk-basiertes Wörterbuch ist so ziemlich eine Datenbank, so dass ich manuell eine mit sqlite3 implementiert, aber ich habe es nicht auf intelligente Weise und hatte es jedes Element in der DB eins nach a Zeit ... es war ungefähr 300x langsamer.
Ist der schlaueste Weg, um meine eigenen Sätze von dicts zu erstellen, nur eine im Speicher zu halten, und sie auf eine effiziente Weise auslagern?
Wie genau würden Sie die Indexierung von sqlite verwenden? So wie ich es hier gemacht habe, habe ich eine Tabelle wie folgt erstellt: "cur.execute ('create table vals (intx INTEGER, chainlen INTEGER)')", dann I "cur.execute ('SELECT * von vals where indx =% d '% i) "für eine Suche. – Claudiu
Tabelle Vals (Indix INTEGER PRIMARY KEY, Ketten INTEGER) –
@Claudiu - mein Programm war so, dass ich einige Logik in der Datenbank-Ebene implementieren konnte, so könnte ich die DB tun, filtern und so; es war mehr als nur ein dummer Laden. –