【问题标题】:How computers calculate logarithm?计算机如何计算对数?
【发布时间】:2021-05-05 05:46:27
【问题描述】:

我想知道计算机如何计算对数? 我不是说相关的功能。例如,Python 使用math.log() 函数。但我想知道这个功能到底是做什么的?并且可以再次更准确地模拟它吗? 有公式吗?还是算法? (我认为计算机没有日志表!) 谢谢

【问题讨论】:

  • 您可以在这里找到问题的答案:math.stackexchange.com/questions/61209/…
  • 有很多方法可以计算日志...例如参见Building a logarithm function in C without using float type ...您可以使用多项式逼近,exp 的二进制搜索来获得它的逆,IIRC 也 CORDIC,代数恒等式.. . 无论如何,任何体面的 FPU 都将 log2,ln 直接实现为单个指令,您可以通过将任何对数基数与常数相乘非常简单地将任何对数基数转换为任何其他数
  • @Unreal Studio 计算log() 的方法有很多种,具体取决于硬件平台和设计目标。我展示了一种可能性here

标签: algorithm computer-science logarithm


【解决方案1】:

例如,GNU C 库使用对 fyl2x() 汇编程序指令的调用,这意味着对数是直接从硬件计算的。 因此有人应该问:计算机使用什么算法计算对数? 取决于CPU,对于intel IA64,他们使用泰勒级数结合表格。

更多信息可以在这里找到:http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.24.5177

这里:http://www.computer.org/csdl/proceedings/arith/1999/0116/00/01160004.pdf

【讨论】:

    【解决方案2】:

    这是一个非常开放、广泛和“依赖”的项目。

    对于每一种编程语言、每一种不同的核心库、每一种不同的系统等等,可能存在不同的算法/机制和机器代码指令来执行数学(和任何其他类型的)计算。

    此外,即使这个世界上所有的编程语言都使用相同的算法“X”,它仍然不意味着,计算机以 X 方式计算对数,因为,计算机仍然会(很可能)在不同的情况下以不同的方式完成其机器级别的工作,而不管算法是相同的(这不太可能)这一点。

    请记住,计算机体系结构不同,操作系统不同,并且汇编指令可能因 CPU 而异。

    我真的认为,你应该在这个网站上提出更具体和具体的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      相关资源
      最近更新 更多