
实际一般需要从数据库中随机提取N道题目。
以下代码都基于VBS;
通常的编写类似这样的
| "产生不重复随机数 for j=0 to i-1 if blnre=false then end if response.write rndarray(1,10,5)&"<br>""调用过程 |
PS。其中的iloop、eloop是为了计算循环次数而已。
以上,大多数人的都是用这种方法编写的,生成一个随机数,然后再和以前生成的做比较,判断是否可用;
但这不是一种AI的,或者说有效率的方法,为什么不用两个数组呢?
数组1,存放需要的字符串,或数字等,数组2存放生成的随机数;当每次随机生成中间变量temp的一个下标x,赋给数组2,然后从数组1中,去掉下标为x的数字,赋给中间变量temp;这样每生成一个随机数,就从数组1中拿掉这个数,下次再生成一个数就不会重复了,这种产生随机数的方法原理实际是从数组1中提取。
方法二
| function rndstr(istart,iend,isum) dim vntarray2(),temp,x,y response.write rndstr(1,5,2) |
这样,是不是更简单呢
展开一下,假如要生成随机字符串,包含字母数字时,仅需为数组1赋值时,用函数chr(num);
假设,需要做一个手机中奖的页面程序。
首先把值赋给数组1,可以130....~139....循环赋值,当然实际使用时从数据库中把已有的赋值,然后再随机提取赋给数组2;
最后,再修饰一下
| temp=replace(join(array2),chr(32),"") phone=left(temp,6)&"***"&right(temp,2) |
得到类似137648***58的结果,呵呵
写那么多,累死了~~
聲明:本頁內容由湖南景煌網絡科技有限公司通過網絡收集編輯所得,所有資料僅供用戶參考;本站不擁有所有權,也不承認相關法律責任。如您認為本網頁中有涉嫌抄寫的內容,請及時與我們聯繫進行舉報,並提供相關證據,工作人員會在5個工作日內聯繫您,一經查實,本站將立刻刪除涉嫌侵權內容。如果您對全球網站優化核心技術文章感興趣,請點擊查看全球網站建設和全球網站推廣的相關文章,請關注湖南景煌網絡科技有限公司官網(www.0731jianzhan.com)
7*24小時售後支持
全球7x24小時客服熱線
50倍故障時長賠償
50倍賠付終端服務時間
7天無理由退款
部分產品可享受15天無理由退款
優秀的團隊服務
全球多家分公司便捷服務
10年歷史
多家分公司
高級設計師、工程師
過萬客戶
同行
持續陪伴企業成長,共創,共贏
幫助企業建設全網營銷生態鏈
連接
讓企業與用戶快速連接一切
未來
為企業與用戶搭建共享開發平台