Bonjour
Je requiers votre aide pour m'aider à optimiser un programme, car je ne vois pas comment faire.
Mon programme lit d'abord dans un fichier des données :
Ici il y a donc 8 lignes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 0.15 0.12 0.32 0.25 0.09 0.078 0.11 0.001 0.13 0.1 0.07 0.008 0.09 0.01 0.04 0.02
Ensuite je vais générer des nombres aléatoires, qui vont être stockés dans un vecteur ayant donc 8 coordonnées:
(ce n'est pas exactement RB(i)=rand(0) qui est effectué, il y a une opération avec les nombres lus dans le fichier, mais c'est juste pour donner une idée)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 do i=1,8 RB(i)=rand(0) end do
Le truc est que je ne garde le RB que si les RB(i) vérifie une certaine condition (à savoire si les RB(i) sont inférieurs et supérieurs à certains nombres). Du coup si la condition n'est pas vérifiée, je recommence le tirage de nombres aléatoires, et rebelote jusqu'à ce que la condition soit vérifiée.
Mon problème vient du temps d'execution du programme. Pour 8 lignes de données, le calcul de RB prend entre 0 seconde et 1min30s. Pour 10 lignes, cela met entre 0s et 15min. Pour 100 lignes mon ordi n'arrive pas à me calculer un RB dans un temps raisonnable. Et le but de mon programme est d'avoir 4000 lignes...
Avez-vous une idée pour accélérer le programme?
Merci beaucoup de votre aide.
Partager