gpt4 book ai didi

algorithm - 找到 n 个数字的 gcd 的最快方法是什么?

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

计算 n 个数的最大公约数的最快方法是什么?

最佳答案

没有递归:

int result = numbers[0];
for(int i = 1; i < numbers.length; i++){
result = gcd(result, numbers[i]);
}
return result;

对于非常大的数组,使用 fork-join 模式可能会更快,您可以在其中拆分数组并并行计算 gcds。这是一些伪代码:

int calculateGCD(int[] numbers){
if(numbers.length <= 2){
return gcd(numbers);
}
else {
INVOKE-IN-PARALLEL {
left = calculateGCD(extractLeftHalf(numbers));
right = calculateGCD(extractRightHalf(numbers));
}
return gcd(left,right);
}
}

关于algorithm - 找到 n 个数字的 gcd 的最快方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4885537/

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