Cet article présente principalement la méthode de génération de nombres aléatoires non répétitifs dans ASP. Les amis qui en ont besoin peuvent s'y référer.
ASP génère des nombres aléatoires :
Copiez le code comme suit :
Randomiser 'Purement aléatoire, pas de répétitions
Response.write Int((999999999 * Rnd) + 111111111) 'Générer un nombre aléatoire entre 111111111 et 999999999
ASP ne répète pas les nombres aléatoires :
Méthode 1 : testée
Lorsque vous l'utilisez, vous devez faire attention aux caractères à l'intérieur qui divisent la chaîne.
Copiez le code comme suit :
<%
'Le tableau généré est un tableau non répétitif
Fonction GetRnd (numéro inférieur, numéro supérieur)
Unité Dim, RndNum, Fun_X
unité = numéro supérieur - numéro inférieur
Redim MyArray (unité)
Pour Fun_I=0 À l'unité
monArray(Fun_I)= LowerNum + Fun_I
Suivant
Pour Fun_I=0 Arrondir(unité)
RndNum = getRndNumber (Fun_I, unité)
Fun_X = monArray(RndNum)
monTableau(RndNum)=monTableau(Fun_I)
monTableau(Fun_I)=Fun_X
Suivant
GetRnd = Rejoindre (monArray)
Fonction de fin
Fonction getRndNumber (limite inférieure, limite supérieure)
Randomiser
getRndNumber=Int((limite supérieure-limite inférieure+1)*Rnd+limite inférieure)
Fonction de fin
Réponse.Write GetRnd(1 1000)
%>
Deuxième méthode :
Copiez le code comme suit :
<%
fonction rndarray (istart, iend, somme)
dim arrayid(),i,j,blnre,temp,iloop,eloop
redim arrayid (somme-1)
je = 0
iloop=0
eloop=0
blnre=faux
randomiser
faire pendant que je <somme
temp=int(rnd*(iend-istart+1)+istart)
si je = 0 alors
identifiant du tableau (0) = température
je=je+1
iloop=iloop+1
autre
pour j=0 à i-1
si arrayid(j)=temp alors
blnre=vrai
iloop=iloop+1
La phrase "exit for" est très importante pour éviter les boucles redondantes
autre
iloop=iloop+1
finir si
suivant
si blnre=false alors
identifiant du tableau(i)=temp
je=je+1
autre
blnre=faux
finir si
finir si
boucle
rndarray = rejoindre (id de tableau)
fonction de fin
réponse.write rndarray(1,5,1) 'Numéro de début, numéro de fin, combien sont générés
%>