随笔 - 343  文章 - 8 评论 - 499 trackbacks - 19
<2011年9月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

公告:发表时间超过两个月的随笔的源码一般都被删除了,请勿留言索取。

昵称:天方
园龄:6年2个月
粉丝:27
关注:1

搜索

 
 

常用链接

最新随笔

随笔分类

随笔档案

文章分类

.net学习

最新评论

阅读排行榜

评论排行榜

推荐排行榜

今天又见有人问所有排列方式的问题,便随手写了个:

    static IEnumerable<IEnumerable<int>> GetAllSequence(int n)

    {

        if (n == 1)

        {

            return Enumerable.Range(0, 1).Select(_ => new int[] { 1 });

        }

        else

        {

            var num = Enumerable.Range(n, 1);

 

            return from seq in GetAllSequence(n - 1)

                    from count in Enumerable.Range(0, n)

                    select seq.Take(count).Concat(num).Concat(seq.Skip(count));

        }

    }

 

记得以前也写过过关于这个算法,搜了一下,是篇08年的老文章——一道关于排列组合的算法题。看了一下,虽然方法基本上是一样的,以前的代码写得比较青涩。看来这几年编程水平还是有点提高的。^_^

 

 

posted on 2011-09-12 16:44 天方 阅读(86) 评论(0) 编辑 收藏