Bonjour à vous tous;
Je suis entrain d'écrire un petit programme qui génère un chiffre aléatoire. Le principe est de donné un chiffre quelconque "m", voir sur combien de bits il s'écrit "n", générer des bits aléatoires correspondant à la valeur de "n". Ensuite on compare la séquence trouvée avec le chiffre "m". Si le nombre trouvé "a" est supérieur à "m", on recommence l'opération jusqu'à trouver un nombre inférieur.
Mon problème réside ici, je n'arrive pas à boucler mon programme. J'ai créé une méthode nombreAlea qui va faire le calcule du nombre "a" et une méthode bitAlea qui donne la séquence de bits aléatoire.
Merci pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 namespace ConsoleApplication1 { static class NombreAleatoire { private static int[] rndBit; private static int k; private static double a; public static void nombreAlea(double m) { double n = Math.Truncate(Math.Log(m,2)) + 1; k = (int)n; found : bitAlea(); for (int i = 0; i < n; i++) { a = a + (rndBit[i]*Math.Pow(2, (n-1) - i)); } if (a >= m) { goto found; } TextBuffer.Add(a.ToString()); TextBuffer.Display(); } private static void bitAlea() { #region Génération des bits aléatoires Random rndBits = new Random(); rndBit = new int[(int)k]; for (int nbr = 0; nbr < k; nbr++) { rndBit[nbr] = rndBits.Next(2); TextBuffer.Add(rndBit[nbr].ToString()); } #endregion } } }![]()
Partager