repetir rango randomize numeros generar funcion decimales arreglo aleatorios c++ random numbers largenumber

c++ - rango - randomize en c



C++ Número aleatorio de 1 a un número muy grande(por ejemplo, 25 millones) (2)

¿Cómo crearías una función que generara un número aleatorio de 1 a 25 millones?

He pensado en usar rand() pero ¿estoy en lo cierto al pensar que el número máximo, RAND_MAX es = 32000 (alrededor)?

¿Hay alguna forma de evitar esto, una forma que no reduzca la probabilidad de elegir números muy bajos y no aumente la probabilidad de elegir números altos / medios?

Editar: el método de @Jamey D funcionó perfectamente independiente de Qt.


Echa un vistazo a ran3

http://www.codeforge.com/read/33054/ran3.cpp__html

Debería poder obtener lo que quiere de él.

Ran3 es (al menos cuando todavía estaba haciendo modelos computacionales) más rápido que rand () con una distribución más uniforme, aunque eso fue hace varios años. Devuelve un valor entero aleatorio.

Por ejemplo, obtener el código fuente del enlace de arriba:

int main() { srand(time(null)); int randomNumber = ran3(rand()) % 25000000; int nextRandomNumber = ran3(randomNumber); }


Podría (debería) usar el nuevo C ++ 11 std::uniform_real_distribution

#include <random> std::random_device rd; std::mt19937 gen(rd()); std::uniform_real_distribution<> distribution(1, 25000000); //generating a random integer: double random = distribution(gen);