Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo!
Ich möchte einen String mit 1 Milliarde 0en generieren.
Habs bisher mit einer for-Schleife wo immer ein char c auf den String gerechnet wird. Hab es erst mal mit 1 Millionen 0en versucht und es dauert fast 1 Minute. das ist zu lang!!!.
Hab mal ein YouTube-Video gesehen wie das schneller geht irgendwas mit CharAt oder StringAt oder so ähnlich. Hat da vielleicht jemand eine Idee?
Strings sind unveränderlich daher muss immer ein neues String Objekt erzeugt werden.
Anstatt einfach Strings zusammenzuhängen könntest du schon mal den StringBuilder verwenden, generell könntest du auch einfach immer meherer "0" gleichzeitig hinzufügen. Das verkürzt die Laufzeit sicher ebenfalls.
Bleibt aber die Frage bestehen warum willst du das machen? Warum muss es "schnell" sein? Es gibt andere Sprachen mit denen das sicher schneller geht -> C++
Keine Ahnung was du mir damit sagen willst aber wenn jemand einen String mit 1 Million Nullen erstellen will ist das genauso als ob jemand mit dem aneinander reiben von zwei Fliegenpilzen Feuer machen will statt mit zwei Steien. absolute zeitverschwendung...
Ich habe mal PI auf 100 stellen genau mit dem C64 ausgerechnet. War eine echte Herausforderung das ist ja auch spannend aber einen String mit 1 Millionen Nullen? Da hätten wir damals drei Befehle gebraucht
Minimal 2, maximal 4 Bytes pro Zeichen / 0en. D h, 2 bis 4 Mrd. Bytes... Bei dieser Speicherung. Das wären ungefähr 2 Gigabyte. Sicherheitshalber der VM mehr zusichern...
Hast du vielleicht mal daran gedacht, dass das für etwas benötigt wird? Oder glaubst du Ich lass mir einfach mal so 1 Milliarde 0en generieren weil ich so viel Langeweile habe?
Hast du vielleicht mal daran gedacht, dass das für etwas benötigt wird? Oder glaubst du Ich lass mir einfach mal so 1 Milliarde 0en generieren weil ich so viel Langeweile habe?
Hast du vielleicht mal daran gedacht, dass das für etwas benötigt wird? Oder glaubst du Ich lass mir einfach mal so 1 Milliarde 0en generieren weil ich so viel Langeweile habe?
Also es dauert nicht mal 2 Sekunden und es soll ja auch nur einmal gemacht werden und nicht immer wieder. Auch wenn es manchmal vorkommt. das ich einen OutOfMemory Fehler bekomme.
Also es dauert nicht mal 2 Sekunden und es soll ja auch nur einmal gemacht werden und nicht immer wieder. Auch wenn es manchmal vorkommt. das ich einen OutOfMemory Fehler bekomme.
Und deswegen umgehen wir das Problem und generieren nur 10 Millionen und schreiben die dann hinternander weg 100 mal in eine Datei. Die ist dann 986 MB groß, die wird gezippt --> nur noch 986KB, nochmal gezippt --> 4KB. - Speicherproblem gelöst.
Genau und weil ich vor habe, jedem den PC zu sprengen frage ich einfach mal im Forum nach: "Hey leute ich will ne Bombe bauen hat jemand n Bauplan?" Erst nachdenken dan schreiben!!!
Genau und weil ich vor habe, jedem den PC zu sprengen frage ich einfach mal im Forum nach: "Hey leute ich will ne Bombe bauen hat jemand n Bauplan?" Erst nachdenken dan schreiben!!!
Ich glaube zwar nicht das dich meine Antwort wirklich interessiert, aber ich möchte ein Programm schreiben mit dem sich Zip-B#m##n erstellen lassen. Außerdem wenn ich einfach nur vor hätte jemandem zu schaden, könnte ich mir auch eine von hand machen und mich nicht mit Java abmühen.
So und jetzt schluss damit das hier ist ein Forum für Fragen bezüglich Java.
Wenn du das willst dann solltest du dir mal den Algorithmus anschauen wie das Zip-Format mit einer 1 gefolgt von 1 Mrd. 0en umgeht und gleich das ergebnis in eine Zip-Datei schreiben.
Habe einen Hinweis bekommen... aber es scheint inzwischen alles geklärt zu sein.
Nachdem der TE sein Vorhaben offenbart hat, harscht es hier ja an Kritik...
Die Intention war meiner Meinung nach die Falsche. Hätte es geheißen ich möchte versuchen, einen Hack zu reproduzieren und lokal zu testen - nur für mich -, dann hätte ich auch weiter geholfen.
Aber mit "klick und bumm" war's dann für mich aus.