Générateur de variables aléatoires
Fermé
Duaam
Messages postés
19
Date d'inscription
vendredi 3 octobre 2014
Statut
Membre
Dernière intervention
31 janvier 2016
-
Modifié par Duaam le 6/10/2014 à 21:36
Duaam Messages postés 19 Date d'inscription vendredi 3 octobre 2014 Statut Membre Dernière intervention 31 janvier 2016 - 10 oct. 2014 à 12:52
Duaam Messages postés 19 Date d'inscription vendredi 3 octobre 2014 Statut Membre Dernière intervention 31 janvier 2016 - 10 oct. 2014 à 12:52
A voir également:
- Générateur de variables aléatoires
- Generateur mot de passe - Télécharger - Sécurité
- Canva générateur d'image - Accueil - Outils
- Generateur de cle windows 10 - Guide
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
3 réponses
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
49
7 oct. 2014 à 11:56
7 oct. 2014 à 11:56
Bonjour
Sans rentrer dans les détails que veux-tu dire réellement par des variables aléatoires ? c'est-à-dire faire en sorte que ta variable devienne un des types de variable standard en langage C ou autre ? car, si c'est le cas des variables en langage C tu as
Seconde solution est avec le langage C++ il se peut que tu fasses quelque chose du genre sans rentrer en détails car trop long a expliquer donc voici un exemple tirée de la référence C++11 sur leur site https://en.cppreference.com/w/cpp/language/auto
à bientôt
Sans rentrer dans les détails que veux-tu dire réellement par des variables aléatoires ? c'est-à-dire faire en sorte que ta variable devienne un des types de variable standard en langage C ou autre ? car, si c'est le cas des variables en langage C tu as
autoqui permet de définir un type automatiquement selon ce qui se trouve comme résultat retour dans la variable en question mais par défaut il est du type entier.
Seconde solution est avec le langage C++ il se peut que tu fasses quelque chose du genre sans rentrer en détails car trop long a expliquer donc voici un exemple tirée de la référence C++11 sur leur site https://en.cppreference.com/w/cpp/language/auto
#include <iostream> #include <cmath> #include <typeinfo> template<class T, class U> auto add(T t, U u) -> decltype(t + u) // the return type is the type of operator+(T,U) { return t + u; } auto get_fun(int arg)->double(*)(double) // same as double (*get_fun(int))(double) { switch (arg) { case 1: return std::fabs; case 2: return std::sin; default: return std::cos; } } int main() { auto a = 1 + 2; std::cout << "type of a: " << typeid(a).name() << '\n'; auto b = add(1, 1.2); std::cout << "type of b: " << typeid(b).name() << '\n'; //auto int c; //compile-time error auto d = {1, 2}; std::cout << "type of d: " << typeid(d).name() << '\n'; auto my_lambda = [](int x) { return x + 3; }; std::cout << "my_lambda: " << my_lambda(5) << '\n'; auto my_fun = get_fun(2); std::cout << "type of my_fun: " << typeid(my_fun).name() << '\n'; std::cout << "my_fun: " << my_fun(3) << '\n'; }
à bientôt
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
Modifié par fiddy le 7/10/2014 à 21:46
Modifié par fiddy le 7/10/2014 à 21:46
Attention Duaam, variable aléatoire ne veut rien dire.
De quoi parles-tu ? De valeur aléatoire ? Si oui, de quel type ? Entier ? Nombre ? Caractère ? Mot ?
Ou tu parles de variable avec des types aléatoires ?
Ou autre ?
Sinon, tu veux programmer en C ou en C++ ? (Juste pour confirmation).
Google is your friend
De quoi parles-tu ? De valeur aléatoire ? Si oui, de quel type ? Entier ? Nombre ? Caractère ? Mot ?
Ou tu parles de variable avec des types aléatoires ?
Ou autre ?
Sinon, tu veux programmer en C ou en C++ ? (Juste pour confirmation).
Google is your friend
Duaam
Messages postés
19
Date d'inscription
vendredi 3 octobre 2014
Statut
Membre
Dernière intervention
31 janvier 2016
7 oct. 2014 à 21:47
7 oct. 2014 à 21:47
Salut fiddy !!
Ravie de te revoir :)
Des variables aléatoires de type float !!
Ravie de te revoir :)
Des variables aléatoires de type float !!
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
Modifié par fiddy le 7/10/2014 à 22:17
Modifié par fiddy le 7/10/2014 à 22:17
Salut :-).
Tu as redit variable aléatoire mais tu voulais dire "valeur" j'imagine ?
De plus, tu n'as pas dit si tu voulais programmer en C ou en C ++ ?
C j'imagine ?
Si oui, il suffit de tirer une variable aléatoire avec rand() de diviser par RAND_MAX pour avoir un float (ou double que je te conseille) entre 0 et 1.
Tu as redit variable aléatoire mais tu voulais dire "valeur" j'imagine ?
De plus, tu n'as pas dit si tu voulais programmer en C ou en C ++ ?
C j'imagine ?
Si oui, il suffit de tirer une variable aléatoire avec rand() de diviser par RAND_MAX pour avoir un float (ou double que je te conseille) entre 0 et 1.
Duaam
Messages postés
19
Date d'inscription
vendredi 3 octobre 2014
Statut
Membre
Dernière intervention
31 janvier 2016
7 oct. 2014 à 22:52
7 oct. 2014 à 22:52
:D je vais plus dire variable alèatoire mais valeur alèatoire .
C'est bien ce que j'ai fait
Voici mon nouveau code :
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
// remplissage de la matrice avec des variables alèatoires entre 0 et 10 //
void remplissage (float T[100][100],int n,int m)
{
int i,j;
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
T[i][j] = (float)rand()/RAND_MAX ;
}
}
//calcul des moyennes marginales //
void moy_marg (float M[100][100],float T[100],int *l,int *p)
{
int i,j;float s;
for (i=0;i<*l;i++)
{
s=0;
for (j=0;j<*p;j++)
{
s=s+M[i][j];}
T[i]=s/(*p);}
}
//calcul de la variance //
void var_ecar(float M[100][100],float V[100],float W[100],int *l,int *p)
{
int i,j;
float r,T[100];
for (i=0;i<*l;i++)
{
r=0;
for(j=0;j<*p;j++)
{
r=r+((M[i][j]-T[i])*(M[i][j]-T[i]));
}V[i]=r/(*p);
W[i]=sqrt(V[i]);
}
}
void affichage (float N[100],int c)
{
int i;
for(i=0;i<c;i++)
{
printf("%f \n",N[i]);
}printf("\n");}
void affichagem (float N[100][100],int c,int d)
{
int i,j;
for(i=0;i<c;i++)
{
for(j=0;j<d;j++){
printf("%f\t",N[i][j]);
}
printf("\n");}
}
main()
{
int n,m,i,j; float M[100][100], V[100],T[100],W[100];
system("color 1D");
printf("Donnez les dimensions de votre matrice :\n");
printf("Donnez n=");
scanf("%i",&n);
printf("Donnez m=");
scanf("%i",&m);
srand(time(NULL));
remplissage(M,n,m);
affichagem (M,n,m);
moy_marg(M,T,&n,&m);
system("color 4E");
printf("voici votre vecteur moyennes :\n");
affichage (T,n);
var_ecar (M,V,W,&n,&m);
printf("Voici votre vecteur variance :\n");
affichage (V,n);
system("color 3F");
printf("Voici votre vecteur ecart type :\n");
affichage (W,n);
system("pause");
return 0;
}
Mais :( j'ai entendu parler des lois ,veut dire qu'un générateur de valeurs aléatoires doit suivre une loi normal ou loi de Poisson pour générer des valeurs aléatoires !!!
C'est bien ce que j'ai fait
Voici mon nouveau code :
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
// remplissage de la matrice avec des variables alèatoires entre 0 et 10 //
void remplissage (float T[100][100],int n,int m)
{
int i,j;
for (i=0;i<n;i++)
{
for (j=0;j<m;j++)
T[i][j] = (float)rand()/RAND_MAX ;
}
}
//calcul des moyennes marginales //
void moy_marg (float M[100][100],float T[100],int *l,int *p)
{
int i,j;float s;
for (i=0;i<*l;i++)
{
s=0;
for (j=0;j<*p;j++)
{
s=s+M[i][j];}
T[i]=s/(*p);}
}
//calcul de la variance //
void var_ecar(float M[100][100],float V[100],float W[100],int *l,int *p)
{
int i,j;
float r,T[100];
for (i=0;i<*l;i++)
{
r=0;
for(j=0;j<*p;j++)
{
r=r+((M[i][j]-T[i])*(M[i][j]-T[i]));
}V[i]=r/(*p);
W[i]=sqrt(V[i]);
}
}
void affichage (float N[100],int c)
{
int i;
for(i=0;i<c;i++)
{
printf("%f \n",N[i]);
}printf("\n");}
void affichagem (float N[100][100],int c,int d)
{
int i,j;
for(i=0;i<c;i++)
{
for(j=0;j<d;j++){
printf("%f\t",N[i][j]);
}
printf("\n");}
}
main()
{
int n,m,i,j; float M[100][100], V[100],T[100],W[100];
system("color 1D");
printf("Donnez les dimensions de votre matrice :\n");
printf("Donnez n=");
scanf("%i",&n);
printf("Donnez m=");
scanf("%i",&m);
srand(time(NULL));
remplissage(M,n,m);
affichagem (M,n,m);
moy_marg(M,T,&n,&m);
system("color 4E");
printf("voici votre vecteur moyennes :\n");
affichage (T,n);
var_ecar (M,V,W,&n,&m);
printf("Voici votre vecteur variance :\n");
affichage (V,n);
system("color 3F");
printf("Voici votre vecteur ecart type :\n");
affichage (W,n);
system("pause");
return 0;
}
Mais :( j'ai entendu parler des lois ,veut dire qu'un générateur de valeurs aléatoires doit suivre une loi normal ou loi de Poisson pour générer des valeurs aléatoires !!!
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
7 oct. 2014 à 23:47
7 oct. 2014 à 23:47
Hum, là c'est plus des maths que de la programmation.
C'est à toi de définir ton générateur ?
C'est à toi de définir ton générateur ?
Duaam
Messages postés
19
Date d'inscription
vendredi 3 octobre 2014
Statut
Membre
Dernière intervention
31 janvier 2016
10 oct. 2014 à 12:52
10 oct. 2014 à 12:52
Ouii exactement , mais je sais pas comment faire :(
--
--
Duaam
Messages postés
19
Date d'inscription
vendredi 3 octobre 2014
Statut
Membre
Dernière intervention
31 janvier 2016
7 oct. 2014 à 21:56
7 oct. 2014 à 21:56
Je programme toujours avec le Dev C++ :D
--
--
7 oct. 2014 à 13:43
Merci pour votre réponse :)
À vrai dire ,moi je travaille avec l'environnement Dev C++ et je cherche d'insérer une procédure afin de remplir ma matrice avec des variables aléatoires
Cette procédure doit contenir un générateur qui fonctionne avec la loi de Poisson ou autres lois .
Cdlt
7 oct. 2014 à 21:42
7 oct. 2014 à 23:02
Je n'ai pas été claire Lol je parle du mots-clés auto en langage C
autant pour moi
7 oct. 2014 à 23:05
7 oct. 2014 à 23:20