如何估算复杂的算法设施要求?

时间:2010-08-19 13:08:02

标签: complexity-theory estimation genetic-algorithm

我想了解如何使用一些众所周知的启发式方法有效地估计某些复杂算法的硬件要求 IE浏览器。我想快速估计在某个合理的时间或其他方面破解我的TEA O(2 ^ 32)或XTEA O(2 ^ 115.15)需要多少计算机能力

具有1000 x 4GHz四核CPU的设备功率,执行给定算法需要多长时间?
我也对O(log N)等算法的其他算法复杂度估计感兴趣。

问候 BUA

2 个答案:

答案 0 :(得分:2)

好的,所以我想出了这样的事情: 简化CPU时钟与MIPS相同。

有说明书的数量。 2 ^ 115和处理器与ex。 1GHz时钟
这是:

i = 2 ^ 115.15 时钟= 1GHz ipersec = 1 / 10E + 9

秒= i * ipersec

在python中:

def sec(N,cpuSpeedHz):
    instructions=math.pow(2, N)
    return instructions*(1./cpuSpeedHz)

sec(115.15, math.pow(10,9)) / (365*24*60*60)
1.4614952014571389e+18

因此计算它需要1.4 ^ 18年

所以需要1mln 4核1Ghz处理器:

sec(115.15, 1000000*4*math.pow(10,9)) / (365*24*60*60)
365373800364.28467

需要3.6 ^ 11年(~3600 mld年)

简化版:

2 ^ 115.15 = 2 ^ 32 * 2 ^ 83.15 时钟= 2 ^ 32~4Ghz 2 ^ 83.15 =

>>> math.pow(2,83.15)/(365*24*60*60)
3.4028086845230746e+17

检查:

2^32 = 10 ^ 9.63295986
>>> sec(115.15, math.pow(2,32))/(365*24*60*60)
3.4028086845230746e+17

答案 1 :(得分:0)

选择你喜欢的答案:

  1. 超出你的承受能力
  2. 键入你的机器会远远便宜得多
  3. 你要在哪里存储到达到O(2 ^ 115)时间复杂度所需的2 ^ 20个明文
  4. 一大堆
  5. 如果有人真的想要你的pr0n系列,那么打破钥匙扣要比钥匙更容易。