beliebige Potenzen

Sebaaaa

Aktives Mitglied
Ich soll beliebige Potenzen berechnen und habe diese Vorgaben aber mir allein der MethodenName


Java:
public class Base {
	
	public static long[] basePowerN(int base, int n) {

ein Rätsle, hauptsächlich betreffend das "long[]".

Kann mir das jmd kurz erklären.
 
Java:
Schreiben Sie eine Funktion long[] BasePowerN
(int Base, int N), die alle Potenzen zwischen
Base0 und BaseN (0 ≤ N ≤ 60) berechnet und in einem
entsprechend großen Array ablegt:
Sinn des Arrays ist, eine schnelle Berechnung von BaseX durch
Indexierung mittels 0 ≤ X ≤ N durchführen zu können;
 Beispiel: Ergebnisarray long[] mit Base = 2 und N = 8:
Indexierung des Arrays bei X = 4 bedeutet, den Wert 16 auszulesen
und damit das Ergebnis von 24 ohne weitere Berechnung
sofort zur Verfügung zu haben.

ich versteh nicht was es mit dem long[] auf sich hat.
Die bedeutung dahinter.
 
Java:
Schreiben Sie eine Funktion long[] BasePowerN
(int Base, int N), die alle Potenzen zwischen
Base0 und BaseN (0 ≤ N ≤ 60) berechnet und in einem
entsprechend großen Array ablegt:
Sinn des Arrays ist, eine schnelle Berechnung von BaseX durch
Indexierung mittels 0 ≤ X ≤ N durchführen zu können;
 Beispiel: Ergebnisarray long[] mit Base = 2 und N = 8:
Indexierung des Arrays bei X = 4 bedeutet, den Wert 16 auszulesen
und damit das Ergebnis von 24 ohne weitere Berechnung
sofort zur Verfügung zu haben.

ich versteh nicht was es mit dem long[] auf sich hat.
Die bedeutung dahinter.

Ich denke mir das Array soll alle Potenzen von "Base hoch 0" bis "Base hoch N" enthalten. Also bei base 2 und N 8 hat das Array 9 Einträge (index 0 bis 8).
array[0] // 1 (2^0)
array[1] // 2 (2^1)
array[2] // 4 (2^2)
array[3] // 8 (2^3)
array[4] // 16 (2^4)
...
array[8] //256 (2^8)

Was in der Aufgabenstellung mit "Ergebnis von 24" gemeint ist, ist mir allerdings unklar.
 
Zuletzt bearbeitet:
Meinst Du so was?
Java:
	static int BasePowerN(int Base, int N, int index){
	int e[] = new int[N];
	int pot = 1;
		for(int i = 0; i < N; i++){
			pot = pot*Base;
			e[i] = pot;
		}
		return e[index-1];
	}

	public static void main(String[] args) {
		System.out.println(BasePowerN(2, 8, 4));
	}

Was Dein Prof allerdings mit "24" meint bleibt rätselhaft.
 
long[] ist ein Array von Longwerten, also so was wie {0.1, 3.2, 5, 6.3}, siehe auch hier

@malihini: Die Methode soll das wohl eher in einem long-array speichern zur späteren (schnellen) Verwendung, statt jedes Mal die Potenz auszurechnen und dann diesen einen Potenzwert zurückzugeben wie in deiner Methode. Ist sinnvoll wenn ein Programm oft die Potenzen benötigt (bzw. insbesondere wenn es etwas komliziertere Rechenoperationen sind als nur Multiplikationen). Die Methode sollte eher so aussehen

Java:
private long[] berechnen(int base, int n)
    {
        long[] potenzen = new long[n];
        potenzen[0]=base;
        for (int i = 0; i<n-1; i++){
            potenzen[i+1] = potenzen[i]*base;
        }
        return potenzen;
}
 
ich hab das gleiche Aufgabe aber der letzte code fängt komischerweise bei ''base hoch 1 und nicht hoch 0''. Wo könnte das liegen???
 

Zurück
Oben