Foxtable(狐表)用户栏目专家坐堂 → 如何随机生成不重复的4个1~4的整数放在集合/数组里?


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

主题:如何随机生成不重复的4个1~4的整数放在集合/数组里?

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


加好友 发短信
等级:三尾狐 帖子:698 积分:5612 威望:0 精华:0 注册:2013/4/9 6:59:00
如何随机生成不重复的4个1~4的整数放在集合/数组里?  发帖心情 Post By:2013/6/24 7:48:00 [只看该作者]

如何随机生成不重复的1~4的4个的整数放在集合/数组里?

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


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2013/6/24 7:56:00 [只看该作者]

以下是引用comnets在2013-6-24 7:48:00的发言:
如何随机生成不重复的1~4的4个的整数放在集合/数组里?

直接输入1、2、3、4就行了。


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


加好友 发短信
等级:狐神 帖子:6835 积分:43243 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2013/6/24 7:56:00 [只看该作者]

就不用随机了。

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


加好友 发短信
等级:三尾狐 帖子:698 积分:5612 威望:0 精华:0 注册:2013/4/9 6:59:00
  发帖心情 Post By:2013/6/24 8:10:00 [只看该作者]

晕啊 要的就是随机顺序啊 直接1234放进去我干嘛还提问啊

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


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


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


加好友 发短信
等级:一尾狐 帖子:431 积分:3214 威望:0 精华:2 注册:2011/9/10 21:35:00
  发帖心情 Post By:2013/6/24 12:42:00 [只看该作者]

设一个无限的循环,用rank生成1234随机数,循环里面搞个代码:

每次生成都用集合的contains属性判断一下这个随机数,如果true就continue for ,否则集合就add这个随机数。里面再加一个判断集合的count属性,等于4就exit for


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


加好友 发短信
等级:三尾狐 帖子:698 积分:5612 威望:0 精华:0 注册:2013/4/9 6:59:00
  发帖心情 Post By:2013/6/24 14:11:00 [只看该作者]

Dim Values As New List(Of Integer)
Do
    Dim b As Integer = Rand.Next(1,4)
    If values.Contains(b)= False Then
        values.Add(b)
    End If
    If values.count = 4 Then
        Exit Do
    End If
Loop

这样吗?在另一个帖子里找到狐爸的代码改了一下。

这样好像是进入死循环了 运行以后没反应退不出来。。。。

帮我看一下是怎么回事好吗?

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


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

Dim Values As New List(Of Integer)
Do
    Dim b As Integer = Rand.Next(0,4)
    If values.Contains(b)= False Then
        values.Add(b)
    End If
    If values.count = 4 Then
        Exit Do
    End If
Loop

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


加好友 发短信
等级:三尾狐 帖子:698 积分:5612 威望:0 精华:0 注册:2013/4/9 6:59:00
  发帖心情 Post By:2013/6/24 15:59:00 [只看该作者]

Dim b As Integer = Rand.Next(0,4)
为什么这行0,4改成1,4就会进入死循环?

Dim b As Integer = Rand.Next(0,4)
改成0,3也会进入死循环。
[此贴子已经被作者于2013-6-24 16:00:58编辑过]

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


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

1,4

0,3

 

都只有三个随机数,下面的条件永远不会成立:

If values.count = 4 Then

 

你在命令窗口反复执行:

 

Output.show(Rand.Next(1,4))

 

就知道了


 回到顶部
总数 13 1 2 下一页