[JAVA] Lassen Sie uns eine Kombination ohne Duplizierung erstellen. | Berechnen Sie zunächst die Gesamtzahl

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.

Ermitteln Sie die Gesamtzahl der nCr-Muster mithilfe der allmählichen Gleichung

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. .. ..

Ich habe die Schwanzaufklärung in Java versucht, indem ich das Erscheinungsbild nachgeahmt habe

Es fällt nicht, auch wenn es rekursiv verarbeitet wird. Ich bin überrascht.

Recommended Posts

Lassen Sie uns eine Kombination ohne Duplizierung erstellen. | Berechnen Sie zunächst die Gesamtzahl
Ob das Gesamtprodukt der ersten n Primzahlen plus 1 eine Primzahl ist
Finden Sie den Rest geteilt durch 3, ohne eine Zahl zu verwenden
Erstellen wir eine Taschenrechner-App mit Java ~ Zeigen Sie das Anwendungsfenster an
Lassen Sie uns die App verbessern
Lassen Sie uns ein custom_cop erstellen, das auf das Schütteln des Namens hinweist