Hallo zusammen,
ich bin neu hier, studiere Wirtschaftsinformatik und habe im Moment einige Probleme mit der Programmierung in Java und hoffe, dass ihr mir vielleicht weiterhelfen könnt.
Im Moment geht es darum, mittels einer for-Schleife eine Methode zu implementieren, mit der sich eine Funktion der Form a^x mod p berechnen lässt (also z. B. 1234^12 mod 541 = 237).
Das soll allerdings nur der erste Schritt sein. Im weiteren Aufgabenverlauf sollen wir diese Funktion auch noch rekursiv sowie durch Darstellung der Exponenten in Binärform implementieren.
Ich scheitere allerdings irgendwie schon an der ersten Teilaufgabe ???:L
Ich habe mir gedacht, erst einmal die Potenzierung an sich zu implementieren. Also soll mir das Programm nur das Ergebnis von a^x zurückgeben. Sollte eigentlich nicht so schwer sein. Aber irgendwie bekomme ich immer das Ergenis 0 raus, wenn ich z. B. 4^2 rechnen will. Könnt ihr mir vielleicht sagen, wo der Fehler im Code ist? Wenn ich den Code auf Papier durchgehe, finde ich den Fehler auch nicht.
Gruß
Eddie
ich bin neu hier, studiere Wirtschaftsinformatik und habe im Moment einige Probleme mit der Programmierung in Java und hoffe, dass ihr mir vielleicht weiterhelfen könnt.
Im Moment geht es darum, mittels einer for-Schleife eine Methode zu implementieren, mit der sich eine Funktion der Form a^x mod p berechnen lässt (also z. B. 1234^12 mod 541 = 237).
Das soll allerdings nur der erste Schritt sein. Im weiteren Aufgabenverlauf sollen wir diese Funktion auch noch rekursiv sowie durch Darstellung der Exponenten in Binärform implementieren.
Ich scheitere allerdings irgendwie schon an der ersten Teilaufgabe ???:L
Ich habe mir gedacht, erst einmal die Potenzierung an sich zu implementieren. Also soll mir das Programm nur das Ergebnis von a^x zurückgeben. Sollte eigentlich nicht so schwer sein. Aber irgendwie bekomme ich immer das Ergenis 0 raus, wenn ich z. B. 4^2 rechnen will. Könnt ihr mir vielleicht sagen, wo der Fehler im Code ist? Wenn ich den Code auf Papier durchgehe, finde ich den Fehler auch nicht.
Gruß
Eddie
Java:
public int modExpSimple(int x, int a, int p){
int erg = 0;
int b = a;
for (int i=1; i==x; i++){
erg = b * a;
b = erg;
}
System.out.println("Das Ergebnis lautet: " + erg);
return erg;
}