1

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

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

输入:

2
6
10

输出:

2
1826/189
877318/35343

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

4

2 回答 2

1

我假设您在CodeChef上发现了问题。这里有对 Bogosort 问题答案的解释。

于 2012-06-17T12:02:48.900 回答
0

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

于 2012-06-17T12:01:28.180 回答