排序算法:输出

时间:2012-06-17 09:20:58

标签: algorithm mathematical-optimization

我在网站上遇到了这个问题而且我无法理解输出,请帮助我理解: -

Bogosort,是一种愚蠢的算法,它随机地对序列进行混洗,直到它被排序。但是在这里我们稍微调整了一下,所以如果在最后一次洗牌之后,几个第一个元素最终会出现在正确的位置,我们将修复它们并且不再对这些元素进行洗牌。如果它们位于正确的位置,我们将对最后的元素执行相同的操作。例如,如果初始序列是(3,5,1,6,4,2)并且在一次洗牌之后得到(1,2,5,4,3,6),我们将保持1,2和6并继续使用相同的算法进行排序(5,4,3)。计算改进算法的预期混洗量,以便在最初没有元素位于正确位置的情况下对前n个自然数的序列进行排序。

输入:

2
6
10

输出:

2
1826/189
877318/35343

对于每个测试用例输出,改进算法以不可缩减分数的形式对前n个自然数的序列进行排序所需的预期混洗量。我只是无法理解输出。

2 个答案:

答案 0 :(得分:1)

我认为您在CodeChef上发现了问题。解释了Bogosort问题的答案here

答案 1 :(得分:0)

好的我觉得我找到了答案,这里有一个类似的问题https://math.stackexchange.com/questions/20658/expected-number-of-shuffles-to-sort-the-cards/21273,这个问题可以被认为是它的扩展