Random
Fermé
houssain1991
Messages postés
10
Date d'inscription
lundi 18 février 2013
Statut
Membre
Dernière intervention
15 mai 2013
-
18 févr. 2013 à 20:51
walidovich_85 Messages postés 608 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 25 octobre 2015 - 20 févr. 2013 à 03:03
walidovich_85 Messages postés 608 Date d'inscription mardi 12 janvier 2010 Statut Membre Dernière intervention 25 octobre 2015 - 20 févr. 2013 à 03:03
A voir également:
- Random
- Wow random ✓ - Forum Jeux vidéo
- Random pascal - Forum Pascal
- Random en c++ - Forum C++
- Random en c ✓ - Forum C
- Random password - Télécharger - Sécurité
4 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
18 févr. 2013 à 21:01
18 févr. 2013 à 21:01
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.
walidovich_85
Messages postés
608
Date d'inscription
mardi 12 janvier 2010
Statut
Membre
Dernière intervention
25 octobre 2015
73
18 févr. 2013 à 21:18
18 févr. 2013 à 21:18
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
houssain1991
Messages postés
10
Date d'inscription
lundi 18 février 2013
Statut
Membre
Dernière intervention
15 mai 2013
18 févr. 2013 à 21:25
18 févr. 2013 à 21:25
merci walid mais moi je veut que les nombres du matrice ne se répéte pas aussi
walidovich_85
Messages postés
608
Date d'inscription
mardi 12 janvier 2010
Statut
Membre
Dernière intervention
25 octobre 2015
73
18 févr. 2013 à 21:45
18 févr. 2013 à 21:45
ahh ok, je vien de comprendre.
alors tu n'a qu'à introduire une "while" et une "for".
une for pour remplir ts les nombres, et une while pr ne prendre qu'un nombre différent de ts les autres déja rempli.
si tu n'y arrive pas, laisse un message, et je passerai au code.
alors tu n'a qu'à introduire une "while" et une "for".
une for pour remplir ts les nombres, et une while pr ne prendre qu'un nombre différent de ts les autres déja rempli.
si tu n'y arrive pas, laisse un message, et je passerai au code.
houssain1991
Messages postés
10
Date d'inscription
lundi 18 février 2013
Statut
Membre
Dernière intervention
15 mai 2013
18 févr. 2013 à 21:57
18 févr. 2013 à 21:57
si tu veut s'il vous plait me donner le bout du code sa serai vraiment gentil de ta part
walidovich_85
Messages postés
608
Date d'inscription
mardi 12 janvier 2010
Statut
Membre
Dernière intervention
25 octobre 2015
73
18 févr. 2013 à 22:13
18 févr. 2013 à 22:13
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;
}
houssain1991
Messages postés
10
Date d'inscription
lundi 18 février 2013
Statut
Membre
Dernière intervention
15 mai 2013
18 févr. 2013 à 22:56
18 févr. 2013 à 22:56
merci Walid c est trés gentil :)))
walidovich_85
Messages postés
608
Date d'inscription
mardi 12 janvier 2010
Statut
Membre
Dernière intervention
25 octobre 2015
73
20 févr. 2013 à 03:03
20 févr. 2013 à 03:03
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;
}
18 févr. 2013 à 21:06
18 févr. 2013 à 21:11
18 févr. 2013 à 21:11
#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");
}
}