怎么用vbscript产生10以内不重复的随机数..

qquujj 2007-04-12 08:51:28
如题
...全文
341 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
leelong80 2007-04-13
  • 打赏
  • 举报
回复
Public Function GetRamCode(f_number)
Randomize
Dim f_Randchar,f_Randchararr,f_RandLen,f_Randomizecode,f_iR
f_Randchar="0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z"
f_Randchararr=split(f_Randchar,",")
f_RandLen=f_number '定义密码的长度或者是位数
for f_iR=1 to f_RandLen
f_Randomizecode=f_Randomizecode&f_Randchararr(Int((21*Rnd)))
next
GetRamCode = f_Randomizecode
End Function
///*************这个要好一点***************////
qquujj 2007-04-13
  • 打赏
  • 举报
回复
1.428753
9.226125
9.226125
3.178217
3.178217
3.178217
1.32194
1.32194
1.32194
1.32194
9.546565
9.546565
9.546565
9.546565
9.546565
2.216897
2.216897
2.216897
2.216897
2.216897
2.216897
4.205899
4.205899
4.205899
4.205899
4.205899
4.205899
4.205899
.8946866
.8946866
.8946866
.8946866
.8946866
.8946866
.8946866
.8946866
.8283246
.8283246
.8283246
.8283246
.8283246
.8283246
.8283246
.8283246
.8283246
输出了这样的结果...
还是有很多重复啊...
超级大笨狼 2007-04-13
  • 打赏
  • 举报
回复
<SCRIPT LANGUAGE=vbscript >
'洗牌
Dim N,S,D,P
P=54'牌的数量
Set D = CreateObject("Scripting.Dictionary")
do while D.Count<P
Randomize
N=Int(P * Rnd + 1)
if not D.Exists(cstr(N)) then
D.Add cstr(N),cstr(N)
end if
loop
for each K in D.Keys
S=S & K & " "
next
msgbox replace(trim(S)," ",",")
</SCRIPT>

access
select top 5 * from [table] order by rnd(id)

sql server
select top 5 * from [table] order by newid()
八哥 2007-04-12
  • 打赏
  • 举报
回复
dim A(9),i
for i = 0 to 9
A(I)=GetRnd(i-1)
NEXT
'得到不重复的随机数
Function GetRnd(n)
Dim i, X
Randomize
X = 10 * Rnd()
For i = 0 To n
If X = A(i) Then
X = GetRnd(n)
Exit For
End If
Next
GetRnd = X
End Function


如果只需要整数把 X = 10 * Rnd()改为 X = cint( 10 * Rnd()),但要小心,如果要取的个数10个大于10 ,就会进入死循环,因为程序用了递归

4,007

社区成员

发帖
与我相关
我的任务
社区描述
它是一种微软环境下的轻量级的解释型语言,它使用COM组件、WMI、WSH、ADSI访问系统中的元素,对系统进行管理。
社区管理员
  • vbScript社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧