Ich mache ein Programm, das nach einer Kombination fragt.
100C9 versucht, eindeutige Kombinationen mit dem größten Muster aufzulisten. Zunächst wurde die Gesamtzahl der Muster durch Verarbeitung unter Verwendung der üblichen Graduierungsformel berechnet.
private static long calcNumOfCombination(int n, int r){
r = Math.min(r, n - r);
if (r == 1) {
return n;
}
long sum = 1;
for (int i = 1; i <= r; i++) {
sum = sum * (n - i + 1) / i;
}
return sum;
}
//Gesamtzahl der Muster bei Auswahl von 9 von 100 Elementen
System.out.println(calcNumOfCombination(100, 9));
Ausführungsergebnis
1902231808400
Wie viele Ziffern? Ich weiß es nicht, weil ich nicht zählen will. Der Zweck ist nicht, die Kombinationen aufzulisten, Nachdem wir die Daten dieser vielen Muster aufgelistet haben, tun wir etwas, während wir die ursprüngliche Verarbeitung durchführen.
Der ursprüngliche Prozess ist einfach, daher fällt es mir schwer, sie aufzulisten.
Das Aufzählen ist natürlich sehr einfach, wenn Sie eine separate Verarbeitungsmethode für mehrere Gorigori-Schleifen für jede angegebene Auswahlnummer R ohne Verwendung von rekursiv vorbereiten und die Methode so aufrufen, dass sie entsprechend der Anzahl von R aufruft. Jep. .. ..
Es fällt nicht, auch wenn es rekursiv verarbeitet wird. Ich bin überrascht.