我正在做一些数学,今天我了解到^ n的倒数是log(n)。我想知道这是否适用于复杂性。是超多项式时间对数时间的倒数,反之亦然?
我认为对数时间的倒数是O(n ^ 2)时间。
你能描述常见时间复杂性的倒置吗?
干杯!
答案 0 :(得分:1)
首先,你必须在这里定义你的意思。如果你的意思是通过将两个函数组合在一起而线性函数是同一性函数,即f(x)= x,那么f(x)= log x的倒数将是f(x)= 10 ^ x。然而,可以定义乘法函数inverse,其中常数函数f(x)= 1是同一性函数,则f(x)= x的倒数将是f(x)= 1 / x。虽然这有点复杂,但与说“2的倒数是什么?”并没有什么不同。并且没有说明操作,这很难回答。加法逆是-2,而乘法逆是1/2,所以根据你想要使用的算子,有不同的答案。
在编写函数时,键成为所需的最终结果:是O(n)还是O(1)?如果后者在编写函数时可能更具挑战性,因为我不确定用O(1)组合O(log n)最终会给你一个常量,或者它是否不会否定初始计数。例如,考虑对具有O(log n)时间复杂度的事物进行二进制搜索,并将基本打印语句作为具有O(1)时间复杂度的事物进行二次搜索,如果将它们放在一起,您仍然可以获得O(log n)在编写的函数中仍然会有log n调用,每次搜索时都会打印一个数字。
考虑采用两种不同的复杂功能并将其中一种放在另一种内部的想法,整体复杂性可能是每种功能的产物。考虑一个双for循环,其中每个循环是O(n)复杂度,总体复杂度是O(n)XO(n)= O(n ^ 2)这意味着在找到取消log n的东西的情况下会有挑战性的,因为你必须找到O(1 /(log n))的东西,我不确定在现实中存在。