Augmenter le nombre d'éléments dans un vecteur
Bonjour
je voudrais créer un mouvement brownien, qui possède un grand nombre de points, supérieur à 10^7.
J'ai fait le code suivant:
Code:
1 2 3 4 5
| vector<double> brownien;
for(long i=1;i<pow(10,7.0);i++){
a=brownien[i-1]+pow((double)i/res,0.5)*norm_dist.operator()<boost::lagged_fibonacci19937>(engine);
brownien.push_back(a);
} |
mais dès qu'on passe à 10^8, le programme sature.
Ensuite, je me suis dit qu'on va créer un autre vecteur, à la suite du premier, comme ceci:
Code:
1 2 3 4 5 6 7 8
|
vector<double> brownien2;
brownien2.push_back(brownien[pow(10,7.0)-1]+pow((double)(pow(10,7.0))/res,0.5)*norm_dist.operator()<boost::lagged_fibonacci19937>(engine));
for(long i=pow(10,7.0)+1;i<pow(10,8.0);i++){
a=norm_dist.operator()<boost::lagged_fibonacci19937>(engine);
brownien2.push_back(a);
} |
mais bien sur cela plante, le nombre maximal de pointeurs à été atteint. Alors je ne vois pas du tout comment résoudre le pb. J'aimerais bien passer à 10^9 points, pour faire des calculs.
merci