Hallo Leute
Ich bin neu hier und hab bereits mal 'ne Frage. Und zwar bin ich darauf und daran eine Klasse zu schreiben die mir einen String, der maximal 10 Zeichen lang ist und den ich zuvor eingegeben habe, durch eine Art "Brute Force" erkennt und die erkannte Lösung raus spuckt. Dies mache ich, indem ich einen neuen String erstelle, der dann mit dem Zufall verändert wird und zwar solange, bis er dem "wahren" String entspricht. Am Schluss messe ich noch die Zeit, nur so zum Spass. Das sieht etwa so aus:
Ein Problem hier ran ist, dass man nur Grossbuchstaben erkennen lassen kann. Das zweite Problem ist, dass es sehr lange geht, bis der Random-Befehl den richtigen String erkennt.
Ich habe mir gedacht, ich mache einmal das gleiche mit Zahlen, um das ganze besser zu verstehen. Mit Zahlen war es einfacher, da man dort einfach weiter zählen kann. Das ganze sieht etwa so aus:
Dies ist viel effizienter, man kann dort etwa in 2 Millisekunden zehntausend Zahlen "durch zählen".
Ich habe mich gefragt, ob man bei einem String nicht auch einfach "weiter zählen" kann, um so jede möglich Kombination auch ohne Zufall durchgehen kann.
Danke für die Hilfe
Ich bin neu hier und hab bereits mal 'ne Frage. Und zwar bin ich darauf und daran eine Klasse zu schreiben die mir einen String, der maximal 10 Zeichen lang ist und den ich zuvor eingegeben habe, durch eine Art "Brute Force" erkennt und die erkannte Lösung raus spuckt. Dies mache ich, indem ich einen neuen String erstelle, der dann mit dem Zufall verändert wird und zwar solange, bis er dem "wahren" String entspricht. Am Schluss messe ich noch die Zeit, nur so zum Spass. Das sieht etwa so aus:
Java:
import java.util.Random;
public class Hallo2 {
public static void main(String[] args) {
String Strng = "IGW";
long zstVorher;
long zstNacher;
long zstDiff;
String s = "";
Random r = new Random();
int i = 0;
zstVorher = System.currentTimeMillis();
while(!s.equals(PASSWD))
{
s += (char)(r.nextInt(26) + 65);
i++;
if(i==10)
{
i=0;
s="";
}
}
zstNacher = System.currentTimeMillis();
zstDiff = (zstNacher - zstVorher);
System.out.println(s);
System.out.println(Long.toString(zstDiff));
}
}
Ein Problem hier ran ist, dass man nur Grossbuchstaben erkennen lassen kann. Das zweite Problem ist, dass es sehr lange geht, bis der Random-Befehl den richtigen String erkennt.
Ich habe mir gedacht, ich mache einmal das gleiche mit Zahlen, um das ganze besser zu verstehen. Mit Zahlen war es einfacher, da man dort einfach weiter zählen kann. Das ganze sieht etwa so aus:
Java:
public class HALLO {
public static void main(String[] args) {
long x = 6161;
long s = 0;
long zstVorher;
long zstNacher;
long zstDiff;
zstVorher = System.currentTimeMillis();
while(s!=x)
{
s ++;
}
zstNacher = System.currentTimeMillis();
zstDiff = (zstNacher - zstVorher);
System.out.println(s);
System.out.println(Long.toString(zstDiff));
}
}
Ich habe mich gefragt, ob man bei einem String nicht auch einfach "weiter zählen" kann, um so jede möglich Kombination auch ohne Zufall durchgehen kann.
Danke für die Hilfe
Zuletzt bearbeitet: