Comment éviter deux même valeurs sur une même ligne
sofuBolivie
-
billx09 Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
billx09 Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai une matrice R de 30 lignes 5 colones, de chiffres tirés au hasard entre 1 et 30.
Je souhaiterai ne pas avoir de répétition de chiffres dans mes lignes.
C'est à dire sur une même ligne, je ne veux pas avoir deux fois le même chiffre.
donc j'ai fait une boucle, et j'ai dit si j'ai deux fois la même valeur sur la même ligne, alors je veux une autre valeur entre 1 et 30.
voici mon code qui ne marche pas encore,
R = unidrnd (30,30,5);
for k = 1:30;
for i=1:5;
for j=1:5;
j ~= i;
if R(k,i) == R(k,j);
R(k,i)= unidrnd (30,1,5);
else
return
end
end
end
end
Si vous avez des idées.
Merci beaucoup
sophie
J'ai une matrice R de 30 lignes 5 colones, de chiffres tirés au hasard entre 1 et 30.
Je souhaiterai ne pas avoir de répétition de chiffres dans mes lignes.
C'est à dire sur une même ligne, je ne veux pas avoir deux fois le même chiffre.
donc j'ai fait une boucle, et j'ai dit si j'ai deux fois la même valeur sur la même ligne, alors je veux une autre valeur entre 1 et 30.
voici mon code qui ne marche pas encore,
R = unidrnd (30,30,5);
for k = 1:30;
for i=1:5;
for j=1:5;
j ~= i;
if R(k,i) == R(k,j);
R(k,i)= unidrnd (30,1,5);
else
return
end
end
end
end
Si vous avez des idées.
Merci beaucoup
sophie
A voir également:
- Comment éviter deux même valeurs sur une même ligne
- Partager photos en ligne - Guide
- Comment faire deux colonnes sur word - Guide
- Deux compte whatsapp sur le même téléphone samsung - Guide
- Éviter pub youtube - Accueil - Streaming
- Mètre en ligne - Guide
2 réponses
A mon avis, le plus simple est de faire un vecteur de 1 à 30, de tirer une des valeurs au pif et de l'enlever de ton veteur et ainsi de suite.
genre pour une ligne:
values = 1:30;
for n=30:-1:26
[...]
idx = randi(n,1);
val = values(idx);
values(idx) = [];
[...]
end
C'est pas très esthétique mais ça doit marcher.
genre pour une ligne:
values = 1:30;
for n=30:-1:26
[...]
idx = randi(n,1);
val = values(idx);
values(idx) = [];
[...]
end
C'est pas très esthétique mais ça doit marcher.