怎么随机生成4位不同的数字

aguangkj 2009-08-22 11:33:29
程序需要一个函数,
函数功能:随机生成4位不同的数字

要求每次调用这个函数的时候生成的4位数字都不能一样

...全文
610 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
咸清 2009-08-22
  • 打赏
  • 举报
回复
VB取得某个范围的随机整数,应该使用如下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
vbman2003 2009-08-22
  • 打赏
  • 举报
回复

Private Sub Command1_Click()
Debug.Print GetRndNumber()
End Sub

Private Function GetRndNumber() As String

Const N = 9999
Static i As Long
Static a(N) As Long
Dim r As Long

If i = 0 Then
For i = 0 To N
a(i) = i
Next
i = 0
End If
Randomize
r = Int((N - i + 1) * Rnd + i)
GetRndNumber = Format(a(r), "0000")
a(r) = a(i)
i = i + 1
If i > N Then i = 0 '全部随机数用完就重新来过

End Function
aguangkj 2009-08-22
  • 打赏
  • 举报
回复
10楼的函数也不错,
4位数当然有重复了,
但只少0000-9999中间没有重复的吧?
chinaboyzyq 2009-08-22
  • 打赏
  • 举报
回复
一共就四位数,用多了怎么可能不重复?!

Private Sub Command1_Click()
Text1 = iRnd
End Sub

Private Function iRnd() As Integer
Randomize
Dim i As Integer
Do
i = Rnd() * 10000
Loop While i < 1000
iRnd = i
End Function
aguangkj 2009-08-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 citybird 的回复:]
如果只要一个的话把最外层的For Next循环去掉就好了!
[/Quote]

你才是猪呢,你实践了吗?
把最外层的for去掉每次生成的数字都一样

把1to50改成1to4每次生成的的4组数字串都一样啊
三楼の郎 2009-08-22
  • 打赏
  • 举报
回复
如果只要一个的话把最外层的For Next循环去掉就好了!
三楼の郎 2009-08-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 aguangkj 的回复:]
老张的程序不错,但运行后 输出了50个不同的4位数,太复杂了,

怎么能让xx函数自动返回一个4位数啊,而且每次的4位数都不一样
[/Quote]

真蠢,简直和猪有得一拼!

For i = 1 To 50



For i = 1 To 4

就行了!
aguangkj 2009-08-22
  • 打赏
  • 举报
回复
老张的程序不错,但运行后 输出了50个不同的4位数,太复杂了,

怎么能让xx函数自动返回一个4位数啊,而且每次的4位数都不一样
SYSSZ 2009-08-22
  • 打赏
  • 举报
回复
Private Sub Form_Load()
Dim a()
Dim bool As Boolean
Dim s As Integer, i As Integer, j As Integer, k As Integer
ReDim Preserve a(0)
a(0) = XX
For i = 1 To 50
bool = False
s = XX
For j = 0 To UBound(a)
If s = a(j) Then
bool = True
Exit For
End If
Next
If bool = False Then
k = k + 1
ReDim Preserve a(k)
a(k) = s
Debug.Print s
End If
Next
End Sub
Private Function XX() As Integer
XX = Int((9000) * Rnd + 1000)
End Function
aguangkj 2009-08-22
  • 打赏
  • 举报
回复
我的意思是:每次调用函数生成的4位数和之前调用函数生成的4位数不能一样
熊孩子开学喽 2009-08-22
  • 打赏
  • 举报
回复
[Quote=引用楼主 aguangkj 的回复:]
程序需要一个函数,
函数功能:随机生成4位不同的数字

要求每次调用这个函数的时候生成的4位数字都不能一样

[/Quote]

你的意思是每次生成的4位数和之前生成的4位数不能一样,还是这个4位数的每一位不能一样???

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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