La función RND() es una función muy importante. Si desea crear un saludo aleatorio, un mensaje aleatorio para una cita o incluso un juego, querrá utilizar esta función.
Función ASP rnd()
La función rnd() devuelve un número aleatorio entre 0 y 1.
Cómo usarlo:
Copie el código de código de la siguiente manera:
respuesta.write rnd() 'Posible valor de retorno: 0.2357746
Si desea utilizar la función rnd() para devolver números enteros dentro de un rango determinado, por ejemplo, números mayores o iguales a 0 y menores o iguales a un límite superior entero específico, puede utilizar el siguiente método:
Copie el código de código de la siguiente manera:
respuesta.escribir int((límite superior+1)*rnd)
Por ejemplo, la siguiente declaración devolverá un número entero entre 0 y 5, inclusive:
Copie el código de código de la siguiente manera:
respuesta.escribir int((5+1)*rnd)
Si desea obtener un número aleatorio dentro de un rango determinado que tenga un límite inferior mayor que 0, puede utilizar el siguiente método:
Copie el código de código de la siguiente manera:
respuesta.escribir int((límite superior-límite inferior+1)*rnd+límite inferior)
Por ejemplo, el siguiente script genera un número entero entre 50 y 75, inclusive:
Copie el código de código de la siguiente manera:
respuesta.escribir int((75-50+1)*rnd+50)
Sin embargo, hay un problema. Se genera un número aleatorio, pero siempre es el mismo número aleatorio. Esto puede confundirlo mucho. Hay una declaración especial que puede ayudar a resolver este problema, y es la declaración aleatoria.
La declaración aleatoria se utiliza para forzar a la función rnd a utilizar una nueva secuencia de números aleatorios. La declaración aleatoria proporciona un nuevo valor inicial a la función rnd a través del temporizador del sistema de la computadora.
La función RND() es una función muy importante. Si desea crear un saludo aleatorio, un mensaje aleatorio para una cita o incluso un juego, querrá utilizar esta función.
La función RND() devuelve un número aleatorio entre 0 y 1. A continuación se muestra un ejemplo de esta función y sus posibles valores de retorno:
<%=RND()%>
0.7055643
Normalmente, le interesa más utilizar esta función para devolver un número entero dentro de un rango determinado. Para devolver un número mayor o igual a 0 pero menor que un entero específico, puede utilizar la siguiente declaración:
<%=INT((límite superior+1)*RND)%>
Reemplace la expresión límite superior con el número aleatorio más grande que desee generar. Por ejemplo, el siguiente script devuelve un número entre 0 y 5, inclusive:
<%=INT(5+1)*RND)%>
Si desea generar un número aleatorio dentro de un rango que tiene un límite inferior mayor que 0, puede utilizar el siguiente script:
<%=INT((límite superior – límite inferior + 1)*RND+límite inferior)%>
Por ejemplo, el siguiente script genera un número aleatorio entre 50 y 75 (inclusive):
<%=INT((75-50+1)*RND+50)%>
Puede que le sorprenda que cada vez que utilice la función RND(), devuelva los mismos números aleatorios en el mismo orden. Considere el siguiente ejemplo:
Copie el código de código de la siguiente manera:
<%
Seleccionar_Saludo=INT((2+1)*RND)
SELECCIONAR CASO Elegir_Saludo
CASO 0
Saludo = "¡Bienvenido!"
CASO 1
Saludo = "¡Hola!"
CASO 2
Saludo = "¡Feliz de verte!"
FINALIZAR SELECCIÓN
%>
<%=Saludo%>
Este script crea e imprime un saludo aleatorio. Sin embargo, es posible que no funcione como imaginas. Cada vez que alguien descargue una página web que contenga este script, se imprimirá el mismo saludo aleatorio. Si alguien regresa a esta página varias veces, recibirá el mismo saludo. Se genera un número aleatorio, pero siempre es el mismo número aleatorio.
Hay una declaración especial que ayuda con este problema. La instrucción RANDOMIZE se utiliza para forzar a la función RND() a utilizar una nueva secuencia de números aleatorios. La instrucción RANDOMIZE proporciona un nuevo valor inicial para que funcione RND() a través del temporizador del sistema de la computadora. El siguiente ejemplo muestra cómo modificar el ejemplo anterior para que funcione correctamente:
Copie el código de código de la siguiente manera:
<%
ALEATORIZAR
Seleccionar_Saludo=INT((2+1)*RND)
SELECCIONAR CASO Elegir_Saludo
CASO 0
Saludo = "¡Bienvenido!"
CASO 1
Saludo = "¡Hola!"
CASO 2
Saludo = "¡Feliz de verte!"
FINALIZAR SELECCIÓN
%>
<%=Saludo%>
Este script funciona correctamente. Cada vez que se ejecute este script, se generará un nuevo saludo aleatorio. La declaración RANDOMIZE obliga a la función RND() a utilizar una nueva secuencia de números aleatorios.
Finalmente, si tienes curiosidad sobre la distribución de valores que produce la función RND(), puedes determinarla con el siguiente script:
Copie el código de código de la siguiente manera:
<%
CONST límite superior=9,iteraciones=100
REDIM DIST (límite superior)
ALEATORIZAR
PARA i=1 a iteraciones
rnd_num=INT((límite superior+1)*RND)
DISTR(núm_rnd)=DIST(núm_rnd)&”#”
PRÓXIMO
FOR i=0 al límite superior
%>
<%=i&” : “&DIST(i)%><BR>
<%
PRÓXIMO
%>
Este script genera 100 números aleatorios entre 0 y 9. Realiza un seguimiento de cuántos números aleatorios se generan para cada valor. Finalmente, imprime un gráfico de barras que representa los resultados.