| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1158 人关注过本帖
标题:[求助]关于随机数的问题
只看楼主 加入收藏
tan_owen
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-4-15
收藏
 问题点数:0 回复次数:11 
[求助]关于随机数的问题
我在做随机数的时候想要抽取多个数字比如13个,但做出来后只能抽取一个,代码如下:
Dim a As New Random '定义一个随机数类
Dim tmp As Int32
Dim h As New Hashtable
While h.Count < 14
tmp = a.Next(1, 54)
If Not h.Contains(tmp) Then
h.Add(tmp, tmp)
Label1.Text = tmp
End If
End While
这个代码该怎么改才对
搜索更多相关主题的帖子: 随机数 tmp Dim New While 
2007-04-18 22:39
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
Dim a As New Random '定义一个随机数类
Dim tmp As Int32
Dim h As New Hashtable
While h.Count < 14
tmp = a.Next(1, 54)
If Not h.Contains(tmp) Then
h.Add(tmp, tmp)
Label1.Text = tmp
End If
End While

关键是在我注红的地方,每次都覆盖了,其实是有13个随机数,你应该写成:
Label1.Text = Label1.Text + " " + tmp

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2007-04-19 09:32
tan_owen
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-4-15
收藏
得分:0 
我把代码改成Label1.Text=Label1.Text + "  " + tmp后出现异常(从字符串“  ”到类型“Double”的转换无效。)

2007-04-19 12:54
tan_owen
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-4-15
收藏
得分:0 

应该改为Label1.Text=Label1.Text & " " & tmp


2007-04-19 13:00
skyland84
Rank: 2
等 级:新手上路
威 望:4
帖 子:544
专家分:0
注 册:2006-10-9
收藏
得分:0 
tmp  转换成字符串 后在加上去~!

决定人生~
2007-04-19 13:05
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
以下是引用tan_owen在2007-4-19 13:00:06的发言:

应该改为Label1.Text=Label1.Text & " " & tmp

我不是研究VB的,不好意思,没注意


本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2007-04-19 13:35
tan_owen
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-4-15
收藏
得分:0 

在抽取了13个数字后,再抽取13个数字,那么tmp = a.Next(1, 54)应改为什么


2007-04-19 14:38
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
这得看你要不要出现相同的数了.如果需要,就得把已经抽出的数排除.

飘过~~
2007-04-19 15:38
tan_owen
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-4-15
收藏
得分:0 
再抽取的时候,不要相同的数,也不能和上次抽取的有相同的数

2007-04-19 15:44
tan_owen
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2007-4-15
收藏
得分:0 
我重写了一个代码:
Dim a(52), b(4, 13) As Integer
Dim i, j, t As Integer
For i = 1 To 52
a(i) = i
Next
Randomize(Timer)
For i = 1 To 4
For j = 1 To 13
t = Int(52 * Rnd()) + 1
Do While a(t) = 0
t = Int(52 * Rnd()) + 1
Loop
Do While a(t) = 0
t = Int(52 * Rnd()) + 1
Loop
b(i, j) = a(t) : a(t) = 0
Next j
Next i
For i = 1 To 4
For j = 1 To 13
Response.Write(b(i, j) & " ")
Next j
Next i
可以随机出现52个数字,可我想让它出现4行,每行13个数字,不知道是哪错了该怎么改

[此贴子已经被作者于2007-4-19 22:30:04编辑过]


2007-04-19 22:13
快速回复:[求助]关于随机数的问题
数据加载中...
 
   



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

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