| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1517 人关注过本帖
标题:[求助]VB程序中随机数字的实现
只看楼主 加入收藏
kennylee60
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-5-17
收藏
 问题点数:0 回复次数:13 
[求助]VB程序中随机数字的实现

小弟是新手,有个问题请教下大家

有个程序想实现一种随机数字的显示,即是每运行一次程序,文本框中都能随机显示一组不同的数字,数字只要求实现8位不重复,恳求各位提供个具体的源代码或者实现方法,帮忙了

图片附件: 游客没有浏览图片的权限,请 登录注册

[此贴子已经被作者于2007-5-17 20:57:12编辑过]

搜索更多相关主题的帖子: 数字 源代码 随机 
2007-05-17 20:55
不惑
Rank: 2
等 级:论坛游民
威 望:2
帖 子:569
专家分:13
注 册:2007-3-22
收藏
得分:0 
加一个时间的最未位的函数,
比如随机数除以秒数再乘1000000
取整,然后看看是不是正好8位.不是再一次运算.
2007-05-17 21:16
不惑
Rank: 2
等 级:论坛游民
威 望:2
帖 子:569
专家分:13
注 册:2007-3-22
收藏
得分:0 
也可以把本次随机数保存,下次以它为种子,再运算一次
2007-05-17 21:18
kennylee60
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-5-17
收藏
得分:0 
能有具体点的代码或者操作吗,小弟不是很明白
2007-05-17 21:26
x乌鱼
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2006-7-1
收藏
得分:0 

随机产生8位不同的这个不是谁能保证的吧?
Randomize
text1.text=int(90000000*rnd+10000000)
用这个可以产生随机数要几个 就用循环for i=1 to 终值
next i


2007-05-17 21:27
kennylee60
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2007-5-17
收藏
得分:0 
[CODE]Private Sub Text1_Change()
Randomize
Text1.Text = Int(90000000 * Rnd + 10000000)
End Sub[/CODE]
楼上的朋友,运行后怎么一点反应都没有呢
对不起,明白了,应该是这样
Private Sub Form_Load()
Randomize
Text1.Text = Int(90000000 * Rnd + 10000000)
End Sub

[此贴子已经被作者于2007-5-17 21:42:45编辑过]

2007-05-17 21:40
x乌鱼
Rank: 1
等 级:新手上路
帖 子:58
专家分:0
注 册:2006-7-1
收藏
得分:0 
......你怎么把窗体加载改成 文本改变了 哈哈!

2007-05-17 21:47
zhangshoude
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2007-5-16
收藏
得分:0 

用RND函数
产生[N,M]范围的随机数
fix(rnd*(m+1-n))+n
或int(rnd*(m+1-n))+n

2007-05-18 10:41
ouzhiguang
Rank: 1
来 自:湖南长沙
等 级:新手上路
威 望:1
帖 子:240
专家分:0
注 册:2007-5-18
收藏
得分:0 

上面都只实现了随机八位数,没有判断是否重复!
Private Sub Command1_Click()
Dim s As String

Dim a(0 To 9) As Boolean
For i = 0 To 9
a(i) = True
Next
Randomize
Do
s = Int(9 * Rnd + 1)
If a(s) = True Then
Text1.Text = Text1.Text & Trim(Str(s))
a(s) = False
i = Val(Len(Trim(Text1.Text)))
End If
Loop While i < 8
End Sub
next i

2007-05-18 23:34
ouzhiguang
Rank: 1
来 自:湖南长沙
等 级:新手上路
威 望:1
帖 子:240
专家分:0
注 册:2007-5-18
收藏
得分:0 

Private Sub Command1_Click()
Dim s As Integer
Dim s1 As String

Dim a(0 To 9) As Boolean
For i = 0 To 9
a(i) = True
Next
Randomize
Do
s = Int(9 * Rnd + 1)
If a(s) = True Then
s1 = s1 & Trim(Str(s))
a(s) = False
i = Val(Len(Trim(s1)))
End If
Loop While i < 8
Text1.Text = s1
End Sub
刚刚那个有点小BUG呵呵
如果是8位数,那么最高位为"0"的数还没有判断,你可以根据自己的要求 增加一行判断就行了!

2007-05-18 23:39
快速回复:[求助]VB程序中随机数字的实现
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016851 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved