Algorithme du nbre de combinaisons avec 8 chiffres

Messages postés
78
Date d'inscription
vendredi 26 février 2010
Dernière intervention
8 juin 2016
-
Bonjour,

Je détermine dans un table 8 chiffres de 0 à 9 tiré au hasard

exemple 0 7 3 5 6 0 1 2

une fois ce tirage effectué, je souhaite visualiser toutes les combinaisons possibles avec ces 8 chiffres
Pour ce faire j'utilise des boucles encastrées en déplaçant les chiffres

il y a 7 niveaux pour décaler le 5 puis le 3 puis le 2 et ainsi de suite
mais je me rend compte qu'une fois ces 7 niveaux effectués
Il faut l'appliquer a autant de combinaisons que peut me proposer ces 8 chiffres
en refaisant les 7 boucles et ainsi de suite
1er combinaison 0,5,3,2,1,7,7,3
2eme combinaison 0,3,2,1,7,7,3,5 par exemple
et là j'avoue que je sèche pour trouver un code simple

taboperation = [0,5,3,2,1,7,7,3];
       for (i1 = 1; i1 < 6; i1++) {  
        for (i2 = 1; i2 < 6; i2++) {
            for (i3 = 1; i3 < 7; i3++) {
                var transfert = taboperation[i3 + 2];
                taboperation[3i + 2] = taboperation[3i + 1]
                taboperation[3i + 1] = transfert;
            }
            
            transfert = taboperation[i2 + 3];
            taboperation[i2j + 3] = taboperation[i2 + 2]
            taboperation[i2 + 2] = transfert;
alert (taboperation);
        }
    }
}



Pierre Nonclercq
Afficher la suite 

Votre réponse

2 réponses

Messages postés
90
Date d'inscription
mardi 30 juillet 2013
Dernière intervention
22 novembre 2018
0
Merci
Bonjour,

En python ce serait hyper simple, le code suivant de 2 lignes donnent toutes les permutations sans doublons :

import itertools as it
sol=set(it.permutations([0,7,3,5,6,0,1,2]))



Si cela doit être fait avec du Javascript que je ne pratique pas, il suffit de traduire le code python suivant en Javascript :

def comb(s,u,sol):
    if len(u)==0:
        if s not in sol:
            sol.append(s)
            print len(sol),' : ',s
    else:
        for i in u:
            u1=u[:]
            u1.remove(i)
            comb(s+[i],u1,sol)

sol=[]
u=[0,7,3,5,6,0,1,2]
comb([],u,sol)



Cordialement,
hb
titan3131
Messages postés
78
Date d'inscription
vendredi 26 février 2010
Dernière intervention
8 juin 2016
-
merci pour la réponse
en fait j'ai trouvé une autre solution à mon problème
Cordialement
Commenter la réponse de hbouia
Messages postés
1663
Date d'inscription
vendredi 9 mai 2008
Statut
Modérateur
Dernière intervention
3 novembre 2018
0
Merci
bonjour

il serait bien que quand le problème est résolu que tu mette la discussion en résolu.
Commenter la réponse de @karamel

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.