我正在研究一个问题 - 有一组最初无序的数字。目标是对它进行排序。排序应该通过洗牌来完成,直到它们落入正确的位置(是的,Bogosort'ish :))洗牌有一个优化,如果在洗牌之后,任何朝向开头或列表末尾的元素都落入正确的位置,这些元素将被修复,剩余的元素将使用上述相同的逻辑进行洗牌。问题是计算对最初无序数字组进行排序所需的平均数量f shuffles,比如说6。 我知道它沿概率线的分布顺序,但我不能完全归零它。任何有关正确方向或方法的建议/建议都将不胜感激。
由于
答案 0 :(得分:1)
这可以递归计算。
这个cna写成:
f(2) = ((1/2) * 0) + ((1/2) * (1/2) * 1) + ((1/2) * (1/2) * (1 + f(2)).
f(2) = 2/3
您可以通过这种方式继续将更大的输入减少到已经解决的较小输入。