Artikel ini terutama memperkenalkan metode menghasilkan angka acak yang tidak berulang di ASP. Teman yang membutuhkannya dapat merujuknya.
ASP menghasilkan angka acak:
Copy kode kodenya sebagai berikut:
Acak 'Murni acak, tidak ada pengulangan
Response.write Int((999999999 * Rnd) + 111111111) 'Hasilkan angka acak antara 111111111 dan 999999999
ASP tidak mengulangi nomor acak:
Metode 1: Diuji
Saat menggunakannya, Anda perlu memperhatikan karakter di dalam yang memisahkan string.
Copy kode kodenya sebagai berikut:
<%
'Array yang dihasilkan adalah array yang tidak berulang
Fungsi GetRnd(angka bawah, angka atas)
Unit redup,RndNum,Fun_X
satuan = Angka atas - Angka bawah
Redim MyArray(unit)
Untuk Fun_I=0 Ke satuan
myArray(Fun_I)= Angka lebih rendah + Fun_I
Berikutnya
Untuk Fun_I=0 Untuk membulatkan(satuan)
RndNum = getRndNumber(Kesenangan_I,unit)
Kesenangan_X = array saya(RndNum)
myArray(RndNum)=myArray(Fun_I)
myArray(Kesenangan_I)=Kesenangan_X
Berikutnya
GetRnd = Gabung (Array saya)
Fungsi Akhir
Fungsi getRndNumber (batas bawah, batas atas)
Acak
getRndNumber=Int((batas atas-bawah+1)*Rnd+batas bawah)
Fungsi Akhir
Respon.Tulis GetRnd(1,1000)
%>
Metode dua:
Copy kode kodenya sebagai berikut:
<%
fungsi rndarray(istart,iend,sum)
redupkan arrayid(),i,j,blnre,temp,iloop,eloop
redim arrayid(jumlah-1)
saya=0
iloop=0
looping = 0
blnre=salah
mengacak
lakukan selagi aku<jumlah
suhu=int(rnd*(iend-istart+1)+istart)
jika i=0 maka
arrayid(0)=temp
saya=saya+1
iloop=iloop+1
kalau tidak
untuk j=0 sampai i-1
jika arrayid(j)=temp maka
blnre=benar
iloop=iloop+1
Kalimat "exit for'" sangat penting untuk mencegah perulangan yang mubazir.
kalau tidak
iloop=iloop+1
berakhir jika
Berikutnya
jika blnre=salah maka
arrayid(i)=temp
saya=saya+1
kalau tidak
blnre=salah
berakhir jika
berakhir jika
lingkaran
rndarray=gabung(arrayid)
fungsi akhir
respon.write rndarray(1,5,1) 'Nomor awal, nomor akhir, berapa yang dihasilkan
%>