javascript Math.sin()是O(1)吗?
我想知道javascript Math.sin()是O(1)吗?,javascript,math,time-complexity,Javascript,Math,Time Complexity,我想知道Math.sin(),Math.cos()是否为O(1),以及如何将其转换为编译器 我们可以为它创建一个匹配表 或者我们可以创建一个不太详细的匹配表,并使用线性公式计算值 或者我们可以把它分解 我想在任何意义上,Math.sin()都是O(1),因为输入是有界的,但是它在编译器中到底是如何完成的,它有多复杂?可能不可能给出明确的答案,所以我会尽量向您提供尽可能多的信息 Math对象实现在浏览器和操作系统之间可能有所不同(“请注意,许多数学函数的精度取决于实现。这意味着不同的浏览器可以给出
Math.sin()
,Math.cos()
是否为O(1),以及如何将其转换为编译器
我们可以为它创建一个匹配表
或者我们可以创建一个不太详细的匹配表,并使用线性公式计算值
或者我们可以把它分解
我想在任何意义上,
Math.sin()
都是O(1),因为输入是有界的,但是它在编译器中到底是如何完成的,它有多复杂?可能不可能给出明确的答案,所以我会尽量向您提供尽可能多的信息
Math
对象实现在浏览器和操作系统之间可能有所不同(“请注意,许多数学函数的精度取决于实现。这意味着不同的浏览器可以给出不同的结果,甚至不同操作系统或体系结构上的同一JS引擎也可以给出不同的结果。”)
正弦函数有几种主要的实现方式:
复杂性将取决于实现。据我所知,CORDIC算法更常见。它看起来像一个复制品:它是
O(1)
(对于C
的某些值),因为它对指令有一个[小]有限的限制-即使是泰勒展开,例如。这并不意味着每个调用都保证花费相同的时间(或不是),但是这是一种解释性语言。没有编译器,但通常有编译器。参见,例如O(1),关于什么?