บทความนี้จะแนะนำวิธีการสร้างตัวเลขสุ่มแบบไม่ซ้ำกันใน ASP เป็นหลัก เพื่อนที่ต้องการสามารถอ้างอิงถึงมันได้
ASP สร้างตัวเลขสุ่ม:
คัดลอกรหัสรหัสดังต่อไปนี้:
สุ่ม 'สุ่มล้วนๆ ไม่มีซ้ำ'
Response.write Int((999999999 * Rnd) + 111111111) 'สร้างตัวเลขสุ่มระหว่าง 111111111 ถึง 999999999
ASP ไม่ทำซ้ำตัวเลขสุ่ม:
วิธีที่ 1: ทดสอบแล้ว
เมื่อใช้งานคุณจะต้องใส่ใจกับอักขระภายในที่แยกสตริง
คัดลอกรหัสรหัสดังต่อไปนี้:
-
'อาร์เรย์ที่สร้างขึ้นเป็นอาร์เรย์ที่ไม่ซ้ำกัน
ฟังก์ชัน GetRnd(lowerNum,upperNum)
หน่วยหรี่,RndNum,Fun_X
หน่วย = upperNum - lowerNum
Redim MyArray(หน่วย)
เพื่อ Fun_I=0 ถึงหน่วย
myArray(Fun_I)= เลขล่าง + Fun_I
ต่อไป
เพื่อ Fun_I=0 เพื่อปัดเศษ(หน่วย)
RndNum = getRndNumber(Fun_I,หน่วย)
Fun_X = myArray(RndNum)
myArray(RndNum)=myArray(Fun_I)
myArray(Fun_I)=Fun_X
ต่อไป
GetRnd = เข้าร่วม (myArray)
สิ้นสุดฟังก์ชัน
ฟังก์ชัน getRndNumber (ล่าง, บน)
สุ่ม
getRndNumber=Int((บน-ล่าง+1)*Rnd+ล่าง)
สิ้นสุดฟังก์ชัน
ตอบกลับเขียน GetRnd(1,1000)
-
วิธีที่สอง:
คัดลอกรหัสรหัสดังต่อไปนี้:
-
ฟังก์ชั่น rndarray (istart, iend, sum)
arrayid สลัว (), i, j, blnre, อุณหภูมิ, iloop, eloop
Redim arrayid (ผลรวม-1)
ผม=0
ไอลูป=0
อีลูป=0
blnre=เท็จ
สุ่ม
ทำในขณะที่ฉัน<sum
อุณหภูมิ=int(rnd*(iend-istart+1)+istart)
ถ้า i=0 แล้ว
arrayid(0)=อุณหภูมิ
ฉัน=ฉัน+1
iloop=iloop+1
อื่น
สำหรับ j=0 ถึง i-1
ถ้า arrayid(j)=temp แล้ว
blnre=จริง
iloop=iloop+1
ประโยค "exit for" มีความสำคัญมากในการป้องกันการวนซ้ำซ้ำซ้อน
อื่น
iloop=iloop+1
สิ้นสุดถ้า
ต่อไป
ถ้า blnre=false แล้ว
arrayid(i)=อุณหภูมิ
ฉัน=ฉัน+1
อื่น
blnre=เท็จ
สิ้นสุดถ้า
สิ้นสุดถ้า
วนซ้ำ
rndarray=เข้าร่วม(อาร์เรย์)
ฟังก์ชั่นสิ้นสุด
response.write rndarray(1,5,1) 'หมายเลขเริ่มต้น หมายเลขสิ้นสุด จำนวนที่สร้างขึ้น
-