A voir également:
- Random
- Chat random - Accueil - Réseaux sociaux
- Random Java ✓ - Forum Java
- Timer random - Forum Java
- Random. chat - Accueil - Réseaux sociaux
- Random en RUBY ✓ - Forum Ruby
4 réponses
Il y a plusieurs méthodes, selon les contraintes que tu as sur les nombres à générer.
Méthode 1 :
Pour chaque case tu tires un nombre aléatoirement, et tu vérifies qu'il n'a pas déjà été choisi. Si il y a déjà ce nombre il faut recommencer.
Méthode 2 (si on tire un nombre aléatoire parmi des valeurs limitées)
On stocke dans un tableau toutes les valeurs possibles, puis à chaque fois on tire un nombre aléatoire correspondant aux indices du tableau. On utilise le nombre tiré au sort et le retire du tableau.
Méthode 1 :
Pour chaque case tu tires un nombre aléatoirement, et tu vérifies qu'il n'a pas déjà été choisi. Si il y a déjà ce nombre il faut recommencer.
Méthode 2 (si on tire un nombre aléatoire parmi des valeurs limitées)
On stocke dans un tableau toutes les valeurs possibles, puis à chaque fois on tire un nombre aléatoire correspondant aux indices du tableau. On utilise le nombre tiré au sort et le retire du tableau.
bonsoir,
ce code remplis un tableau de taille 5, alors modifie le pour qu'il remplie une matrice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
int Random (int,int);
int Random (int _iMin, int _iMax)
{
return (_iMin + (rand () % (_iMax-_iMin+1)));
}
int main() {
int nombre[5];
int min,max;
printf("donnez le minimum du tableau: ");
scanf("%d",&min);
printf("donnez le maximum du tableau: ");
scanf("%d",&max);
for (int i=0; i<5; i++)
{
nombre[i]= Random (min,max);
}
printf ("\n Tableau genere aleatoirement:\n");
for (int i=0; i<5;i++)
{
printf ("T(%d)= %d ,",i+1,nombre[i]);
}
getch();
return 0;
}
Bonne chance
ce code remplis un tableau de taille 5, alors modifie le pour qu'il remplie une matrice:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
int Random (int,int);
int Random (int _iMin, int _iMax)
{
return (_iMin + (rand () % (_iMax-_iMin+1)));
}
int main() {
int nombre[5];
int min,max;
printf("donnez le minimum du tableau: ");
scanf("%d",&min);
printf("donnez le maximum du tableau: ");
scanf("%d",&max);
for (int i=0; i<5; i++)
{
nombre[i]= Random (min,max);
}
printf ("\n Tableau genere aleatoirement:\n");
for (int i=0; i<5;i++)
{
printf ("T(%d)= %d ,",i+1,nombre[i]);
}
getch();
return 0;
}
Bonne chance
bonsoir
le voila:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
int Random (int,int);
int Random (int min, int max)
{
return (min + (rand () % (max - min+1)));
}
int main() {
int n=0;
while (n<5)
{
printf("donnez la taile du tableau (un nombre supérieur a 5): ");
scanf("%d",&n);
}
int nombre[n];
int min,max;
printf("donnez le minimum du tableau: ");
scanf("%d",&min);
max=min+n*3;
printf("\nle max du tableau sera egal a min+(taile*3) qui vaut = %d\n",max);
nombre[0]= Random (min,max);
for (int i=1; i<n; i++)
{
int test=1;
while(test==1)
{
nombre[i]=Random (min,max);
for(int j=0;j<i;j++)
{
if (nombre[i]==nombre[j])
test=1;
else
test=0;
}
}
}
printf ("\n Tableau genere aleatoirement:\n");
for (int i=0; i<n;i++)
{
printf ("T(%d)= %d ,",i+1,nombre[i]);
}
getch();
return 0;
}
le voila:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
int Random (int,int);
int Random (int min, int max)
{
return (min + (rand () % (max - min+1)));
}
int main() {
int n=0;
while (n<5)
{
printf("donnez la taile du tableau (un nombre supérieur a 5): ");
scanf("%d",&n);
}
int nombre[n];
int min,max;
printf("donnez le minimum du tableau: ");
scanf("%d",&min);
max=min+n*3;
printf("\nle max du tableau sera egal a min+(taile*3) qui vaut = %d\n",max);
nombre[0]= Random (min,max);
for (int i=1; i<n; i++)
{
int test=1;
while(test==1)
{
nombre[i]=Random (min,max);
for(int j=0;j<i;j++)
{
if (nombre[i]==nombre[j])
test=1;
else
test=0;
}
}
}
printf ("\n Tableau genere aleatoirement:\n");
for (int i=0; i<n;i++)
{
printf ("T(%d)= %d ,",i+1,nombre[i]);
}
getch();
return 0;
}
bonjour houssain,
enfaite, le code contient une erreur de logique, si tu le testerai plusieurs fois, tu trouvera des valeurs répétées.
voila la correction exacte cette foie:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
int Random (int,int);
int Random (int min, int max)
{
return (min + (rand () % (max - min+1)));
}
int main() {
int n=0;
while (n<5)
{
printf("donnez la taile du tableau (un nombre supérieur a 5): ");
scanf("%d",&n);
}
int nombre[n];
int min,max;
printf("donnez le minimum du tableau: ");
scanf("%d",&min);
max=min+n*2;
printf("\nle max du tableau sera egal a min+(taile*2) qui vaut = %d\n",max);
nombre[0]= Random (min,max);
for (int i=1; i<n; i++)
{
int test=1;
while(test==1)
{
test=0;
nombre[i]=Random (min,max);
for(int j=0;j<i;j++)
{
if (nombre[i]==nombre[j])
test=1;
}
}
}
printf ("\n Tableau genere aleatoirement:\n");
for (int i=0; i<n;i++)
{
printf ("T(%d)= %d ,",i+1,nombre[i]);
}
getch();
return 0;
}
enfaite, le code contient une erreur de logique, si tu le testerai plusieurs fois, tu trouvera des valeurs répétées.
voila la correction exacte cette foie:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
int Random (int,int);
int Random (int min, int max)
{
return (min + (rand () % (max - min+1)));
}
int main() {
int n=0;
while (n<5)
{
printf("donnez la taile du tableau (un nombre supérieur a 5): ");
scanf("%d",&n);
}
int nombre[n];
int min,max;
printf("donnez le minimum du tableau: ");
scanf("%d",&min);
max=min+n*2;
printf("\nle max du tableau sera egal a min+(taile*2) qui vaut = %d\n",max);
nombre[0]= Random (min,max);
for (int i=1; i<n; i++)
{
int test=1;
while(test==1)
{
test=0;
nombre[i]=Random (min,max);
for(int j=0;j<i;j++)
{
if (nombre[i]==nombre[j])
test=1;
}
}
}
printf ("\n Tableau genere aleatoirement:\n");
for (int i=0; i<n;i++)
{
printf ("T(%d)= %d ,",i+1,nombre[i]);
}
getch();
return 0;
}
#include<stdlib.h>
void main()
{int M[3][3];
int i,j,x;
printf(" Donnez le max des nombres aleatoires");
scanf("%d",&x);
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
{
M[i][j]= (rand()%x)+(1*x);
}
}
for (i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%7d", M[i][j]);
printf("\n");
}
}