Combinaison aléatoire

Résolu
cs_yopcoo Messages postés 10 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 22 mai 2011 - 17 mars 2009 à 20:35
cs_yopcoo Messages postés 10 Date d'inscription mardi 11 septembre 2007 Statut Membre Dernière intervention 22 mai 2011 - 18 mars 2009 à 16:52
 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

Pistol_Pete Messages postés 1053 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
18 mars 2009 à 08:27
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
3
Rejoignez-nous