CodeS-SourceS
Rechercher un code, un tuto, une réponse

Génération d'une permutation aléatoire, sans retirage

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 720 fois - Téléchargée 20 fois

Contenu du snippet

C'est un petit algorithme qui permet de distribuer aléatoirement les nombres de 1 à 10 dans un tableau.
Si vous voulez plus grand, il suffit de changer la valeur de DIM.
La case 0 du tableau ne semble servir à rien, mais c'est une case sentinelle. Elle sert à d'autres algorithmes comme des tris.

Source / Exemple :


#include "stdafx.h"
#include "stdlib.h"
#include "time.h"

#define DIM 10

int main(int argc, char* argv[])
{

    int i,j, t[DIM+1];

    t[1] = 1;
    srand(unsigned(time(NULL)));

    // Tirage
    for ( i = 2; i <= DIM; i++ ) {
        j = rand()%i+1;
        t[i] = t[j];
        t[j] = i;
    }

    // Affichage
    for ( i = 1; i <= DIM; i++ )
        printf("t[%d] = %d\n", i, t[i]);
    return 0;
}

A voir également

Ajouter un commentaire

Commentaires

Donnez votre avis

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.