Estoy tratando de producir un flotante aleatorio dentro del rango -50.0 y 50.0 inclusive, usando rand(). He buscado una respuesta en todas partes, pero se trata de ints y% operator.¿Producir flotación aleatoria del rango negativo al positivo?
Respuesta
Prueba esto:
float RandomNumber(float Min, float Max)
{
return ((float(rand())/float(RAND_MAX)) * (Max - Min)) + Min;
}
Prueba esto:
rand()
le da un número entre 0 yRAND_MAX
- así dividir por
RAND_MAX
para obtener un número entre 0 y 1 - desea un rango de -50 a 100 de 50, así que multiplique por 100.0
- finalmente cambie el centro de 50 (entre 0 y 100 por punto 3) a cero restando 50.0
((float)rand())/RAND_MAX * 100.0 - 50.0
Honestamente, todas las respuestas actuales no explican que hay un cambio en la distribución de sus soluciones (estoy asumiendo que rand() sigue la distribución uniforme! corrígeme si estoy equivocado por favor). Utilice una biblioteca por favor, y mi recomendación está usando las nuevas instalaciones en C++ 0x:
#include <random>
#include <functional>
int main()
{
std::mt19937 generator;
std::uniform_real_distribution<float> uniform_distribution(-50.0, 50.0);
auto my_rand = std::bind(uniform_distribution, generator);
}
Si no se puede, Boost es una elección perfecta. De esta manera, se puede utilizar my_rand() al igual que rand buen ol():
std::vector<float> random_numbers(1000);
std::generate(random_numbers.begin(), random_numbers.end(), my_rand);
La pregunta dice que necesita usar 'rand' específicamente. Pero sí, estoy de acuerdo; si la distribución es realmente importante, el impulso parece ser una buena opción. – Maxpm
@Max: más precisamente, la pregunta dice "intentar ... usar rand()"; el OP nunca dijo que era un * requisito *. – Cascabel
@Jefromi Buen punto. Debo estar más privado de sueño que de costumbre. :PAG – Maxpm
- 1. Conversión/cuantificación del rango de flotación al rango entero
- 2. JavaScript Random Positivo o Negativo Número
- 3. Generar flotación aleatoria entre dos carrozas
- 4. Ruby: ¿Cambiar el número negativo al número positivo?
- 5. scikit-learn GMM producir probabilidad registro positivo
- 6. Cálculo de porcentaje negativo y positivo
- 7. ¿Cómo convertir un número negativo a positivo?
- 8. Regex - Combinando lookbehind positivo y negativo
- 9. Recuperar un ángulo positivo o negativo de 3 puntos
- 10. nombres de los campos booleanos positivo o negativo
- 11. cómo cambiar un número positivo a negativo y viceversa?
- 12. dirección de memoria valor positivo o negativo en c?
- 13. número Parse con prefijo positivo/negativo de cadena en java
- 14. Convierta un número negativo a uno positivo en JavaScript
- 15. actualización positivo a un valor negativo en MySQL
- 16. Android: diferencia entre el botón positivo, negativo y neutral
- 17. Seleccione una fecha aleatoria dentro del rango específico
- 18. ¿Cómo implementar hechos relacionados con el falso positivo frente al falso negativo en la red neuronal?
- 19. ¿Cómo obtener un número aleatorio entre un rango de flotación?
- 20. Embalaje de dos pantalones cortos en uno entero, con negativo y positivo
- 21. ¿no hay un operador en c que cambie el signo de un flotación int, etc. de negativo a positivo o viceversa?
- 22. ¿Cómo se calcula el ángulo positivo y el negativo entre dos líneas?
- 23. Generación aleatoria del terreno
- 24. Estadísticas del impacto positivo de TDD/BDD
- 25. Devolver siempre el valor positivo
- 26. ¿Puedo usar NLTK para determinar si un comentario es positivo o negativo?
- 27. Comprobando si un número es positivo o negativo usando operadores bit a bit
- 28. ¿Cómo tener cero negativo siempre formateado como cero positivo en una cadena de python?
- 29. Los métodos de afirmación de JUnit deben formularse en positivo o negativo.
- 30. MySql, ¿cómo puedo agrupar, en una consulta de selección en positivo o negativo?
posible duplicado de [flotador aleatoria C++] (http://stackoverflow.com/questions/686353/c-random-float) –