[中译] ProjectEuler 483 Repeated permutation

楼主: tml (流刑人形)   2014-10-07 05:14:10
483. Repeated permutation
https://projecteuler.net/problem=483
我们把每一个改变量列{1, 2, 3, ..., n}元素顺序的操作称为一种重排。对于有n个
元素的集合则有n!种重排的方式(包括维持所有元素顺序不动的操作)。当n = 3时
共有3! = 6种重排方式列举如下:
- P_1 = 维持原顺序不作更动
- P_2 = 交换第一、二个元素
- P_3 = 交换第一、三个元素
- P_4 = 交换第二、三个元素
- P_5 = 所有元素往右轮换一个位置
- P_6 = 所有元素往左轮换一个位置
如果反复操作其中一种重排,则终将会回到一开始的顺序。给定一重排P_i,令f(P_i)
为反复操作P_i以得到原始顺序的最小所需次数。例如,当n = 3时:
- f(P_1) = 1 : (1,2,3) → (1,2,3)
- f(P_2) = 2 : (1,2,3) → (2,1,3) → (1,2,3)
- f(P_3) = 2 : (1,2,3) → (3,2,1) → (1,2,3)
- f(P_4) = 2 : (1,2,3) → (1,3,2) → (1,2,3)
- f(P_5) = 3 : (1,2,3) → (3,1,2) → (2,3,1) → (1,2,3)
- f(P_6) = 3 : (1,2,3) → (2,3,1) → (3,1,2) → (1,2,3)
令g(n)为给定数列长度n时,对所有P_i取f(P_i)^2的平均值。
g(3) = (1^2 + 2^2 + 2^2 + 2^2 + 3^2 + 3^2)/3! = 31/6 ≒ 5.166666667e0
g(5) = 2081/120 ≒ 1.734166667e1
g(20) = 12422728886023769167301/2432902008176640000 ≒ 5.106136147e3
请求出g(350),以科学记号表示答案至十位有效位数,并如同上面三个例子一般、
以小写e作为真数与首数的区隔。

Links booklink

Contact Us: admin [ a t ] ucptt.com