VB 2005 Express
Comment faire pour sortir un uniquement un nombre pair avec un random ?
posYgauche = CInt(Int((80 - 44 + 1) * Rnd() + 1))
En fait, j'ai besoin de multiple de 4 !
44, 48, 92, ...etc
Merci à l'avance,
A+
 un nombre pair en random?
 un nombre pair en random?
				
				
						
							
							
						
						
				VB 2005 Express
Comment faire pour sortir un uniquement un nombre pair avec un random ?
posYgauche = CInt(Int((80 - 44 + 1) * Rnd() + 1))
En fait, j'ai besoin de multiple de 4 !
44, 48, 92, ...etc
Merci à l'avance,
A+
 
			
			






 
			
			 
 

 
 
				
				
						
						
				Si tu veux avoir que des nombres pairs, il suffit de tirer un nombre aléatoire dans une fenêtre 2 fois plus petite et multiplier le nombre tiré par 2.
 fenêtre plus petite ?
 fenêtre plus petite ?
				
				
						
						
				Que voulez-vous dire par fenêtre plus petite ?
 
 
				
				
						
						
				Essaye avec ca, j'ai pas testé mais ca pourrait t'aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
 
 
				
				
						
						
				Mais non pour savoir si c'est pair, il faut vérifier si ce nombre est congru à 0 [2] :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+
+
=
Ne pas oublier le Tag!
 
 
				
				
						
						
				merci, je test ca et je vous en redonne des nouvelles !
 
 
				
				
						
						
				Pourquoi multiplier par deux et pas juste ajouter 1 ... sinon on aurai un nombre qui pourrai être en dehors de l'intervalle souhaitée ...
Après, si le nombre +1 est en dehors des valeurs souhaités, on fait juste -1 à la place ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
 
 
				
				
						
						
				
			Qui ne tente rien n'a rien !
Ce qui ne nous tue pas nous rends plus fort !!
Mon projet ZELDA en C++/Allegro
http://www.tutoworld.com - Le Forum -
Mes ressources Dotnet (cours, sources, tutos)
--------------------------------------------
+
+
=
Ne pas oublier le Tag!
 le résultat du test * 2
 le résultat du test * 2
				
				
						
						
				ext = NombrePair
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim Nombre As Integer = CInt(Int((80 - 44 + 1) * Rnd() + 1)) 'récupère le nombre aléatoire Dim NombrePair As Integer If Not Nombre Mod 2 = 0 Then 'si c'est impair NombrePair = Nombre * 2 'on le multiplie par 2 Else 'sinon NombrePair = Nombre 'c'est bon End If TextBox1.T
End Sub
************************************
cela sort des nombres pair ... super !, mais ca sort en dehors du "range" entre 44 et 80 seulement!
*************************************
Je vais tester avec l'autre méthode du + 1 et -1
Je vous reviens !
 c'est pair ...mais ?
 c'est pair ...mais ?
				
				
						
						
				Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Nombre As Integer = CInt(Int((80 - 44 + 1) * Rnd() + 1)) 'récupère le nombre aléatoire
Dim NombrePair As Integer
If Not Nombre Mod 2 = 0 Then 'si c'est impair
NombrePair = Nombre + 1
Else 'sinon
NombrePair = Nombre 'c'est bon
End If
TextBox1.Text = NombrePair
End Sub
*************************
Ca sort toujours du "range" souhaité ?, mais ca sort des nombres pair aussi
Pourquoi il ne tiens plus compte du minimum et maximum que je lui demande ?
 
 
				
				
						
						
				et puis un truc du genre devrais toujours marcher
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
9
10
11
12
13
ps. megaben tu peut utiliser les balises CODE pour donner un meilleur aspect à ton code ...
 
 
				
				
						
						
				C'est cette partie qui va pas:
Remplace par
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim Nombre As Integer = CInt(Int((80 - 44 + 1) * Rnd() + 1))
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim Nombre As Integer = CInt(Int((80 - 44 + 1) * Rnd() + 44))
 
 
				
				
						
						
				Tiens normalement ca marche j'ai testé :
Et pour ton multiple de 4 tu fait appel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 
2
3
4
5
6
7
8
Code : Sélectionner tout - Visualiser dans une fenêtre à part GetMaValeur(4, 44, 88)
 
 
				
				
						
						
							
						
				Merci,
je venais de trouver mon erreur sur Google
Tout fonctionne bien
encore merci
A+
Partager