Foxtable(狐表)用户栏目专家坐堂 → 如何用NEXT()产生不重复的随机数呀?


  共有6083人关注过本帖树形打印复制链接

主题:如何用NEXT()产生不重复的随机数呀?

帅哥哟,离线,有人找我吗?
liguichuan
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:361 积分:3185 威望:0 精华:1 注册:2011/4/20 1:40:00
如何用NEXT()产生不重复的随机数呀?  发帖心情 Post By:2011/12/4 16:15:00 [只看该作者]

各位,请问如何使用NEXT()产生不重复的随机数呀?

另外,随机数只能是整数吗?可不可以小数呢?

请各位赐教~!

代码如何实现。


 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/12/4 16:20:00 [只看该作者]

帮助中的:

For i As integer = 0 To 9
    Output.Show(Rand.NextDouble)
Next


 回到顶部
帅哥哟,离线,有人找我吗?
liguichuan
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:361 积分:3185 威望:0 精华:1 注册:2011/4/20 1:40:00
  发帖心情 Post By:2011/12/4 16:26:00 [只看该作者]

哦,看到了,小数搞定,用“Rand.NextDouble”另外不重复怎么弄呀。

谢谢。

[此贴子已经被作者于2011-12-4 16:25:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40574 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/12/4 22:45:00 [只看该作者]

Dim Values As New List(Of Integer)
Dim a As Integer
For i As Integer = 0 To 100
    Values.Add(i)
Next
For i As Integer = 0 To 50
    a = Rand.Next(Values.Count-1)
    Output.Show(Values(a))
    Values.RemoveAt(a)
Next

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40574 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/12/4 23:05:00 [只看该作者]

或者这样更严谨一点(随机抽取0~50的不同重复的随机数):

 

Dim Values As New List(Of Integer)
For i As Integer = 0 To 50
    Values.Add(i)
Next

Dim a,b As Integer

a = Values.Count -1
For i As Integer = 0 To 50

    b = Rand.Next(a)
    Output.Show(Values(b))
    Values.RemoveAt(b)

    a = a - 1
Next

[此贴子已经被作者于2011-12-4 23:31:53编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/5 9:25:00 [只看该作者]

生成50个四位的随机小数,而且绝对不会重复:

 

Dim Values As New List(Of Double)
Do
    Dim b As Double = Math.Round(Rand.NextDouble,4)
    If values.Contains(b)= False Then
        values.Add(b)
    End If
    If values.count = 50 Then
        Exit Do
    End If
Loop


 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40574 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2011/12/5 11:13:00 [只看该作者]

呵呵,我落伍了,学习!

 回到顶部
帅哥哟,离线,有人找我吗?
花开的声音
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1172 积分:8418 威望:0 精华:0 注册:2012/10/29 20:09:00
  发帖心情 Post By:2016/12/21 15:48:00 [只看该作者]

学习。

 回到顶部