Algorithme du nbre de combinaisons avec 8 chiffres

titan3131 Messages postés 77 Date d'inscription vendredi 26 février 2010 Statut Membre Dernière intervention 8 juin 2016 - Modifié par kazma le 6/05/2016 à 22:08
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 - 8 mai 2016 à 11:31
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
A voir également:

2 réponses

hbouia Messages postés 112 Date d'inscription mardi 30 juillet 2013 Statut Membre Dernière intervention 22 novembre 2022 12
Modifié par kazma le 7/05/2016 à 23:21
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
0
titan3131 Messages postés 77 Date d'inscription vendredi 26 février 2010 Statut Membre Dernière intervention 8 juin 2016
8 mai 2016 à 00:25
merci pour la réponse
en fait j'ai trouvé une autre solution à mon problème
Cordialement
0
@karamel Messages postés 1855 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 18 avril 2024 153
8 mai 2016 à 11:31
bonjour

il serait bien que quand le problème est résolu que tu mette la discussion en résolu.
0
Rejoignez-nous