Lister les parties à 3 éléments de {1;2;3;4;5}
Réponses
-
Tu as parfaitement raison. J'ai compté la même combinaison plusieurs fois.
Entrez la valeur de n : 5 Entrez la valeur de k : 3 Entrez l'element 1 de la partie : 2 Entrez l'element 2 de la partie : 2 Entrez l'element 3 de la partie : 3 Les combinaisons possibles sont : [(1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 1, 4), (1, 1, 5), (1, 2, 1), (1, 2, 2), (1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 3, 1), (1, 3, 2), (1, 3, 3), (1, 3, 4), (1, 3, 5), (1, 4, 1), (1, 4, 2), (1, 4, 3), (1, 4, 4), (1, 4, 5), (1, 5, 1), (1, 5, 2), (1, 5, 3), (1, 5, 4), (1, 5, 5), (2, 1, 1), (2, 1, 2), (2, 1, 3), (2, 1, 4), (2, 1, 5), (2, 2, 1), (2, 2, 2), (2, 2, 3), (2, 2, 4), (2, 2, 5), (2, 3, 1), (2, 3, 2), (2, 3, 3), (2, 3, 4), (2, 3, 5), (2, 4, 1), (2, 4, 2), (2, 4, 3), (2, 4, 4), (2, 4, 5), (2, 5, 1), (2, 5, 2), (2, 5, 3), (2, 5, 4), (2, 5, 5), (3, 1, 1), (3, 1, 2), (3, 1, 3), (3, 1, 4), (3, 1, 5), (3, 2, 1), (3, 2, 2), (3, 2, 3), (3, 2, 4), (3, 2, 5), (3, 3, 1), (3, 3, 2), (3, 3, 3), (3, 3, 4), (3, 3, 5), (3, 4, 1), (3, 4, 2), (3, 4, 3), (3, 4, 4), (3, 4, 5), (3, 5, 1), (3, 5, 2), (3, 5, 3), (3, 5, 4), (3, 5, 5), (4, 1, 1), (4, 1, 2), (4, 1, 3), (4, 1, 4), (4, 1, 5), (4, 2, 1), (4, 2, 2), (4, 2, 3), (4, 2, 4), (4, 2, 5), (4, 3, 1), (4, 3, 2), (4, 3, 3), (4, 3, 4), (4, 3, 5), (4, 4, 1), (4, 4, 2), (4, 4, 3), (4, 4, 4), (4, 4, 5), (4, 5, 1), (4, 5, 2), (4, 5, 3), (4, 5, 4), (4, 5, 5), (5, 1, 1), (5, 1, 2), (5, 1, 3), (5, 1, 4), (5, 1, 5), (5, 2, 1), (5, 2, 2), (5, 2, 3), (5, 2, 4), (5, 2, 5), (5, 3, 1), (5, 3, 2), (5, 3, 3), (5, 3, 4), (5, 3, 5), (5, 4, 1), (5, 4, 2), (5, 4, 3), (5, 4, 4), (5, 4, 5), (5, 5, 1), (5, 5, 2), (5, 5, 3), (5, 5, 4), (5, 5, 5)]
Lorsque notre cher Nico, le professeur, intervient dans une question d'analyse, c'est une véritable joie pour les lecteurs.. -
L=list(itertools.combinations_with_replacement(range(1,6),3)) L[16] (2, 2, 3)
-
J'ai fait les petites modifications pour les combinaisons avec répétitions. Pas de problème, ça marche bien. Maintenant, dodo. À demain
-
Tu as raison voici le code corrigé grace à ton dernier message
from itertools import combinations_with_replacement n = int(input("Entrez la valeur de n : ")) k = int(input("Entrez la valeur de k : ")) elements = list(range(1, n+1)) partie = [int(input(f"Entrez l'element {i+1} de la partie : ")) for i in range(k)] comb = sorted(combinations_with_replacement(elements, k)) index = comb.index(tuple(partie)) + 1 if tuple(partie) in comb else None print("Le numéro de la partie est :", index) if index else print("La partie doit contenir exactement k éléments")
Lorsque notre cher Nico, le professeur, intervient dans une question d'analyse, c'est une véritable joie pour les lecteurs.. -
un exemple
Entrez la valeur de n : 5 Entrez la valeur de k : 3 Entrez l'element 1 de la partie : 2 Entrez l'element 2 de la partie : 2 Entrez l'element 3 de la partie : 3 Le numéro de la partie est : 17
Lorsque notre cher Nico, le professeur, intervient dans une question d'analyse, c'est une véritable joie pour les lecteurs.. -
Je ne sais pas si tu as réussi la question avec ta consigne.Avant de prendre mon romain policier et oublier les maths, je vais appliquer ce que j'ai appris pour donner le rang d'une chaine de caractère dans l'alphabet selon l'ordre lexicographique; je veux savoir le rang par un code de gebrane et gabuzomeuLorsque notre cher Nico, le professeur, intervient dans une question d'analyse, c'est une véritable joie pour les lecteurs..
-
Bien dormi ?Pour varier les plaisirs, un programme python qui calcule le rang d'une combinaison avec répétition où la récursion est remplacée par une boucle :
def rangrep(liste,p) : n = p ; k = len(liste) ; rang = 1 L=sorted(liste) while k>0 : tete = L.pop(0) rang += math.comb(n-1+k,k)-math.comb(n+k-tete,k) k -= 1 ; n -= tete-1 L = [i-tete+1 for i in L] return rang
On peut regarder ce que ça donne pour un gros exemple.import random as rd L = [rd.randrange(1,101) for _ in range(50)] print(L)
[2, 3, 4, 6, 7, 9, 10, 11, 11, 14, 17, 17, 23, 23, 40, 40, 41, 44, 45, 47, 47, 47, 49, 50, 52, 57, 57, 58, 61, 63, 63, 64, 64, 67, 68, 70, 71, 72, 74, 74, 81, 81, 84, 86, 88, 90, 93, 94, 94, 96]%time rangrep(L,100)
CPU times: user 636 µs, sys: 0 ns, total: 636 µsWall time: 641 µs5823442742252119945851041994121764927170 -
Bonjour,Hier, j'avais remplacé dans ton premier code math.comb(n,k)-math.comb(n+1-tete,k) par math.comb(n-1+k,k)-math.comb(n+k-tete,k)et j'avais obtenu le rang 12 pour indice ([2,2,3],5), il fallait trouver 17Lorsque notre cher Nico, le professeur, intervient dans une question d'analyse, c'est une véritable joie pour les lecteurs..
-
Tu avais oublié de remplacer
queue = [i-tete for i in liste]
parqueue = [i-tete+1 for i in liste]
-
Dois-je dire oh la la ou oh la vache
Je suis pauméLorsque notre cher Nico, le professeur, intervient dans une question d'analyse, c'est une véritable joie pour les lecteurs.. -
Dans une combinaison avec répétition, il peut y avoir des répétitions.
-
Merci infiniment.
Tes questions sont toujours intéressantes, impressionnantes mais savonneuses.
À une prochaine rencontre.Lorsque notre cher Nico, le professeur, intervient dans une question d'analyse, c'est une véritable joie pour les lecteurs..
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 165.4K Toutes les catégories
- 63 Collège/Lycée
- 22.2K Algèbre
- 37.6K Analyse
- 6.3K Arithmétique
- 61 Catégories et structures
- 1.1K Combinatoire et Graphes
- 13 Sciences des données
- 5.1K Concours et Examens
- 23 CultureMath
- 51 Enseignement à distance
- 2.9K Fondements et Logique
- 10.8K Géométrie
- 84 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 79 Informatique théorique
- 3.9K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 26 Mathématiques et finance
- 342 Mathématiques et Physique
- 5K Mathématiques et Société
- 3.3K Pédagogie, enseignement, orientation
- 10.1K Probabilités, théorie de la mesure
- 804 Shtam
- 4.2K Statistiques
- 3.8K Topologie
- 1.4K Vie du Forum et de ses membres