Je crée un programme qui demande une combinaison.
100C9 essaie d'énumérer les combinaisons uniques avec le plus grand motif. Tout d'abord, le nombre total de motifs a été calculé par traitement à l'aide de la formule graduelle habituelle.
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;
}
//Nombre total de motifs lors de la sélection de 9 éléments sur 100
System.out.println(calcNumOfCombination(100, 9));
Résultat d'exécution
1902231808400
Combien de chiffres? Je ne sais pas parce que je ne veux pas compter. Le but n'est pas de lister les combinaisons, Après avoir énuméré les données de ces nombreux modèles, nous faisons quelque chose tout en effectuant le traitement d'origine.
Le processus d'origine est simple, j'ai donc du mal à les énumérer.
Bien sûr, l'énumération est très facile si vous préparez une méthode de traitement distincte pour plusieurs boucles de Gorigori pour chaque numéro de sélection R donné sans utiliser de récursif, et changez la méthode à appeler en fonction du nombre de R. Ouaip. .. ..
Il ne tombe pas même s'il est traité de manière récursive. Je suis surpris.
Recommended Posts