[Batch] Un random définit ?
Résolu
Delzur
-
LeXPlai3RmAx -
LeXPlai3RmAx -
A voir également:
- Batch random
- Fichier batch - Guide
- Batch converter - Télécharger - Photo & Graphisme
- Batch renommer une partie du nom de plusieurs fichiers ✓ - Forum Autoit / batch
- Color batch - Forum Autoit / batch
- Batch picture resizer - Télécharger - Divers Photo & Graphisme
12 réponses
Salut,
si ça t'interesse encore,
set /a n="%random%%5"
génère un nombre compris entre 0 et 4. Pour fixer le minimum a 2 par exemple, additionne simplement 2 à n, et réajuste le diviseur (5 ici).
Pour générer un nom entre 2 et 4, tu va taper ceci :
set /a n="%random%%3+2"
Plus généralement, tu va donc utiliser la formule : "%random%%x+y"
Où y= valeur min et
x = valeur max -y + 1
Si je ne me trompe pas...
Bon courage.
si ça t'interesse encore,
set /a n="%random%%5"
génère un nombre compris entre 0 et 4. Pour fixer le minimum a 2 par exemple, additionne simplement 2 à n, et réajuste le diviseur (5 ici).
Pour générer un nom entre 2 et 4, tu va taper ceci :
set /a n="%random%%3+2"
Plus généralement, tu va donc utiliser la formule : "%random%%x+y"
Où y= valeur min et
x = valeur max -y + 1
Si je ne me trompe pas...
Bon courage.
voici mon code qui génre aléatoirement entre 0 1 2
il faut 3% pour qu'il s'excute c'est pas juste %random% ou %random%% il faut %random%%%
je sais pas pk mais ça marche %leul% :d
Bon courage
@echo off set /a n=%random%%%3 echo %n% pause
il faut 3% pour qu'il s'excute c'est pas juste %random% ou %random%% il faut %random%%%
je sais pas pk mais ça marche %leul% :d
Bon courage
Pour résoudre tout les problème voici un script qui demande le maximum le minimum pour générer un nombre aléatoire.
Maintenant pour l'adapter a n'importe quels nombres remplacez x par le maximum et y par le minimum
@+, en espérant avoir été utile a quelqu'un et merci à blackaagony pour sa réponse qui m'a aidée a écrire ce script
@ECHO off SET /p max=max ^> SET /p min=min ^> SET /a m=%max% SET /a mi=%min% SET /a n=%mi% SET /a x=%mi% + 1 SET /a x=%m% - %x% SET /a nb=%random% %% %x%+%n% ECHO %nb% PAUSE EXIT
Maintenant pour l'adapter a n'importe quels nombres remplacez x par le maximum et y par le minimum
SET /a m=x SET /a mi=y SET /a n=%mi% SET /a x=%mi% + 1 SET /a x=%m% - %x% SET /a nb=%random% %% %x%+%n% ECHO %nb%
@+, en espérant avoir été utile a quelqu'un et merci à blackaagony pour sa réponse qui m'a aidée a écrire ce script
Salut avec ton code tu va faire tourner l'ordi comme un porc jusqu'à ceux qui trouve un nombre entre 0 et 2.
Alors que comme ça, c'est beaucoup mieux:
Bilou.
Alors que comme ça, c'est beaucoup mieux:
@echo off set /a random2=%random%%%3 echo %random2% pause
Bilou.
Oui, merci, je m'en suis aperçu après ^^
sur le coup, j'ai fait attention qu'aux étiquettes :S (j'en suis fou, je les adore ... c'est con mais c'est comme ça)
bref, je l'ai remodifié, le but étant de générer un nombre entre 0 et 50 un certain nombre de fois (qui n'est pas défini)
et je m'en suis sorti avec ça
@echo off
:un
set /a n=%random%%%50
echo %n%
pause
goto un
sur le coup, j'ai fait attention qu'aux étiquettes :S (j'en suis fou, je les adore ... c'est con mais c'est comme ça)
bref, je l'ai remodifié, le but étant de générer un nombre entre 0 et 50 un certain nombre de fois (qui n'est pas défini)
et je m'en suis sorti avec ça
@echo off
:un
set /a n=%random%%%50
echo %n%
pause
goto un
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour des nombres entre 0 et 9 ou 1 et 10 essaye ca
Et pour des nombres entre 0 et 99 ou 1 et 100 essaye ca
Et pour des nombres entre 0 et n essaye
Et enfin pour des nombres entre 1 et n essaye enfin ce dernier code
Je pense que j'ai tout explique
Je me demande pourquoi ca ne marche pas avec 2 % ca fait pas le resultat voulu mais avec 3 % ca marche
@echo off set nombre=%random:~-1% rem Si tu veux un nombre entre 1 et 10 la ligne suivante va etre utile set /a nombre=nombre+1
Et pour des nombres entre 0 et 99 ou 1 et 100 essaye ca
@echo off set nombre=%random:~-2% if %nombre:~0,-1%==0 set nombre=%nombre:~1% rem Si tu veux un nombre entre 1 et 100 la ligne suivante va etre utile set /a nombre=nombre+1
Et pour des nombres entre 0 et n essaye
@echo off rem %n% est le maximum set /a n=n+1 set /a nombre=%random%%%n
Et enfin pour des nombres entre 1 et n essaye enfin ce dernier code
@echo off rem %n% est le maximum set /a nombre=%random%%%n set /a nombre=nombre+1
Je pense que j'ai tout explique
Je me demande pourquoi ca ne marche pas avec 2 % ca fait pas le resultat voulu mais avec 3 % ca marche
en fait je cherche un nombre aléatoire entre 0-2
et je préçise que je le souhaite
entier
avec 0 et 2 inclus !
et je préçise que je le souhaite
entier
avec 0 et 2 inclus !
Salut j'ai éssayé ton code mais j'avoue que j'ai pas compris... en fait ça reviens a un truc genre n=%random%*3 non ?
voila si tu pouvais m'expliquer un peu plus ^^
Merci
voila si tu pouvais m'expliquer un peu plus ^^
Merci
tu aurais pu aussi faire un code du genre
@echo
:un
set a=%random%
if %a%=0 goto deux
if %a%=1 goto deux
if %a%=2 goto deux
goto un
:deux
echo %a%
echo.
pause
meme si je repond un peu tard sa peut toujours servir a quelqu'un ^^
@echo
:un
set a=%random%
if %a%=0 goto deux
if %a%=1 goto deux
if %a%=2 goto deux
goto un
:deux
echo %a%
echo.
pause
meme si je repond un peu tard sa peut toujours servir a quelqu'un ^^
il y a quelques fautes dans le code de kikinou.
Code corrigé :
Voila parce que sinon ça plante.
Sinon merci c'est exactement ce qui me fallait ! (même si ce code met un moment avant de tomber sur un des trois chiffres)
Code corrigé :
@echo off :un set a=%random% if %a%==0 goto deux if %a%==1 goto deux if %a%==2 goto deux goto un :deux echo %a% echo. pause
Voila parce que sinon ça plante.
Sinon merci c'est exactement ce qui me fallait ! (même si ce code met un moment avant de tomber sur un des trois chiffres)