一个高难度的算法
用1、2、3、4四个数字排列成八位数A1A2A3A4A5A6A7A8,B1B2B3B4B5B6B7B8
(A1至A8 B1至B8)分别表示不同的两个八位数,现把A1至A4、B1至B4称右边,
A5至A8、B5至B8称左边,(如下图示)总条件:右边、左边上的4个数不能相同,
例如:4222 2222 和2222 1222尽管满足以下条件,但仍是不可取。
图示 A8A7A6A5 于A4A3A2A1
口口口口 口口口口
... 百十个 位 上下相对应的位子
左边 右边
B8B7B6B5 B4B3B2B1
口口口口 口口口口
条件 1、 Ai-Bi>=2 且 Bn-An>=1 3、 Bn-An>=1 且 An-Bn>=1
2、 Bi-Ai>=2 且 An-Bn>=1 4, Ai-Bi>=2 且 Bi-Ai>=2
注:n=1、2、3、4,i=5、6、7、8
Ai不等于Bi 、Bn不等于An、i不等于n
分别满足以上其中一个条件就符合,当然不能和其他条件满足编程的数号重复。
-------------------------------------------------------------------------------- 注解:
An表示数A第n 位的数 1.Ai--- Bn-- Ai234 Bn321 1234 4321
Bi--- An--- Bi234 An321 3234 3321
Bn表示数B第n位的数
2.--Bi- -An-- 34Bi4 2An21 3414 2421
Ai表示数A第i位的数 --Ai- -Bn-- 34Ai4 2Bn21 3434 2321
Bi表示数B第i位的数 3. ---- AnBn-- 2221 AnBn43 2221 1443
---- BnAn-- 2221 BnAn43 2221 2321
n、i表示从个位往高位增的数
4.BiAi-- ----
AiBi-- ----
-------------------------------------------------------------------------------
因为编程中会发生冲突 满足其中一个件都会发生冲突
注1: Bn-An>=1 2. Bn-An>=1 3.Bi-Ai=1 4.Bi-Ai>=1
Bn-An>=1 An-Bn =1 Ai-Bi=1 Bi-Ai>=1
比如说4333 2111 3343 2111
2224 4333 2224 4222
-------------------------------------------------------------------------------没有发生冲突 数号
1234 4321
3234 3321
3434 2321
3414 2421
这里有4组号个个数号多相比没有一个发生冲突
求满足条件的组合的数组共有多少个?