Comment puis-je générer un nombre aléatoire dans MATLAB entre 13 et 20 ?
Est-ce que n = 13 + (rand(1) * 7) donne des entiers pseudo-aléatoires uniformément distribués ?
Comment puis-je générer un nombre aléatoire dans MATLAB entre 13 et 20 ?
Est-ce que n = 13 + (rand(1) * 7) donne des entiers pseudo-aléatoires uniformément distribués ?
@crowso Pas du tout en fait. Les valeurs 13 et 20 auront la moitié de la probabilité des autres. Utilisez ceci pour voir ce que je veux dire : hist(round(13 + (rand(1, 10000) * 7)), 8)
.
http://www.mathworks.com/help/techdoc/ref/rand.html
n = 13 + (rand(1) * 7);
N'est pas dans l'intervalle [min, max] et n'est pas non plus uniformément distribué, ce qui est implicitement impliqué par la question.
Le module est en général difficile à prévoir et difficile à utiliser pour la génération de nombres aléatoires. En général, il est facile de se retrouver dans un modèle non aléatoire. Il est préférable d'utiliser rand
@knedlsepp : Pour des raisons de généralité, je mentionne min pour 13, et max pour 20 (c'est implicite ! peut-être est-il préférable d'éditer la question à min et max). Pourriez-vous indiquer quelle est la distribution de probabilité du résultat ?
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Duplicata possible de MATLAB génère des nombres aléatoires
2 votes
Duplicata possible de Existe-t-il un moyen dans Matlab d'utiliser le générateur de pseudo-nombres pour générer des nombres dans une plage spécifique ?
0 votes
Cela nécessite plus d'informations : ..... Voulez-vous qu'elles soient continues entre [13, 20] ? L'intervalle est-il [13, 20] ou (13, 20), etc. Doivent-ils avoir la même probabilité ? Avez-vous une distribution en tête ?