Bug pour ce code de simulation
Bonjour,
Je suis un vrai débutant en C++ et là je suis entrain d'écrire un code pour simuler différentes lois de probas dont je dois récupérer les différentes valeurs dans des vecteurs. Finalement j'ai trouvé sur le net comment faire. sauf qu'à l'exécution du code j'ai une fenêtre vide. en gros ça marche pas :cry:. Aidez moi à trouver l'erreur.
Merci d'avance
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
#include <iostream>
#include <stdio.h>
#include<time.h>
#include<cstdlib>
#include<math.h>
using namespace std;
//Creation d'une fonction qui renvoie une loi uniforme sur [0,1]
double uni()
{
return(rand()/((double)RAND_MAX+1));
}
// Fonction de génération géometrique généralisée
int geogen( double a,double theta){
int k;
int p;
int q;
double u;
u=uni();
int result;
p=1-a*theta;
k=1;
q=p+a*pow(theta,k)*(1-theta);
if(u<p){
result=0;
}
else {
while((u>q)){
q=p+a*pow(theta,k)*(1-theta);
p=q;
k=k+1;
result=k;
}
}
return result;
}
//Fonction de génération Pareto
int Pareto(double x,double alpha)
{
double r;
int result;
r = uni();
result = x*pow(1/(1-r),(1/alpha));
return result;
}
//Fonction pour simuler Géométrique Généraliséé
int *Creation_vecteur(int n)
{
int *vecteur;
// Allocation de n pointeurs pour stocker n int
vecteur=(int*)malloc(n * sizeof(int*));
return vecteur;
}
int *SimulGeoGen(int n)
{
//srand(time(NULL));
int *vecteur;
vecteur=Creation_vecteur(n);
int i;
for(i=0;i<n;i++)
{
vecteur[i]=geogen(0.51,0.98);
//cout<<vecteur[i]<<endl;
}
return vecteur;
}
int *SimulPareto(int n)
{
//srand(time(NULL));
int i;
int *vecteur;
vecteur=Creation_vecteur(n);
for (i=0;i<n;i++)
{
vecteur[i]=Pareto(100,2.3);
//cout<<vecteur[i]<<endl;
}
return vecteur;
}
int main()
{
int i;
int *VectPareto;
int *VectGG;
srand(time(NULL));
VectPareto=SimulPareto(10);
VectGG=SimulGeoGen(10);
cout<<"PARETO"<<endl;
for (i=0;i<10;i++)
{
cout<<VectPareto[i]<<endl;
}
cout<<"GEOMETRIQUE GENERALISEE"<<endl;
for (i=0;i<10;i++)
{
cout<<VectGG[i]<<endl;
}
for (i=1;i<20;i++)
{
free((int*)VectGG[i]);
}
free(VectGG);
for (i=0;i<20;i++)
{
free((int*)VectPareto[i]);
}
free(VectPareto);
} |