F
Firephoenix
Gast
Hi Leute,
ich habe mal versucht das bekannte Zahlenrätsel (E+I+N+S=1, Z+W+E+I=2... bis 12) durch ausprobieren zu lösen.
Ich bin mir sicher, dass mein Code so funktioniert, er arbeitet ja nicht anders als eine dumme Brute-Force
Allerdings läuft der Pc nach dem Aufruf und in der Konsole erscheint nichts - java läuft nur mit 13% durch
Ein Ende habe ich auch nach 15-20 Minuten nicht erreicht.
Gibt es eine Möglichkeit java beim starten (also "java Zahlenraetsel") irgendwie zu beschleunigen?
oder im Code selbst noch eine Möglichkeit Laufzeit zu sparen (z.b. indem ich die checkMethoden direkt in die If setze?)
Hier mal der Code:
Ich hab die Methoden jetzt eher zu erklärzwecken Verwendet, da ich jemand anderem Java per VPN erkläre - und das kam halt dabei raus
die Logikabfragen zusammenzufassen ist aber kein großes Thema. Andere Ideen wären aber auf alle Fälle hilfreich.
Danke für Antworten
Gruß Firephoenix
ich habe mal versucht das bekannte Zahlenrätsel (E+I+N+S=1, Z+W+E+I=2... bis 12) durch ausprobieren zu lösen.
Ich bin mir sicher, dass mein Code so funktioniert, er arbeitet ja nicht anders als eine dumme Brute-Force
Allerdings läuft der Pc nach dem Aufruf und in der Konsole erscheint nichts - java läuft nur mit 13% durch
Ein Ende habe ich auch nach 15-20 Minuten nicht erreicht.
Gibt es eine Möglichkeit java beim starten (also "java Zahlenraetsel") irgendwie zu beschleunigen?
oder im Code selbst noch eine Möglichkeit Laufzeit zu sparen (z.b. indem ich die checkMethoden direkt in die If setze?)
Hier mal der Code:
Java:
public class Zahlenraetsel{
public static int A,B,C,D,E,F,H,I,L,N,O,R,S,T,U,V,W,Z,zaehler;
public static void main(String[] args){
for(E=0; E<=1; E++){
for(I=0; I<=1; I++){
for(N=0; N<=1; N++){
for(S=0; S<=1; S++){
for(Z=0; Z<=2; Z++){
for(W=0; W<=2; W++){
for(D=0; D<=3; D++){
for(R=0; R<=3; R++){
for(V=0; V<=4; V++){
for(F=0; F<=5; F++){
for(U=0; U<=5; U++){
for(U=0; U<=5; U++){
for(C=0; C<=6; C++){
for(H=0; H<=6; H++){
for(B=0; B<=7; B++){
for(A=0; A<=8; A++){
for(T=0; T<=8; T++){
for(L=0; L<=11; L++){
for(O=0; O<=12; O++){
if(checkEins() && checkZwei() && checkDrei() && checkVier() && checkFuenf() && checkSechs() && checkSieben()
&& checkAcht() && checkNeun() && checkZehn() && checkElf() && checkZwoelf()){
zaehler++;
System.out.println("A ="+A+ " B= "+B+" C= "+C+" D= "+D+ " E= "+E);
System.out.println("F ="+F+ " H= "+H+" I= "+I+" L= "+L+ " N= "+N);
System.out.println("O ="+O+ " R= "+R+" S= "+S+" T= "+T+ " U= "+U);
System.out.println("V ="+V+ " W= "+W+" Z= "+Z);
System.out.println("---------------");
}
else;
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
System.out.println("Es wurden "+zaehler+" Loesungen gefunden");
}
//Bedingung eins überprüfen
public static boolean checkEins(){
if((E+I+N+S) == 1)
return true;
else
return false;
}
//Bedingung zwei überprüfen
public static boolean checkZwei(){
if((Z+W+E+I) == 2)
return true;
else
return false;
}
//Bedingung drei überprüfen
public static boolean checkDrei(){
if((D+R+E+I) == 3)
return true;
else
return false;
}
//Bedingung vier überprüfen
public static boolean checkVier(){
if((V+I+E+R) == 4)
return true;
else
return false;
}
//Bedingung fünf überprüfen
public static boolean checkFuenf(){
if((F+U+E+N+F) == 5)
return true;
else
return false;
}
//Bedingung sechs überprüfen
public static boolean checkSechs(){
if((S+E+C+H+S) == 6)
return true;
else
return false;
}
//Bedingung sieben überprüfen
public static boolean checkSieben(){
if((S+I+E+B+E+N) == 7)
return true;
else
return false;
}
//Bedingung acht überprüfen
public static boolean checkAcht(){
if((A+C+H+T) == 8)
return true;
else
return false;
}
//Bedingung neun überprüfen
public static boolean checkNeun(){
if((N+E+U+N) == 9)
return true;
else
return false;
}
//Bedingung zehn überprüfen
public static boolean checkZehn(){
if((Z+E+H+N) == 10)
return true;
else
return false;
}
//Bedingung elf überprüfen
public static boolean checkElf(){
if((E+L+F) == 11)
return true;
else
return false;
}
//Bedingung zwölf überprüfen
public static boolean checkZwoelf(){
if((Z+W+O+E+L+F) == 12)
return true;
else
return false;
}
}
Ich hab die Methoden jetzt eher zu erklärzwecken Verwendet, da ich jemand anderem Java per VPN erkläre - und das kam halt dabei raus
Danke für Antworten
Gruß Firephoenix