J'utilise la fonction Random. Je ne comprends pas bien son fontionnement.
Je l'utilise dans une méthode d'une classe.
Si je relance la méthode plusieurs fois le random donne le même résultat ...
c'est pas très aléatoire :)
Par contre chaque fois que j'instancie ma classe j'ai un nouveau "tirage".
Il n'y a pas moyen de re-initialiser un random sans tout relancer ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-marc
Vincent wrote:
Bonjour,
J'utilise la fonction Random. Je ne comprends pas bien son fontionnement. Je l'utilise dans une méthode d'une classe. Si je relance la méthode plusieurs fois le random donne le même résultat ... c'est pas très aléatoire :) Par contre chaque fois que j'instancie ma classe j'ai un nouveau "tirage". Il n'y a pas moyen de re-initialiser un random sans tout relancer ? merci
Vincent
Hello,
utilises tu le bon constructeur, c'est à dire celui sans arguments, comme ceci:
private void button1_Click(object sender, EventArgs e) { Random xx = new Random(); MessageBox.Show("Random returns : " + xx.Next()); }
Dans ce cas, cela fonctionne sans problèmes.
A noter qu'il existe un constructeur qui prend en argument le seed (la graine). Si on utilise celui la, lors bien sur on obtient toujours la même séquence.
J'utilise la fonction Random. Je ne comprends pas bien son
fontionnement. Je l'utilise dans une méthode d'une classe.
Si je relance la méthode plusieurs fois le random donne le même
résultat ... c'est pas très aléatoire :)
Par contre chaque fois que j'instancie ma classe j'ai un nouveau
"tirage". Il n'y a pas moyen de re-initialiser un random sans tout
relancer ?
merci
Vincent
Hello,
utilises tu le bon constructeur, c'est à dire celui sans arguments, comme
ceci:
private void button1_Click(object sender, EventArgs e)
{
Random xx = new Random();
MessageBox.Show("Random returns : " + xx.Next());
}
Dans ce cas, cela fonctionne sans problèmes.
A noter qu'il existe un constructeur qui prend en argument le seed (la
graine).
Si on utilise celui la, lors bien sur on obtient toujours la même séquence.
J'utilise la fonction Random. Je ne comprends pas bien son fontionnement. Je l'utilise dans une méthode d'une classe. Si je relance la méthode plusieurs fois le random donne le même résultat ... c'est pas très aléatoire :) Par contre chaque fois que j'instancie ma classe j'ai un nouveau "tirage". Il n'y a pas moyen de re-initialiser un random sans tout relancer ? merci
Vincent
Hello,
utilises tu le bon constructeur, c'est à dire celui sans arguments, comme ceci:
private void button1_Click(object sender, EventArgs e) { Random xx = new Random(); MessageBox.Show("Random returns : " + xx.Next()); }
Dans ce cas, cela fonctionne sans problèmes.
A noter qu'il existe un constructeur qui prend en argument le seed (la graine). Si on utilise celui la, lors bien sur on obtient toujours la même séquence.
> J'utilise la fonction Random. Je ne comprends pas bien son fontionnement. Je l'utilise dans une méthode d'une classe. Si je relance la méthode plusieurs fois le random donne le même résultat ... c'est pas très aléatoire :) Par contre chaque fois que j'instancie ma classe j'ai un nouveau "tirage". Il n'y a pas moyen de re-initialiser un random sans tout relancer ?
Les ordinateurs sont incapables par essence de générer des nombres "aléatoires". Les "générateurs" tels que Random sous .NET ou l'équivalent sous toutes les plateformes et langages du monde ne sont que des algorithmes qui prennent une "graine" comme point de départ et qui créent ensuite une suite qui "semble" aléatoire. Mais à partir d'une même graine tu obtiendras toujours la même série. Cette assurance est intéressante et peut être mise à profit dans certaines circonstances d'ailleurs.
Quand tu dis que tu utilises Random dans "une méthode d'une classe", comme toute méthode est forcément déclarée dans une classe veux tu parler d'une "méthode de classe" (appelée méthode statique sous c#) ? Je suppose que oui. Dans ce cas cela signifie que tu dois créer aussi une variable statique de type Random (initialisée) et que ta méthode doit réutiliser cette instance à chaque appel et non pas recréer une instance de Random à chaque fois.
--
OD___ www.e-naxos.com
> J'utilise la fonction Random. Je ne comprends pas bien son fontionnement.
Je l'utilise dans une méthode d'une classe.
Si je relance la méthode plusieurs fois le random donne le même résultat ...
c'est pas très aléatoire :)
Par contre chaque fois que j'instancie ma classe j'ai un nouveau "tirage".
Il n'y a pas moyen de re-initialiser un random sans tout relancer ?
Les ordinateurs sont incapables par essence de générer des nombres
"aléatoires". Les "générateurs" tels que Random sous .NET ou
l'équivalent sous toutes les plateformes et langages du monde ne sont
que des algorithmes qui prennent une "graine" comme point de départ et
qui créent ensuite une suite qui "semble" aléatoire. Mais à partir
d'une même graine tu obtiendras toujours la même série. Cette assurance
est intéressante et peut être mise à profit dans certaines
circonstances d'ailleurs.
Quand tu dis que tu utilises Random dans "une méthode d'une classe",
comme toute méthode est forcément déclarée dans une classe veux tu
parler d'une "méthode de classe" (appelée méthode statique sous c#) ?
Je suppose que oui.
Dans ce cas cela signifie que tu dois créer aussi une variable statique
de type Random (initialisée) et que ta méthode doit réutiliser cette
instance à chaque appel et non pas recréer une instance de Random à
chaque fois.
> J'utilise la fonction Random. Je ne comprends pas bien son fontionnement. Je l'utilise dans une méthode d'une classe. Si je relance la méthode plusieurs fois le random donne le même résultat ... c'est pas très aléatoire :) Par contre chaque fois que j'instancie ma classe j'ai un nouveau "tirage". Il n'y a pas moyen de re-initialiser un random sans tout relancer ?
Les ordinateurs sont incapables par essence de générer des nombres "aléatoires". Les "générateurs" tels que Random sous .NET ou l'équivalent sous toutes les plateformes et langages du monde ne sont que des algorithmes qui prennent une "graine" comme point de départ et qui créent ensuite une suite qui "semble" aléatoire. Mais à partir d'une même graine tu obtiendras toujours la même série. Cette assurance est intéressante et peut être mise à profit dans certaines circonstances d'ailleurs.
Quand tu dis que tu utilises Random dans "une méthode d'une classe", comme toute méthode est forcément déclarée dans une classe veux tu parler d'une "méthode de classe" (appelée méthode statique sous c#) ? Je suppose que oui. Dans ce cas cela signifie que tu dois créer aussi une variable statique de type Random (initialisée) et que ta méthode doit réutiliser cette instance à chaque appel et non pas recréer une instance de Random à chaque fois.