求助：用java写出算法：54张扑克，分成上下两等份有规律的洗牌，多少次可以返回初始值？

为了让你独立完成作业，我特地不使用 java 语言。
使用 lua 是因为这个语言下标从 1 开始，相对来说难以抄袭成其他语言。
代码在此：
function flush1(inp)
    local outp={}
    local len=#inp
    local halflen=math.floor(len/2)
    for i=1,halflen do
        outp[2*i-1] = inp[halflen+i]
        outp[2*i] = inp[i]
    end
    -- when len(inp) is odd
    if not outp[len] then
        outp[len] = inp[len]
    end
    return outp
end

function flush2(inp)
    local outp={}
    local len=#inp
    local halflen=math.ceil(len/2)
    for i=1,halflen do
        outp[2*i-1] = inp[i]
        outp[2*i] = inp[halflen+i]
    end
    return outp
end

local box={}
for i=1,54 do
    box[i] = i
end
ins = table.concat(box, ' ')
print(ins)
local count=0
repeat
    box = flush1(box)
    outs = table.concat(box, ' ')
    count = count+1
    print(outs)
until outs==ins
print('result:', count)

运行结果（这是我喜欢的方式）：
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
28 1 29 2 30 3 31 4 32 5 33 6 34 7 35 8 36 9 37 10 38 11 39 12 40 13 41 14 42 15 43 16 44 17 45 18 46 19 47 20 48 21 49 22 50 23 51 24 52 25 53 26 54 27
14 28 42 1 15 29 43 2 16 30 44 3 17 31 45 4 18 32 46 5 19 33 47 6 20 34 48 7 21 35 49 8 22 36 50 9 23 37 51 10 24 38 52 11 25 39 53 12 26 40 54 13 27 41
7 14 21 28 35 42 49 1 8 15 22 29 36 43 50 2 9 16 23 30 37 44 51 3 10 17 24 31 38 45 52 4 11 18 25 32 39 46 53 5 12 19 26 33 40 47 54 6 13 20 27 34 41 48
31 7 38 14 45 21 52 28 4 35 11 42 18 49 25 1 32 8 39 15 46 22 53 29 5 36 12 43 19 50 26 2 33 9 40 16 47 23 54 30 6 37 13 44 20 51 27 3 34 10 41 17 48 24
43 31 19 7 50 38 26 14 2 45 33 21 9 52 40 28 16 4 47 35 23 11 54 42 30 18 6 49 37 25 13 1 44 32 20 8 51 39 27 15 3 46 34 22 10 53 41 29 17 5 48 36 24 12
49 43 37 31 25 19 13 7 1 50 44 38 32 26 20 14 8 2 51 45 39 33 27 21 15 9 3 52 46 40 34 28 22 16 10 4 53 47 41 35 29 23 17 11 5 54 48 42 36 30 24 18 12 6
52 49 46 43 40 37 34 31 28 25 22 19 16 13 10 7 4 1 53 50 47 44 41 38 35 32 29 26 23 20 17 14 11 8 5 2 54 51 48 45 42 39 36 33 30 27 24 21 18 15 12 9 6 3
26 52 23 49 20 46 17 43 14 40 11 37 8 34 5 31 2 28 54 25 51 22 48 19 45 16 42 13 39 10 36 7 33 4 30 1 27 53 24 50 21 47 18 44 15 41 12 38 9 35 6 32 3 29
13 26 39 52 10 23 36 49 7 20 33 46 4 17 30 43 1 14 27 40 53 11 24 37 50 8 21 34 47 5 18 31 44 2 15 28 41 54 12 25 38 51 9 22 35 48 6 19 32 45 3 16 29 42
34 13 47 26 5 39 18 52 31 10 44 23 2 36 15 49 28 7 41 20 54 33 12 46 25 4 38 17 51 30 9 43 22 1 35 14 48 27 6 40 19 53 32 11 45 24 3 37 16 50 29 8 42 21
17 34 51 13 30 47 9 26 43 5 22 39 1 18 35 52 14 31 48 10 27 44 6 23 40 2 19 36 53 15 32 49 11 28 45 7 24 41 3 20 37 54 16 33 50 12 29 46 8 25 42 4 21 38
36 17 53 34 15 51 32 13 49 30 11 47 28 9 45 26 7 43 24 5 41 22 3 39 20 1 37 18 54 35 16 52 33 14 50 31 12 48 29 10 46 27 8 44 25 6 42 23 4 40 21 2 38 19
18 36 54 17 35 53 16 34 52 15 33 51 14 32 50 13 31 49 12 30 48 11 29 47 10 28 46 9 27 45 8 26 44 7 25 43 6 24 42 5 23 41 4 22 40 3 21 39 2 20 38 1 19 37
9 18 27 36 45 54 8 17 26 35 44 53 7 16 25 34 43 52 6 15 24 33 42 51 5 14 23 32 41 50 4 13 22 31 40 49 3 12 21 30 39 48 2 11 20 29 38 47 1 10 19 28 37 46
32 9 41 18 50 27 4 36 13 45 22 54 31 8 40 17 49 26 3 35 12 44 21 53 30 7 39 16 48 25 2 34 11 43 20 52 29 6 38 15 47 24 1 33 10 42 19 51 28 5 37 14 46 23
16 32 48 9 25 41 2 18 34 50 11 27 43 4 20 36 52 13 29 45 6 22 38 54 15 31 47 8 24 40 1 17 33 49 10 26 42 3 19 35 51 12 28 44 5 21 37 53 14 30 46 7 23 39
8 16 24 32 40 48 1 9 17 25 33 41 49 2 10 18 26 34 42 50 3 11 19 27 35 43 51 4 12 20 28 36 44 52 5 13 21 29 37 45 53 6 14 22 30 38 46 54 7 15 23 31 39 47
4 8 12 16 20 24 28 32 36 40 44 48 52 1 5 9 13 17 21 25 29 33 37 41 45 49 53 2 6 10 14 18 22 26 30 34 38 42 46 50 54 3 7 11 15 19 23 27 31 35 39 43 47 51
2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 46 48 50 52 54 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
result: 20
然而其实你这个题目的答案是 52。因为需要把 1 放在固定的位置上。
使用代码中提供的 flush2 函数可以实现题目要求的洗牌方式。