Combinaison aléatoire [Résolu]

Signaler
Messages postés
10
Date d'inscription
mardi 11 septembre 2007
Statut
Membre
Dernière intervention
22 mai 2011
-
Messages postés
10
Date d'inscription
mardi 11 septembre 2007
Statut
Membre
Dernière intervention
22 mai 2011
-
 Bonjour à tous, j'ai  un travail à faire pour l'école et je cherche à créer une fonction. Cette dernière doit pouvoir générer un vecteur de par exemple de dimension 18 avec dedans ranger de manière aléatoire les nombres de 1 à 18. je travail sous scilab. j'ai déjà fais une fonction mais celle-ci ne semble pas fonctionner; voilà à koi elle ressemble:

funcprot(0)
function vect=combialeatoire(n)
  vect=ceil(n*rand(1,n));
  for i=1:n-1
    for j=2:i+1
      if i==j
        j=j+1
      else
        if vect(1,i)==vect(1,j)
        vect(1,i)=ceil(n*rand());
        end
      end
     end
  end
endfunction

Merci d'avance, et puis si vous avez pas d'idée, simpas d'avoir lu ;)

PS je sais que c'est pas du language C mais ya pas de catégorie scilab alors j'ai pris la section du language le plus connu :p.

2 réponses

Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Salut
Voila ce que ça peut donner en C, tu convertiras.

int Nb=18;
int *Vect=new int[Nb];

//Initialisation à-1
for(i=0;i<Nb;i++)
  Vect[i]=-1;

//Et on remplie le tableau aléatoirement
for(i=0;i<Nb;)
{
   j=rand()%Nb;        //on tire j entre 0 et Nb-1
   if(Vect[j]==-1)     // si OK alors on remplie le tableau sinon on tire un nouveau j
       Vect[j]=i++;
}

....

delete []Vect;
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
Messages postés
10
Date d'inscription
mardi 11 septembre 2007
Statut
Membre
Dernière intervention
22 mai 2011

Merci l'ami!