L'amélioration de la qualité de la génération de nombre aléatoire dans l'intervalle Qt 5.3

Je suis actuellement à la mise en œuvre d'un générateur de nombre aléatoire dans Qt5.3 dans le cadre de l'algorithme génétique des expériences. J'ai essayé plusieurs méthodes mais la meilleure semble être:

  //Seed the random generator with current time
  QTime time = QTime::currentTime();
  qsrand((uint)time.msec());

Et puis cette fonction pour générer les nombres aléatoires:

int MainWindow::getRandomNo(int low, int high)
{
    return qrand() % ((high + 1) - low) + low;
}

En raison de la nature de ces expériences, la nature aléatoire de ces nombres est important. Est-il un moyen d'améliorer la qualité de l'aléatoire nombre d'échantillons? Après l'analyse statistique, l'intervalle Qt générateur de nombre aléatoire typiques de modèles que l'on trouve dans les anciens systèmes de génération de nombre aléatoire.

La méthode utilisée ci-dessus repose sur l'heure actuelle comme une graine pour le générateur de nombre. Est-il un moyen pour améliorer les semences de sorte que les séquences aléatoires sont moins sujettes à des schémas? Je vous serais extrêmement reconnaissant pour toute aide.

  • Aucune raison de ne pas utiliser <random> ? Il est beaucoup plus robuste.
  • Il semble souffrir de la même motif de questions - presque prévisible étant donné un échantillon suffisamment grand de taille.
  • Chaque GÉNÉRATEUR est prévisible, avec un "assez grand" la taille de l'échantillon. Mais "assez grand" est loin d'être possible avec de bons algorithmes. Avez-vous regarder encore disponibles? cplusplus.com/reference/random
  • Cette application est une simulation de l'évolution des processus et en tant que telle sera plus efficace, la plus aléatoire l'entrée. Les générateurs de nombres aléatoires que vous avez mentionnés sont fantastiques, mais c'est le problème, ils sont trop bon. Les séquences aléatoires générés sont tous beaucoup trop étendre uniformément pour être d'une quelconque utilité. Ce qui est nécessaire est un système qui permet de générer une véritable séquence aléatoire. La seule chose qui est même venu près d'un matériel générateur de nombre aléatoire. Jusqu'à présent, le meilleur que j'ai trouvé est l'intervalle Qt dans ma question, à l'aide de l'horloge comme une graine.
  • Il n'y a pas une telle chose comme un générateur de nombres aléatoires qui est "trop bon". Mersenne Twister sera de vous fournir n'importe quelle séquence de nombres avec (presque) la même probabilité. Même une séquence telle que 0 - 0 - 0 - 0 - 0
  • trop uniformément répartie" est une propriété de la "vraie séquence aléatoire". Ou pensez-vous que "la vraie séquence aléatoire" doit avoir un certain modèle en elle?
  • Je soupçonne que vous avez besoin d'une distribution non uniforme, ce qui est également fourni par <random>.
  • Merci beaucoup pour toutes les réponses. Je comprends la confusion sur ce que je demande, c'est difficile de transmettre le problème exact sans quelques connaissances de base des Gaz!

InformationsquelleAutor Adam893 | 2014-10-03