Hace dos días, vi que alguien quería compilar un sistema de examen. En ese momento, utilicé brevemente la función aleatoria RND.
En la práctica, generalmente es necesario extraer aleatoriamente N preguntas de la base de datos.
Todos los códigos siguientes se basan en VBS;
Generalmente escrito así
'Generar números aleatorios no repetitivos función rndarray(istart,iend,suma) dim arrayid(),i,j,blnre,temp,iloop,eloop redimificar arrayid(suma-1) yo=0 bucle = 0 bucle = 0 blnre=falso aleatorizar hacer mientras yo <suma temp=int(rnd*(iend-istart+1)+istart) si i=0 entonces IDarray(0)=temperatura yo=yo+1 iloop=iloop+1 demás para j=0 a i-1 si arrayid(j)=temp entonces blnre=verdadero iloop=iloop+1 La frase "salir por" es muy importante para evitar bucles redundantes. demás iloop=iloop+1 terminar si próximo si blnre=false entonces ID de matriz (i) = temperatura yo=yo+1 demás blnre=falso terminar si terminar si eloop=eloop+iloop bucle = 0 bucle rndarray=unir(arrayid)&número de bucles:&eloop función final Response.write rndarray(1,10,5)&<br>'Proceso de llamada |
PD. iloop y eloop son solo para calcular el número de bucles.
Arriba, la mayoría de las personas usan este método para escribir, generar un número aleatorio y luego compararlo con el generado previamente para determinar si es utilizable;
Pero esta no es una IA ni un método eficiente.
La matriz 1 almacena las cadenas, números, etc. requeridos, y la matriz 2 almacena los números aleatorios generados cuando se genera aleatoriamente un subíndice x de la variable intermedia temp cada vez, se asigna a la matriz 2 y luego se elimina el subíndice; matriz 1 como el número de extraídos de la matriz 1.
Método dos
función rndstr(istart,iend,isum) tenue i,j,vntarray() redimificar vntarray(iend-istart) j=iniciar para i=0 a iend-istart vntarray(i)=j j=j+1 próximo tenue vntarray2(),temp,x,y redimir vntarray2(isum-1) y=iend-istart+1 x=0 temp=vntarray hacer mientras x<isum atenuar un aleatorizar vntarray2(x)=temp(int(rnd*y)) a= &vntarray2(x)& temperatura = dividir (recortar (reemplazar (chr (32) y unirse (temp) y chr (32), a,))) x=x+1 y=y-1 bucle rndstr=unirse(vntarray2) función final respuesta.escribir rndstr(1,5,2) |
¿No sería más sencillo así?
Para ampliar un poco, si desea generar una cadena aleatoria que contenga letras y números, solo necesita asignar un valor a la matriz 1 y usar la función chr(num);
Supongamos que necesita crear un programa de página móvil para ganar lotería.
Primero asigne el valor a la matriz 1, que se puede asignar cíclicamente de 130.... a 139.... Por supuesto, en el uso real, el valor existente se asigna desde la base de datos y luego se extrae aleatoriamente y se asigna a la matriz 2. ;
Finalmente, un poco más de pulido.
temp=reemplazar(unirse(matriz2),chr(32),) |
teléfono=izquierda(temp,6)&***&derecha(temp,2)
Obtener resultados similares a 137648***58, jaja
Estoy cansado de escribir tanto~~