Rechner braucht extrem lange für diesen Algorithmus



  • Abend Leute,

    ich hab gerade mal bisschen rumexperementiert, bin irgendwie dazu gekommen, einen "Alle möglichen Kombinationen mit Alphabet x für ein Passwort mit 4 Zeichen"-Algorithmus gekommen.

    Mein Alphabet ist 60 Zeichen lang. Das ergibt 60^4 Möglichkeiten, um die 12.9 Millionen. Hörte sich für mich nicht viel an. Trotzdem rechnete mein Rechner c.a 1ne Stunde daran. Klar, das Ausgeben auf der Konsole verlangsamt das Ganze, aber so extrem ?
    Natürlich ist mein Alogirthmus bestimmt richtig dreckig, aber TROTZDEM ist das einfach zu lange ?!

    Zum Vergleich habe ich den Code mal bei Ideone compilen lassen :

    http://ideone.com/OO0RRf

    Klar berechnet er die Folge nicht zueende, aber man sieht : Er braucht für 6k Kombinationen nur 0.02 sec. Hochgerechnet braucht er damit für alle 12.9 Millionen nur 40 Sekunden.
    Verglichen mit meinem Rechner : Er braucht c.a 1.5 Sekunden für 6k Kombinationen. Das sind dann um die 3k Sekunden und annäherend eine Stunde. Vor allem weil es, denke ich, noch ein Stück mehr als 1.5 Sekunden, annäherend 2 sind.

    Wieso ist das so ? Ich hab als Prozessor ein Intel i5, nicht übertaktet. Aber ich glaub kaum, dass am Rechner liegt. Eher eine Einstellungssache. Aber wo ? In der IDE ? Ich verwende Visual Studios, ist das also eine Einstellungssache, die ich inerhalb der IDE zu treffen habe ?

    Irgendwie hat das gerade total meine Interesse gepackt und ich wüsste gerne wieso das so ist ;P

    Hat jemand eine Idee ?

    Danke schon mal und schönen Abend noch !



  • Vielleicht von Debug auf Release umstellen?



  • Das hat einzig und allein mit der Konsolenausgabe zu tun. Leite die Ausgabe mal in eine Datei um (so wie es auch ideone zweifellos tut) und staune.



  • Ich bin grad zu unglaublich dumm eine File zu öffnen ( ofstream file; file.open( "randomName.txt"); -> is_open() ist immer falsch. Verstehe nicht wieso, aber naja ;P )

    Auf jeden Fall läuft das Programm gerade mal 3 Sekunden wenn ich die console-outputs rausnehme. Krass, hätte ich echt nicht gedacht, dass alleine das so einen unglaublichen großen Zeitunterschied verursacht.

    Auf jeden Fall vielen Dank für die Aufklärung !



  • Du kannst die Standardausgabe auch umleiten, ohne etwas am Programm zu verändern:
    ./DeinProgramm > output.txt

    WhatsGoingOn? schrieb:

    Ich bin grad zu unglaublich dumm eine File zu öffnen ( ofstream file; file.open( "randomName.txt"); -> is_open() ist immer falsch. Verstehe nicht wieso, aber naja ;P )

    Wenn du relative Pfadangaben verwendest, musst du im aktuellen working directory Schreibrechte haben.



  • Die Schreibrechte warens 😛

    Damit wäre auch das geklärt, vielen Dank nochmal !


Log in to reply