Algorithme du nbre de combinaisons avec 8 chiffres

titan3131 78 Messages postés vendredi 26 février 2010Date d'inscription 8 juin 2016 Dernière intervention - 6 mai 2016 à 17:25 - Dernière réponse : @karamel 1660 Messages postés vendredi 9 mai 2008Date d'inscriptionModérateurStatut 12 août 2018 Dernière intervention
- 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
Afficher la suite 

Votre réponse

3 réponses

hbouia 87 Messages postés mardi 30 juillet 2013Date d'inscription 3 avril 2018 Dernière intervention - Modifié par kazma le 7/05/2016 à 23:21
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 78 Messages postés vendredi 26 février 2010Date d'inscription 8 juin 2016 Dernière intervention - 8 mai 2016 à 00:25
merci pour la réponse
en fait j'ai trouvé une autre solution à mon problème
Cordialement
Commenter la réponse de hbouia
@karamel 1660 Messages postés vendredi 9 mai 2008Date d'inscriptionModérateurStatut 12 août 2018 Dernière intervention - 8 mai 2016 à 11:31
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.