在 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';
}
这个问题的措辞把我搞糊涂了。我知道如何使用 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';
}