[C ++] breves notas - para generar números aleatorios

lenguaje C tiene una función de los datos al azar puede ser generada, para agregar los siguientes encabezados:

#include<stdlib.h>
#include<time.h>

Además hay que añadir al principio de la función main

srand((unsigned)time(NULL));//生成随机数的种子

Srand que se utiliza para inicializar la semilla aleatoria.
A continuación, utilice la función rand cuando sea necesario el uso de números aleatorios.
El siguiente es un código para la generación de un número aleatorio:

#include <cstdio>
#include <time.h>
#include<stdlib.h>
int main()
{
	srand((unsigned)time(NULL));
	for (int i = 0; i < 10; i++)
	{
		printf("%d ", rand());
	}
	return 0;
}

Se hace notar que: rand () función sólo dan [0, RAND_MAX] entero en el intervalo , (y RAND_MAX stdlib.h es una constante en el valor diferente entorno de sistema de esta constante es diferente), por lo que si desea a la salida de un intervalo dado [a, b] en el número aleatorio, rand requerida ()% (b-a + 1) + a.
Pero tales secciones de extremo izquierdo y derecho por no más que el número aleatorio RAND_MAX eficaz, si la necesidad de generar un número mayor, puede generar un aleatorias veces número rand con operación de bit de empalme (o multiplicada), pueden ser seleccionados al azar de cada uno de un valor digital y, a continuación, empalmado en un entero grande,Otra idea: generar a [0, RAND_MAX] utilizando el número aleatorio en el rango RAND (), entonces el número aleatorio obtenido dividiendo RAND_MAX un número de coma flotante en el intervalo [0,1], la de punto flotante se multiplican y finalmente una longitud en el intervalo de b-a + 1, además de una lata, es decir,

(int)((double)rand()/32767*(b-a+1)+a)//32767为该环境下的RAND_MAX

(Todo el contenido de la anterior es tomada "Notas algoritmo")

Publicado 43 artículos originales · ganado elogios 4 · Vistas 1211

Supongo que te gusta

Origin blog.csdn.net/weixin_42176221/article/details/101772706
Recomendado
Clasificación