Melanger un tableau

lilyvirus Messages postés 117 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 5 novembre 2008 - 3 févr. 2006 à 12:54
lilyvirus Messages postés 117 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 5 novembre 2008 - 3 févr. 2006 à 16:58
bonjour,



quelles est la mailleur solution pour melanger un tableaux?



merci



lily

3 réponses

cortoh Messages postés 1255 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 2 décembre 2008
3 févr. 2006 à 13:44
secouer bien fort?


Peace from Mars
to all human beings
0
AlphaLyrae Messages postés 6 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 3 février 2006
3 févr. 2006 à 16:36
Une solution que j'avais écrite, pas forcément la meilleure : (en plus ce serait présomptueux)

# utilisation:
tableauMelange = melangerTableau(tableauNonMelange);

# definition de la fonction:

/*-----------------------------
melangerTableau()
-----------------------------
- params:
tableau: Array - un tableau a une dimension a melanger
retour: Array - le tableau melangé


melange un tableau
*/
function melangerTableau(tableau:Array): Array {


var tabMelange:Array = new Array(tableau.length); //on va deplacer les elements vers tabMelange[]
var numEltChoisi: Number;
for(var numElement:Number=0; numElement<tableau.length; numElement++) {


//choix de l'emplacement de l'element dans le nouveau tableau
//emplacement relatif aux place encore disposible (undefined)
numEltChoisi = Math.floor( Math.random() * (tableau.length-numElement) );


//calcul du vrai emplacement dans tabMelange[], on compte le nombre d'element undefined et on le met
var nbEltUndefined: Number = -1;
for(var numEltMelange:Number=0; numEltMelange<tableau.length; numEltMelange++) {
if(tabMelange[numEltMelange] == undefined) nbEltUndefined++;
if(nbEltUndefined == numEltChoisi) {
//c'est l'element undefined numero numEltChoisi -> c'est le bon
tabMelange[numEltMelange] = tableau[numElement];
break;
}
}
}
return tabMelange;
}
0
lilyvirus Messages postés 117 Date d'inscription mardi 14 janvier 2003 Statut Membre Dernière intervention 5 novembre 2008
3 févr. 2006 à 16:58
secoué n'a rien donné



merci [auteurdetail.aspx?ID=302610 AlphaLyrae] je vais etudier ta fonction.



moi j''ai fait ca, mais je pense que ca doit etre lourd:



indexes = new Array(question_tmp.length);

question = new Array(question_tmp.length);

for (i=0; i
0
Rejoignez-nous