IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Calcul scientifique Python Discussion :

Nombre de combinaisons possibles mais pas la liste des combinaisons


Sujet :

Calcul scientifique Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Occupé
    Inscrit en
    Décembre 2021
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Occupé

    Informations forums :
    Inscription : Décembre 2021
    Messages : 31
    Par défaut Nombre de combinaisons possibles mais pas la liste des combinaisons
    Bonjour à tous,

    Avec une liste L,
    je sais qu'il est possible d'obtenir la liste des combinaisons sans doublons en faisant usage de itertools.combinations :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    combines =combinations(cas, L)
    mais je ne parviens pas à trouver le moyen d'obtenir uniquement le nombre de combinaisons, toujours sans doublon, et non pas la liste des combinaisons.
    L'un de vous aurait-il une piste ?

    Merci à tous.

  2. #2
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 923
    Billets dans le blog
    8
    Par défaut
    Bonjour,

  3. #3
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    J'ai donné une formule pour calculer directement le nombre de combinaisons:

    https://www.developpez.net/forums/d1...e/#post6690294

  4. #4
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 923
    Billets dans le blog
    8
    Par défaut
    @tyrtamos:
    Ma réponse n'était pas celle demandée?

    Je me disais aussi ... que c'est un peu trop basique pour...

  5. #5
    Membre averti
    Homme Profil pro
    Occupé
    Inscrit en
    Décembre 2021
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Occupé

    Informations forums :
    Inscription : Décembre 2021
    Messages : 31
    Par défaut
    Citation Envoyé par Hominidé Voir le message
    @tyrtamos:
    Ma réponse n'était pas celle demandée?

    Je me disais aussi ... que c'est un peu trop basique pour...
    Merci mais len j'aurais trouvé . Non cette fonction ne convient pas car elle suppose d'établir au préalable la liste pour ensuite en obtenir la longueur or cette liste peut rapidement devenir très longue et python ne suit plus. Mais merci quand même.

  6. #6
    Membre Expert
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 923
    Billets dans le blog
    8
    Par défaut
    Désolé.
    Le ridicule ne tue pas heureusement

  7. #7
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour

    Citation Envoyé par Hominidé Voir le message
    @tyrtamos:
    Ma réponse n'était pas celle demandée?
    Calculer le nombre de combinaisons par l'intermédiaire de la liste marche très bien, mais il est seulement plus rapide de faire le calcul directement. Et ceci d'autant plus que la liste est plus grande.

    Par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    print(combin(100000, 5))
    83325000291662500020000

  8. #8
    Expert confirmé
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 224
    Par défaut
    hello,
    le module math possède une fonction comb équivalente à celle à Tyrtamos

    import math
    print(math.comb(100000,5))
    83325000291662500020000
    Le temps de calcul est équivalent à celui de la fonction à Tyrtamos.

    Ami calmant, JP

  9. #9
    Membre averti
    Homme Profil pro
    Occupé
    Inscrit en
    Décembre 2021
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Occupé

    Informations forums :
    Inscription : Décembre 2021
    Messages : 31
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Calculer le nombre de combinaisons par l'intermédiaire de la liste marche très bien, mais il est seulement plus rapide de faire le calcul directement.

    Merci. Oui mais comme j'ai une liste de combinaisons qui devient très grande, j'ai le programme qui se fige, probablement parce que la quantité de combinaisons de ma liste devient trop volumineuse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    cas =[x for x in range(3,32)]
    listeComb =[]
    for L in range(1, len(cas)+1):
    	for mix in combinations(cas, L): listeComb.append(mix)
    Voilà pourquoi j'ai pensé qu'il me fallait connaitre la longueur de ma liste sans vraiment dans un premier temps l'établir.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Proftpd - connexion ok mais pas d'affichage des fichiers
    Par myz-rix dans le forum Administration système
    Réponses: 3
    Dernier message: 23/02/2020, 13h57
  2. [XL-2016] Texte dans ComboBox mais pas dans liste
    Par xuorel dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/06/2017, 07h42
  3. Réponses: 1
    Dernier message: 26/10/2015, 13h49
  4. Réponses: 2
    Dernier message: 22/10/2007, 12h10
  5. Réponses: 6
    Dernier message: 16/03/2006, 18h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo