在 n 处计算六次独立运行的斐波那契数的最大和最小时间

maxi and min times to calculate the Fibonacci numbers for six seperate runs at n

这个问题的措辞把我搞糊涂了。我知道如何使用 GetTickCount() 获得 "timing",但我必须为每个 N 重复计算 6 次,我必须有 6 个不同的 N,结果必须在一个 table 中报告作为最多一分钟的时间。在我看来,这似乎是不可行的,因为一个 N 的 运行 时间不会是另一个 N 的 运行 时间。非常感谢任何帮助。生病post下面的原题。

编辑*:我自己疲惫的大脑使问题复杂化了!我现在弄明白了 感谢所有花时间尝试帮助的人!

'Your task is to find the maximum and minimum execution times of the Fibonacci number computation routines for six separate, unique runs at each value of n. NOTE: do not use the tail recursion implementation.'

我正在考虑也许将平均 运行 时间值存储在数组中,然后对这些数组进行排序以获得最小值和最大值,并对最小值和最大值执行 6 次不同的迭代和递归操作,但是这需要 24 个数组,这看起来毫无意义。

对于每个输入N,您需要计算六次Fibb(N),并显示这些次数的最小值和最大值。您显示每个 N 一个最小值,每个 N 显示一个最大值。想象有 100 N,每个计算 6 次是否有帮助?您希望看到 100 个最小值和 100 个最大值。

很多简单的比赛或者作业,隐约看起来是这样的:

while(std::cin >> N) {
   int duration[6] = {};
   int result = 0;
   for(int i=0; i<6; ++i) {
       auto start = GetTickCount();
       int result = Fib(N);
       auto end = GetTickCount();
       duration[i] = end-start;
   }
   int max = std::max_element(std::begin(duration), std::end(duration));
   int min = std::min_element(std::begin(duration), std::end(duration));
   std::cout<<"Fib("<<N<<")="<<result<<" max="<<max<<" min="<<min<<'\n';
}