以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何随机生成不重复的4个1~4的整数放在集合/数组里?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=35087)

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

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


--  作者:lihe60
--  发布时间:2013/6/24 7:56:00
--  
就不用随机了。
--  作者:comnets
--  发布时间:2013/6/24 8:10:00
--  
晕啊 要的就是随机顺序啊 直接1234放进去我干嘛还提问啊
--  作者:狐狸爸爸
--  发布时间:2013/6/24 8:25:00
--  

生成随机数:

 

http://www.foxtable.com/help/topics/0349.htm

 


--  作者:yan2006l
--  发布时间:2013/6/24 12:42:00
--  

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

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


--  作者:comnets
--  发布时间: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

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

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

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

--  作者:狐狸爸爸
--  发布时间: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
--  发布时间: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编辑过]

--  作者:狐狸爸爸
--  发布时间:2013/6/24 16:06:00
--  

1,4

0,3

 

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

If values.count = 4 Then

 

你在命令窗口反复执行:

 

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

 

就知道了