本帖最后由 523066680 于 2017-6-29 11:48 编辑
CU有个帖子要枚举九宫格满足横竖对角线和相同的情况,有个排列代码比较精简,应题主要求做详细说明,顺便发这里一份。
代码:http://bbs.chinaunix.net/forum.p ... ;page=1#pid24638198
将排列的部分单独提取:- #Code by: rubyish
- E_( [ 1 .. 9 ], [] );
-
- sub E_
- {
- my ( $a, $b ) = @_;
- #此处省略若干代码
- E_( [ @$a[ 0 .. $_ - 1, $_ + 1 .. $#$a ] ], [ @$b, $a->[$_] ] )
- for 0 .. $#$a;
- }
复制代码 图解(假设元素是a,b,c):
虽然我觉得大家都懂,但是做图这个工艺活我很喜欢。 |