Big-O Space乘法要求

时间:2010-12-07 23:40:10

标签: complexity-theory big-o space-complexity

Stack Overflow。我在这里看到了一些关于时间复杂性的大量资源,但到目前为止,我还没有能够使用它们回答这个空间复杂性问题。所以:

如果我将前n个素数相乘,那么存储答案需要 space ?例如,将前1000个素数相乘并存储结果数(整数,尽管是大整数)。它需要n平方还是log(n)空间?

非常感谢!

2 个答案:

答案 0 :(得分:1)

prime number theorem告诉我们 n 的素数大约是 n ln n ,所以第一个的产物< em> n 素数大约是

  

Π i n i ln i )= 名词的! O((log n n )= O(( n log n 名词

要表示这个数字,你需要的空间就是那个数字的对数,即

  

O( n (log n + log log n ))。

(请注意,这比存储 n !所需的空间渐近地大,这只是O( n log n )。 )

答案 1 :(得分:0)

刚刚提出问题的最后部分。如果你有一个前n个素数的列表,最后乘法中的数字位数将是log(n ^ n),它只是n log n。由于算法只是将每个算法与一个累加器相乘,我会说总空间要求是最终预期的数字位数,即:n log(n)