麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > ASP > 正文

ASP生成不重復(fù)隨機(jī)數(shù)字的另類思路

2024-05-04 11:07:48
字體:
供稿:網(wǎng)友
前兩天看到有人要編個考試系統(tǒng),當(dāng)時只是簡單回了下用隨機(jī)函數(shù)RND

  實(shí)際一般需要從數(shù)據(jù)庫中隨機(jī)提取N道題目。

  以下代碼都基于VBS;

  通常的編寫類似這樣的

 

'產(chǎn)生不重復(fù)隨機(jī)數(shù)
function rndarray(istart,iend,sum)
dim arrayid(),i,j,blnre,temp,iloop,eloop
redim arrayid(sum-1)
i=0
iloop=0
eloop=0
blnre=false
randomize
do while i<sum
temp=int(rnd*(iend-istart+1)+istart)
if i=0 then
arrayid(0)=temp
i=i+1
iloop=iloop+1
else

for j=0 to i-1
if arrayid(j)=temp then
blnre=true
iloop=iloop+1
exit for'這一句很重要,防止多余的循環(huán)
else
iloop=iloop+1
end if
next

if blnre=false then
arrayid(i)=temp
i=i+1
else
blnre=false
end if

end if
eloop=eloop+iloop
iloop=0
loop
rndarray=join(arrayid)&"循環(huán)次數(shù):"&eloop
end function

response.write rndarray(1,10,5)&"<br>"'調(diào)用過程

 


  PS。其中的iloop、eloop是為了計算循環(huán)次數(shù)而已。

  以上,大多數(shù)人的都是用這種方法編寫的,生成一個隨機(jī)數(shù),然后再和以前生成的做比較,判斷是否可用;

  但這不是一種AI的,或者說有效率的方法,為什么不用兩個數(shù)組呢?

  數(shù)組1,存放需要的字符串,或數(shù)字等,數(shù)組2存放生成的隨機(jī)數(shù);當(dāng)每次隨機(jī)生成中間變量temp的一個下標(biāo)x,賦給數(shù)組2,然后從數(shù)組1中,去掉下標(biāo)為x的數(shù)字,賦給中間變量temp;這樣每生成一個隨機(jī)數(shù),就從數(shù)組1中拿掉這個數(shù),下次再生成一個數(shù)就不會重復(fù)了,這種產(chǎn)生隨機(jī)數(shù)的方法原理實(shí)際是從數(shù)組1中提取。

  方法二

 

function rndstr(istart,iend,isum)
dim i,j,vntarray()
redim vntarray(iend-istart)
j=istart
for i=0 to iend-istart
vntarray(i)=j
j=j+1
next

dim vntarray2(),temp,x,y
redim vntarray2(isum-1)
y=iend-istart+1
x=0
temp=vntarray
do while x<isum
dim a
randomize
vntarray2(x)=temp(int(rnd*y))
a=" "&vntarray2(x)&" "
temp=split(trim(replace(chr(32)&join(temp)&chr(32),a," ")))
x=x+1
y=y-1
loop
rndstr=join(vntarray2)
end function

response.write rndstr(1,5,2)

 


  這樣,是不是更簡單呢

  展開一下,假如要生成隨機(jī)字符串,包含字母數(shù)字時,僅需為數(shù)組1賦值時,用函數(shù)chr(num);

  假設(shè),需要做一個手機(jī)中獎的頁面程序。

  首先把值賦給數(shù)組1,可以130....~139....循環(huán)賦值,當(dāng)然實(shí)際使用時從數(shù)據(jù)庫中把已有的賦值,然后再隨機(jī)提取賦給數(shù)組2;

  最后,再修飾一下

 

temp=replace(join(array2),chr(32),"")
phone=left(temp,6)&"***"&right(temp,2)

 

  得到類似137648***58的結(jié)果,呵呵

  寫那么多,累死了~~

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 国产青草视频在线观看视频 | 亚洲一区二区三区高清 | 91午夜少妇三级全黄 | 久久精品中文字幕一区 | 视频一区二区三区在线播放 | 精品一区二区亚洲 | 国产一级二级毛片 | 免费观看黄色一级视频 | 色视频一区二区 | 国产精品一区在线免费观看 | 欧美精品一区二区三区在线 | 免费在线国产 | 国产精品久久77777 | 久久久久久亚洲国产精品 | 日本一区二区在线看 | 九色91视频 | 国产精品成人久久久久a级 av电影在线免费 | 日本娇小videos高潮 | 日韩中文字幕三区 | 欧美亚洲黄色片 | 国产精品久久久麻豆 | 欧美精品18videos性欧美 | 国产一区二区三区手机在线 | 国产91精品久久久久久久 | av国产在线被下药迷网站 | 日本综合久久 | 亚洲午夜天堂吃瓜在线 | 国产超碰人人做人人爱ⅴa 国产精品久久久久久久hd | 91九色免费视频 | 久久久www成人免费毛片 | 欧洲黄色一级视频 | 日韩精品中文字幕一区 | 在线小视频国产 | 欧美日韩夜夜 | 视屏一区 | 色污视频在线观看 | 欧日一级片 | 亚洲成人在线视频网站 | 日本精品免费观看 | 成人毛片网站 | 欧美一级二级毛片视频 |