gpt4 book ai didi

algorithm - 为什么 k*k <= n 优于 k <= Math.sqrt(n)

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:32:37 27 4
gpt4 key购买 nike

我正在研究寻找原始数的算法,看到下面的语句,我不明白为什么。

while (k*k <= n) 

优于

while (k <= Math.sqrt(n))

是因为函数调用吗?该调用函数使用更多资源。

更新:正如@Codor 所说,我认为我需要提及 k 在循环内更改,而 n 未更改。

那么如果我之前存储Math.sqrt(n),每次都使用它,会不会比每次乘k*k更有效率?

最佳答案

显然,对 Math.sqrt 的调用使用了 float 学运算,这可能比乘法中使用的整数数学运算成本更高。另一方面,Math.sqrt 只需要一次循环求值,而 k*k 的求值则需要多次求值。

关于algorithm - 为什么 k*k <= n 优于 k <= Math.sqrt(n),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49849950/

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