Comment puis-je régénérer des nombres décimaux aléatoires de -0,0010 à 0,0010 avec php rand()
ou une autre méthode?Comment générer une décimale positive ou négative aléatoire?
Répondre
Divide rand()
par la numer aléatoire maximale, il faut multiplier par la plage et ajoutez le numéro de départ:
<?php
// rand()/getrandmax() gives a float number between 0 and 1
// if you multiply it by 0.002 you'll get a number between 0 and 0.002
// add the starting number -0.001 and you'll get a number between -0.001 and 0.001
echo rand()/getrandmax()*0.002-0.001;
?>
Salut Harmen, je ne sais pas quelle est la raison de ma formule, j'ai trouvé un bug là-bas. il a généré une valeur de -ve 2.plus .. vous avez une idée? merci – davidlee
Je suppose que vous avez trouvé un nombre proche de zéro, comme '-4.7090060121464E-5'. Cela signifie '-4.7 * 10^-5' qui est' -0.000047' – Harmen
.
$val = (rand(0,20)-10)/10000;
Maintenant vous avez vraiment limité à 21 valeurs possibles. Mais peut-être que c'est ce que Benmsia veut ... – VolkerK
ouais. THX. Plus les valeurs générées seront meilleures, mais s'il n'y a pas de solution valide, je m'en tiendrai à cela temporairement jusqu'à ce qu'une nouvelle solution soit trouvée. merci Nathan. – davidlee
Cela renverra tout possible nombre entre -0.001
et +0.001
$random = ((rand()*(0.002/getrandmax()))-0.001)
// or without paranthesis:
$random = rand()*0.002/getrandmax()-0.001
$randselect=rand(0,(array_sum($adarray)*100000000));
$cumilativevalue=0;
foreach ($adarray as $key => $value) {
$cumilativevalue=$cumilativevalue+$value*100000000;
if($randselect<$cumilativevalue){$selectedad=$key;break;}
}
Cela utilise deux appels de rand() mais je pense que la lisibilité le décuple. La première partie fait soit -1 soit +1. La deuxième partie peut être n'importe quoi entre 0 et votre limite pour les nombres +/-.
$rand = (rand(0,1)*2-1)*rand(0, 100);
echo $rand;
À moins que vous avez besoin d'un bon nombre de nombres aléatoires dans une boucle gigantesque, vous aurez probablement même pas remarqué la différence de vitesse. J'ai couru quelques tests (50.000 itérations) et il est arrivé environ 0.0004 millisecondes pour obtenir un nombre aléatoire par ma fonction. Les alternatives sont environ la moitié de ce temps, mais encore une fois, sauf si vous êtes dans une très grande boucle, vous êtes probablement mieux d'optimiser ailleurs.
code de test de vitesse:
$start = microtime();
$loopCount = 50000;
for($i=0;$i<$loopCount;$i++)
{
(0*2-1)*rand(0, 100);
}
$end = microtime();
echo "Timing: ", ((($end-$start)*1000.0)/((float)$loopCount)), " milliseconds.";
- 1. expression régulière positive et une valeur décimale négative en Java
- 2. NHibernate, une colonne deux significations, positive/négative
- 3. PNL: phrase «positive» vs «négative» qualitativement
- 4. Modification d'une valeur positive à une valeur négative
- 5. Produire un flottement aléatoire de la plage négative à la plage positive?
- 6. comment générer une matrice définie positive pseudo-aléatoire avec des contraintes sur les éléments hors-diagonaux?
- 7. Comment puis-je combiner une condition positive et négative dans une regex?
- 8. Générer une branche d'arbre aléatoire
- 9. Définir la couleur int en fonction de la valeur positive ou négative en utilisant CSS
- 10. Ruby, Générer une couleur hexadécimale aléatoire
- 11. Générer une énumération aléatoire en C# 2.0
- 12. Élever un NSDecimalNumber à une puissance négative
- 13. Valeur de contrôle conditionnelle positive par rapport à la valeur négative
- 14. Comment générer pseudo-aléatoire dans cuda
- 15. Comment formater une décimale?
- 16. Comment générer un nombre aléatoire en C#?
- 17. Générer chaîne aléatoire, sans SecureRandom
- 18. Générer un terrain aléatoire dans Blender3D
- 19. Générer un nombre aléatoire avec une longueur de nombre aléatoire dans Objective-C
- 20. générer une valeur aléatoire pour champ d'entrée caché
- 21. Comment une image négative est-elle comprise?
- 22. T-SQL: Comment faire un tour de valeur positive dans la valeur équivalente négative (par exemple, « 10.00 » à « -10,00 »
- 23. Comment générer un nombre aléatoire, puis l'afficher à l'écran?
- 24. Java: Générer un nombre aléatoire avec une distribution logarithmique
- 25. générer un seul nombre aléatoire dans une vue en xcode
- 26. xsl tronquer une décimale
- 27. Comment pouvez-vous générer un JFrame dans un emplacement aléatoire?
- 28. Générer un index aléatoire pour un tableau
- 29. Comment générer un numéro pseudo-aléatoire cryptographiquement sécurisé en C#?
- 30. Comment générer un nombre aléatoire avec des décimales
est pas seulement un espace de 21 chiffres? – Fosco
@Fosco c'est un espace de nombres infinis – Maerlyn