数组旋转变换分析

(1)数组初始化

初始化:[1,2,3,4,5,6,7,8]

其中1,5是一对,2,6是一对,3,7是一对,4,8是一对。

(2)任意旋转

把左边若干个数放到数组右边

新的数组和[x,x+1......x+7]mod 8同余

(3)把左边3个,插入右边5个的中间

理论上有4种情况:

x+3 x x+1 x+2 x+4 x+5 x+6 x+7

x+3 x+4  x x+1 x+2 x+5 x+6 x+7

x+3 x+4 x+5  x x+1 x+2 x+6 x+7

x+3 x+4 x+5 x+6 x x+1 x+2 x+7

(4)屁股底下

把第一个数放在屁股底下。

屁股底下一定是x+3,剩下的有4种情况:

x x+1 x+2 x+4 x+5 x+6 x+7

x+4  x x+1 x+2 x+5 x+6 x+7

x+4 x+5  x x+1 x+2 x+6 x+7

x+4 x+5 x+6 x x+1 x+2 x+7

(5)南方人 or 北方人?

把左边的1-3张插入到右边的4-6张中间

此时最多有12种情况,但最后一个一定是x+7

(6)男生 or 女生?

把左边的1-2张扔掉

此时最多有24种情况。

假设男生是a b c d e f,女生是a b c d e

男生的f和女生的e一定是x+7

(7)见证奇迹的时刻

把左边的1张放在最右边,重复7次

此时男生是b c d e f a,女生是c d e a b

(8)好运留下来,烦恼丢出去

男生是b c d e f a,女生是c d e a b

男生是d e f a b,女生是e a b c

男生是f a b d,女生是b c e

男生是b d f,女生是e b

男生是f b,女生是e

男生是f,女生是e

也就是说,剩下的一定是x+7

(9)魔法降临

屁股下面的x+3和剩下的x+7一定满足差值是4

你可能感兴趣的:(算法)