以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助:关于排列组合的问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=47971) |
-- 作者:zbsdkq012890 -- 发布时间: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 -- 发布时间: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 -- 发布时间:2014/3/21 8:41:00 -- 首先谢谢你给出的代码,这的感谢! 我测试了你的代码也没有问题,但是每执行一次只会出一个结果,我是想执行后把所有结果都在输出部分一次全部列出。请问怎么改动代码啊,兄弟我真的不会。
|
-- 作者:Bin -- 发布时间: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 |