gpt4 book ai didi

c++ - 算法永远运行的整数排列

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:31:02 25 4
gpt4 key购买 nike

我在大学里遇到了以下问题:

0n - 1 的整数排列的最小 n 是多少,算法在其上运行永远?

#include <iostream>
#include <vector>
int main()
{
std::vector<int> v;
v.push_back(3);
v.push_back(1);
v.push_back(0);
v.push_back(6);
v.push_back(2);
v.push_back(7);
v.push_back(5);
v.push_back(4);
int j = 0;
int i = 0;
for(i = 0; i < v.size(); i++)
{
if(v[i] > i)
{
j = i;
while( j < v.size() && v[j] >= j )
{
j = j + 1;
}
int temp = v[i];
v[i] = v[j];
v[j] = temp;
i = 0;
}

}
return 0;
}

我已经手动找到排列 {3, 1, 0, 6, 2, 7, 5,4}。如果有人检查我的答案或找到更小的排列,我将不胜感激。

我已经尝试了很多排列,但不是通过蛮力,而是通过逻辑选择,我认为这是算法循环的最小序列。

最佳答案

最小 n 为 6。可能的解决方案:

0 3 4 5 2 1导致0 2 4 5 3 1导致回到0 3 4 5 2 1

关于c++ - 算法永远运行的整数排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16008700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com