Foxtable(狐表)用户栏目专家坐堂 → 求助:关于排列组合的问题


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

主题:求助:关于排列组合的问题

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


加好友 发短信
等级:幼狐 帖子:129 积分:1199 威望:0 精华:0 注册:2013/3/7 11:20:00
求助:关于排列组合的问题  发帖心情 Post By:2014/3/20 15:27:00 [只看该作者]

我想实现预先设定的20个汉字假如分别为a、b、c、d、e、f、g、h、i、j、k、l、m、n、o、p、q、r、s、t代替。
然后在命令窗口自动输出任意三个字不同顺序的排列结果。
例如:abc、cba、abd等等。这个命令有哪位大侠能帮忙做出来啊,小弟在此不胜感激。谢谢!!

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


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

Dim nlist As new List(of String)
nlist.AddRange("a?b?c?d?e?f?g?h?i?j?k?l?m?n?o?p?q?r?s?t".split("?"))
Dim slist As new List(of String)
Do While slist.count<=2
    Dim s As String = nlist(Rand.Next(0,nlist.count-1))
    If slist.Contains(s)=False Then
        slist.Add(s)
    End If
Loop
Dim str As String
For Each s As String In slist
    str=str & s
Next
MessageBox.show(str)

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


加好友 发短信
等级:幼狐 帖子:129 积分:1199 威望:0 精华:0 注册:2013/3/7 11:20:00
  发帖心情 Post By:2014/3/21 8:41:00 [只看该作者]

首先谢谢你给出的代码,这的感谢!
我测试了你的代码也没有问题,但是每执行一次只会出一个结果,我是想执行后把所有结果都在输出部分一次全部列出。请问怎么改动代码啊,兄弟我真的不会。

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


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

提问最好一开始就精确描述自己的需求,不要含糊其辞,惜字如金! 浪费别人的时间,也浪费您的时间!

Dim nlist As new List(of String)
nlist.AddRange("a?b?c?d?e?f".split("?"))
Dim slist As new List(of String)
Dim str As String
For i As Integer = 0 To nlist.count -1
    For j As Integer = 0 To nlist.count -1
        For k As Integer = 0 To nlist.count -1
            If i<>j AndAlso i <> k AndAlso j <> k Then
                str=nlist(i) & nlist(j) & nlist(k)
                If slist.Contains(str)=False Then
                    slist.Add(str)
                End If
            End If
        Next
    Next
Next
For Each s As String In slist
    output.show(s)
Next

 回到顶部