En la vida diaria, a menudo se encuentran números aleatorios, y es muy simple perder los dados, agarrar y robar. Por lo tanto, en programación, realmente no es fácil diseñar un número aleatorio a través de su propio programa. Ahora, una gran cantidad de sistema operativo
kernel proporcionará la api correspondiente, estos parámetros en bruto son para que alguna computadora ejecute información en bruto, como memoria, voltaje, señales físicas, etc., su valor puede garantizarse en un período de tiempo La unica cosa Ok, no voy a hablar sin sentido. Shell scripts ¿Tenemos esos métodos para obtener números al azar? Primero, obtenga números aleatorios a través del tiempo (
fecha)
Esto también lo usamos nosotros. Se puede decir que el tiempo es único y no se repetirá. A partir de esto, podemos obtener el mismo tiempo. Valor unico Adaptado a todos los programas del interior. Ejemplo:
[barlow @ centos6 shell] $ date +% s1287764773 # Obtener marca de tiempo, actual a: 1970-01-01 00:00:00 Segundos separados # Si se usa Hace números aleatorios, y el mismo segundo de datos es el mismo. En el procesamiento del bucle, los subprocesos múltiples básicamente no pueden cumplir los requisitos. [barlow @ centos6 shell] $ date +% N738710457 # Obtenga los datos en nanosegundos de la hora actual, con una precisión de una centésima de segundo. # Esto es bastante exacto, incluso en una gran cantidad de CPU, una gran cantidad de bucles, en el mismo segundo, es difícil ver el mismo resultado, pero habrá muchas colisiones repetidas en diferentes tiempos [barlow @ centos6 shell] $ fecha +% s% N1287764807051101270 # Se puede decir que esto es perfecto, se agregó una marca de tiempo, más nanosegundos.
A través de la descripción anterior, úselo para hacer la base del número aleatorio, luego veremos cómo obtener un dato Consigue un número aleatorio.
#! /bin /sh # Escriba una función aleatoria, llame al método random min max # para obtener el entero aleatorio directamente en min y max # Obtenga el valor de retorno del número aleatorio, actualice el valor después de calcular el número aleatorio en la función de shell Función aleatoria () {min = $ 1; max = $ 2- $ 1; num = $ (fecha +% s +% N); ((retnum = num% max + min)); # Para realizar la operación restante, echo $ retnum; # Print e imprimimos el valor por eco, y luego obtenemos la función, stdout puede obtener el valor # Hay un retorno, define la variable de precio completo, luego la función cambia el contenido, lee afuera} # obtiene 1-10 seq datos para i En {1..10}; doout = $ (random 2 10000); echo $ i, " 2-10000 ", $ out; done;
Mire los resultados:
[barlow @ centos6 shell] $ sh testrandom.sh1,2-10000,56002,2-10000,52953,2-10000,34324,2-10000,31485,2-10000,90416,2-10000,42907 , 2-10000, 23808, 2-10000, 90099, 2-10000, 547410, 2-10000, 3664
En un bucle, los valores son diferentes. Este es nuestro método común, adaptarnos a varios idiomas, es un algoritmo general, incluso si el servidor no proporciona la misma marca de datos única en un momento determinado, también podemos hacer su propio número pseudoaleatorio a través de este método. Aquí hay una manera más simple, no lo hagas tú mismo. 2
, a través de variables internas del sistema
($ RANDOM)
De hecho, Linux ha proporcionado una variable de entorno del sistema, que es directamente un número aleatorio, jaja, acabo de enterarme El método no es en vano! !
[barlow @ centos6 shell] $ echo $ RANDOM10918 [barlow @ centos6 shell] $ echo $ RANDOM10001 # 2 visitas consecutivas, el resultado es diferente, estos datos son un número entero inferior o igual a 5 dígitos
Puede haber preguntas. ¿Cómo obtienes más de 5 números aleatorios? Oh, agregue un entero fijo de 10 dígitos y luego haga el resto, igual que en el Ejemplo 1. El siguiente ejemplo es lo que hicimos por nuestra cuenta.
Las instrucciones de LDM /STM se utilizan principalmente para la protección de campo, la replicación
Si usted es un usuario de Linux, usted puede haber oído, ningún archivo de Linux
Primero, el proceso de inicio del sistema Linux Sobre el proceso de inicio del sistema Linux podem
I. Descripción general: Agregar un programa al kernel de Linux requiere las siguientes tres tareas
Aplicación de comando de redireccionamiento bajo el sistema operativo Linux y su sintaxis
Deje que Linux y Windows coexistan con la misma máquina
Cómo configurar la unión de varias tarjetas de red en la versión redhat linux 6
VMware Workstation para instalar el sistema Linux
Resumen de aprendizaje del bus serie I2C
Super simple método de compilación vpn de Centos Solo tres, compile vpn rápidamente
LCD &desarrollo framebuffer experiencia de
Usuario de Linux y permisos de usuario de apache bajo Linux
Centos instala X Winodw con yum tutorial
Sistema operativo Linux para crear comandos de archivo
Conexión a la red del sistema Linux Preguntas frecuentes Diagnóstico
La versión Win10 Mobile del navegador Edge admitirá la función de descarga en segundo plano
¿Cómo configurar el modo de suspensión de Win10 para cancelar la contraseña de activación?
Ocultar la seguridad y los métodos del número de versión de Nginx
Certificación de Microsoft: Readyboost acelera el sistema Windows 7