Désolé de déranger à nouveau, mais comme je suis nouveau C++ j'ai beaucoup de problèmes bizarres et stupides.Génération de nombre aléatoire avec Well44497a en C++
Je programme une méthode MCMC. J'ai lu dans ce forum que le WELL RNG était une bonne alternative pour générer des nombres aléatoires alors j'essaye de le faire fonctionner. Voici donc les questions suivantes:
Je compilant les "Well44497a.c" dans mon C++ projet sans autres modifications. Il a compilé. Est-ce exact ou devrais-je faire un changement?
J'utilise le schéma suivant dans mon code, mais il est juste générer un cycle de 3 RN
RESOLU: Le problème est que InitWELLRNG44497a (état) doit être placé en dehors de la fonction. Je recommençais le générateur chaque fois que je produisais un échantillon. Pour toute la durée, le générateur doit être initialisé une seule fois.
int* sampler(PARAMETERS) { //this function returns a sample
int k;
unsigned int state[1391];
for (k = 0; k < 1391; ++k)
{
state[k] = k;
}
InitWELLRNG44497a(state); //THIS SHOULD GO ON THE CALLER FUNCTION NOT HERE
double value_first = valuate(first_state); // this function valuates one of two possible states
double value_second = valuate(second_state);
double rand_number = WELLRNG44497a()
if(rand_number > value_first/(value_first + value_second))
return second_state;
else
return first_state;
}
Pouvez-vous poster tout votre code? Vous avez seulement montré un appel au RNG. –
merci, j'ai ajouté plus ou moins une base de la fonction. J'espère que c'est plus clair maintenant – Altober