A voir également:
- Tableau trié en pascal
- Trier tableau excel - Guide
- Tableau word - Guide
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Turbo pascal download - Télécharger - Édition & Programmation
2 réponses
Marden
Messages postés
1072
Date d'inscription
dimanche 11 février 2001
Statut
Membre
Dernière intervention
29 janvier 2006
210
23 janv. 2002 à 23:01
23 janv. 2002 à 23:01
La solution que j'utilise (en JavaScript, mais applicable dans tous les langages) :
- utiliser un tableau auxiliaire (itmp), initialisé de 0 à n
- faire la boucle suivante
for ( k=0, cnt=n ; kk<n ; kk++ ) {
ic = Math.floor(Math.random()*cnt) ; // valeur de 0 à cnt-1
nrec = itmp[ic] ; // ---> le numéro à utiliser
// insérer ici la séquence (transfert des enregistrements)
counter-- ;
itmp[ic] = itmp[counter] ; // ranger le dernier
itmp[counter] = nrec ; // pour ne pas perdre la valeur
}
- on pourrait faire la boucle n-1 fois (il ne resterait plus qu'un pointeur), ce qui obligerait à programmer la séquence de transfert du dernier élément.
- utiliser un tableau auxiliaire (itmp), initialisé de 0 à n
- faire la boucle suivante
for ( k=0, cnt=n ; kk<n ; kk++ ) {
ic = Math.floor(Math.random()*cnt) ; // valeur de 0 à cnt-1
nrec = itmp[ic] ; // ---> le numéro à utiliser
// insérer ici la séquence (transfert des enregistrements)
counter-- ;
itmp[ic] = itmp[counter] ; // ranger le dernier
itmp[counter] = nrec ; // pour ne pas perdre la valeur
}
- on pourrait faire la boucle n-1 fois (il ne resterait plus qu'un pointeur), ce qui obligerait à programmer la séquence de transfert du dernier élément.
23 janv. 2002 à 23:04
for ( k=0, cnt=n ; kk<n ; kk++ ) {
ic = Math.floor(Math.random()*cnt) ; // valeur de 0 à cnt-1
nrec = itmp[ic] ; // ---> le numéro à utiliser
// insérer ici la séquence (transfert des enregistrements)
cnt-- ;
itmp[ic] = itmp[cnt] ; // ranger le dernier
itmp[cnt] = nrec ; // pour ne pas perdre la valeur
}