Java Permutation, der Grad von?
Hallo,
kann mir einer bitte bei dieser Aufgabe helfen? Wie kann ich den Grad von a herausfinden? Also wie oft muss sich int a mit sich selbst permutieren, bis wieder a rauskommt?
Eine Lösung wäre sehr hilfreich.
Den Code von zwei Permutation habe ich hier:
import java.util.Arrays;
public class Permutation {
public static void main(String[] args) {
new Permutation();
}
public Permutation() {
int[] a = new int [] {1,2,3,0};
int[] b = new int [] {3,2,1,0};
int [] result = permute(a,b);
print(a);
print(b);
print(result);
}
private void print(int[]result) {
String messsage = Arrays.toString(result);
System.out.println(messsage);
}
private int [] permute(int[]a, int []b ) {
int arraySize = a.length;
int [] result = new int [arraySize];
for (int i = 0; i < arraySize; i++) {
int index = b[i];
result[i] = a[index];
}
return result;
}
}
2 Antworten
Führe die Permutationen so oft in einer Schleife durch, bis wieder das Ursprungsarray herauskommt. Zähle dabei, wie oft permutiert wurde:
private int getOrder(int[] a) {
int[] b = permute(a, a);
int i;
for (i = 1; !Arrays.equals(a, b); ++i) {
b = permute (b, a);
}
return i;
}
Du kannst doch programmieren. Und als Programmierer muss man mit solchen Problemen rumschlagen.
Du könntest eine while loop schreiben, die einen Zähler um mindestens 1 erhöht, wenn er die Funktion "Permutation" aufruft.
Achtung: Wenn du Arrays miteinander vergleichen möchtest, dann kannst du "==" nicht benutzen. Sie wird jedes Mal "False" ausgeben, auch wenn sie die gleichen Inhalte haben.