Frage

Als Weihnachtsgeschenk ich ein kleines Programm in Java geschrieben sind Primzahlen zu berechnen. Meine Absicht war es die ganze Nacht zu verlassen, um die nächste Primzahl zu berechnen und sie in eine TXT-Datei zu schreiben. Am Morgen würde ich das Programm und nehmen Sie die TXT-Datei zu meinem Freund zu Weihnachten töten.

Gibt es etwas, ich sollte über Sorgen machen? Denken Sie daran, dass dies wahr Anfänger ist Ziggy Sie sprechen, nicht einige intelligente Fehlerprüfung ASM Typ.

EDIT Genauer gesagt, da ich die ganze Nacht zu zählen Primzahlen dieses Programm verlassen wird, gibt es eine Chance auf alles, was ich eine Art von speicherbezogene Fehler auftreten wird? Wie stapelt Schlafhaufen oder Hunde und Katzen Brech zusammen?

EDIT noch genauer gesagt, ist es eine Code-Zeile konnte ich setzen, um den Druck von Linien zu stoppen, wenn die Größe der Datei 4 GB ist? Nur um sicher zu sein?

EDIT: Erfolg: nachdem er die ganze Nacht verlassen ich nicht mehr als 13 KB der Primzahlen bekam, die höchste ich erhielt, war 22947217, die wie Zehntausende von Primzahlen ist. Erfolg!

War es hilfreich?

Lösung

Mehr als wahrscheinlich, dass Sie einen Algorithmus verwenden, der langsam ist. Da die Primzahlen größer Ihr Programm wird länger und länger nimmt einen einzelnen prim zu berechnen. Wenn Sie es Nacht laufen zu lassen wird die Textdatei sein werde nicht sehr groß am Morgen. Ich wäre begeistert, wenn es über ein paar megs ist.

Andere Tipps

Ich würde empfehlen, eine SMS-Nachricht für jede Primzahl Senden Sie berechnen. Ihr Freund möchte, dass viel besser als ein Haufen Papier. Plus-er aktualisiert werden kann, viel häufiger.

Es gibt viele Grenzen, obwohl keiner von ihnen eigen sind Dateien .txt:

  • Windows 9x Notepad wird keine Datei> 64KB öffnen.
  • Windows NT / 2k / etc Notepad hat keine Grenze, sondern neigt dazu, auf Multi-Megabyte-Dateien zu ersticken und einsperren. Sie müssen auch den meisten Texteditoren erinnern, sind stumm und versuchen, die gesamte Datei in den RAM zu lesen.
  • Viele Software ist auf 2 GB oder 4 GB-Dateien beschränkt, je nachdem ob sie verwenden oder unsigned ints unterzeichnet -. Als jemand bereits erwähnt, FAT32 ist die Schuld an diesem

Technisch gibt es keine Grenze, außer dass die das Dateisystem Orte auf Sie. Allerdings Notepad ist wirklich verschroben über obszön große Dateien zu öffnen.

Sie sollten erwägen, die Anzahl der Bytes Tracking Sie jede Datei schreiben und nach einer Anzahl von Bytes zu einer neuen wechseln. Sie könnten auch einen Viewer für Ihre Dateien zur Verfügung stellen, damit Ihr Freund sein Geschenk leicht mehr sehen kann. :)

Wenn der Speicher dient, hat FAT32 eine 4gig Datei Limit Größe.

Ziggy -

Ich liebe das: „nicht irgendein schlauen Fehler ASM Typen zu überprüfen.“ Sie beschreiben wir alle!

Haben Sie viel Speicherplatz und schreiben weg! Wie bereits erwähnt, müssen Sie den Editor Ihre Datei verwendet wird, kann öffnen sehr große Dateien öffnen.

Happy holidays, true Anfänger Ziggy.

Nur in Bezug auf die Größe des Orts Sie speichern die Textdatei auf der Festplatte.

Und wenn Sie nicht alles sofort, Ihr Gedächtnis + virtuelle Speicher zu schreiben.

Wie wäre es, einige CPU-Zyklen Sichern und Laden nur eine vorausberechnete Liste der Primzahlen ? Oder ist es „der Gedanke, der zählt“? :)

Was ist nur eine Datei für jede Primzahl erstellen und dann die Dateinamen verwenden, um die Nummer anzuzeigen?

Irgendwie bezweifle ich, dass, wenn mit Ihrem Programm über Nacht läuft, dass die Dateigröße ein Problem sein, wenn man bedenkt, dass es länger dauern wird, Primzahlen zu finden, wie Zahlen größer. So stellen Sie sicher, dass Sie aufzuräumen oder Sie könnten essen alle Ihre RAM.

Um Ihre Frage zu beantworten: Theoretisch kann das Dateisystem beschränkt die Dateigröße. Doch viele Texteditoren crash (vim nicht) beim Laden von großen Dateien (> 100 MB), weil sie versuchen, es in einem Puffer zu passen.

Um es zusammenzufassen, sollten Sie Ihre Dateien in Stücke das schwächste Glied (Text-Editoren) Aufspaltung verarbeiten kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top