【发布时间】:2015-02-12 00:54:42
【问题描述】:
有人知道像O(N**3) 这样的复杂算法中的双星是什么意思吗?我在PHP的similar_text()函数中找到了一个,看不懂。
谢谢
【问题讨论】:
标签: php algorithm big-o complexity-theory time-complexity
有人知道像O(N**3) 这样的复杂算法中的双星是什么意思吗?我在PHP的similar_text()函数中找到了一个,看不懂。
谢谢
【问题讨论】:
标签: php algorithm big-o complexity-theory time-complexity
** 表示权力。因此,n**3 表示 n^3。复杂度的数量级为 n^3 或 O(n^3)
【讨论】:
这个双星是PHP中的求幂操作符(^操作符一般用于求幂)。
根据 PHP 手册,
$a ** $b ---- Exponentiation Operator
Result of raising $a to the $b'th power. Introduced in PHP 5.6.
因此,这里的复杂度是 O(n^3),即(n 的 3 次幂)的 O 或三次复杂度。
【讨论】:
当您只允许使用 ASCII 时,编写数学并不总是那么容易,因此作者经常求助于使用编程语言中的运算符来简洁地表示数学。
在某些语言中,** 表示求幂,这就是它的含义。 ASCII 没有上标,因此如果您仅限于 ASCII,就不可能用标准数学符号表示幂。您在 PHP 上下文中发现这一点的事实是进一步的线索,因为 PHP 是使用 ** 进行求幂的语言之一。
O(n**3) 表示 O(n3)。
【讨论】:
**star 是提升权力的简写(在某些语言中也是有效的运算符)。这与N^3 相同。因此该函数具有三次复杂度。
【讨论】: