Foxtable(狐表)用户栏目专家坐堂 → [求助]关于随机取数的问题


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

主题:[求助]关于随机取数的问题

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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
[求助]关于随机取数的问题  发帖心情 Post By:2014/3/20 19:46:00 [只看该作者]

有一数组{"1","2","3","4","5"),现随机取3个数,但要求这3个数相对分开,即不出现123,234,345。如果随机取2个数,也要求这2个数相对分开。

请教大家了,谢谢

 

 


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/21 8:41:00 [只看该作者]




Dim slist As new List(of String)
Do While slist.count<2
    Dim s As Integer = Rand.Next(1,5)
    If slist.Contains(s)=False Then
      If slist.count>0 Then
        If (slist(0)-s)>1 OrElse (slist(0)-s)<-1 Then
          slist.Add(s)
        End If
      Else
        slist.Add(s)
      End If
    End If
Loop
Dim str As String
For Each s As String In slist
    str=str & s
Next
MessageBox.show(str)

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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2014/3/21 9:32:00 [只看该作者]

谢谢,那如果要随机取3个呢

 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/21 11:53:00 [只看该作者]

取三个:

 

Dim vals() As String =  {"1","2","3","4","5"}
Dim str As String  = ""
Do
    Dim idx As Integer = rand.Next(0,vals.Length)
    If str.Contains(vals(idx)) = False  Then
        str = str & vals(idx)
    End If
Loop While str.Length < 3
Return str

 

 

你去多少个都行,你要做的将下面的3改为其他数字:

 

Loop While str.Length < 3

 

当然3不能大于数组的长度


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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
[求助]集合 最小取值  发帖心情 Post By:2014/3/23 18:12:00 [只看该作者]

再请教大家一问题: 有一集合{星期一|32,星期二|37,星期三|32,星期四|78}。根据每天后的数值求出最小值并返回是星期几? 先谢过了?

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


加好友 发短信
等级:狐神 帖子:4752 积分:34568 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2014/3/23 18:49:00 [只看该作者]

每天后的数值”是何意?

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


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2014/3/23 19:40:00 [只看该作者]

如、周一||32中的32

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/3/23 20:12:00 [只看该作者]

Dim str() As String = {"星期一|32","星期二|37","星期三|32","星期四|78"}
Dim lst As New List(Of String)
For i As Integer = 0 To Str.Length - 1
    If i = 0 Then
        lst.Add( str(i).Split("|")(1) )
    Else
        If str(i).Split("|")(1) < lst(0) Then
            lst(0) = str(i).Split("|")(1)
        End If
    End If
Next
Output.Show("最小值:" & lst(0))
For i As Integer = 0 To Str.Length - 1
    If str(i).Contains(lst(0)) Then
        Output.Show("最小值对应的星期数:" & str(i).Split("|")(0))
    End If
Next


 回到顶部