← 完整题目索引

PROJECT EULER · #0523

First Sort 排序 I

First Sort I

仅题目 · 已解决原题 ↗

考虑以下对列表进行排序的算法:

  • 1.从列表开头开始,依次检查每对相邻元素。
  • 2.如果元素无序:
    • a.将该对中的最小元素移到列表的开头。
    • b.从步骤 1 重新启动该过程。
  • 3.如果所有对都按顺序排列,则停止。

例如,列表 {4132} 排序如下:

  • 413241 顺序不正确,因此将 1 移到列表前面)
  • 143243 顺序不正确,因此将 3 移到列表前面)
  • 314231 顺序不正确,因此将 1 移到列表前面)
  • 134242 顺序不正确,因此将 2 移到列表前面)
  • 213421 顺序不正确,因此将 1 移到列表前面)
  • 1234(列表现已排序)

F(L) 为执行步骤 2a 对列表 L 进行排序的次数。例如,F({4132})=5

E(n)F(P) 在整数 {1,2,,n} 的所有排列 P 上的期望值
您将获得 E(4)=3.25E(10)=115.725

找到E(30)。将您的答案四舍五入到小数点后两位数。

题解待补充

这道题的题目已收录,解题思路、代码和答案将在后续补充。