你将面临的根本问题是数字太多:Python 2.7.3 (default, Apr 10 2012, 23:31:26) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> 0xffffffffffffffffffff
1208925819614629174706175L
>>> 0xffffffffff
1099511627775L
>>> 0xffffffffffffffffffff - 0xffffffffff
1208925819613529663078400L
>>> GB = 1024 ** 3
>>> GB
1073741824
>>> (0xffffffffffffffffffff - 0xffffffffff) / GB
1125899906841600L
>>> TB = 1024 ** 4
>>> (0xffffffffffffffffffff - 0xffffffffff) / TB
1099511627775L
>>>
如果每个数字只存储1个字节,则需要大量的tb来存储文件。在
换句话说,如果你每秒能处理1亿个数字。。。在
^{pr2}$
它需要383347862年才能完成。在
[编辑:]您似乎不了解0xffffffffffffffffffff的实际大小,并坚持要计算fs。请考虑以下情况:>>> for i in range(10, 21):
... lowf = '0x' + 'f' * i
... print 'from %22s to 0xffffffffffffffffffff' % lowf,
... low = int(lowf, 16)
... print ((0xffffffffffffffffffff - low) / (100 * 10**6)) / (60 * 60 * 24 * 365), 'years'
...
from 0xffffffffff to 0xffffffffffffffffffff 383347862 years
from 0xfffffffffff to 0xffffffffffffffffffff 383347862 years
from 0xffffffffffff to 0xffffffffffffffffffff 383347862 years
from 0xfffffffffffff to 0xffffffffffffffffffff 383347861 years
from 0xffffffffffffff to 0xffffffffffffffffffff 383347839 years
from 0xfffffffffffffff to 0xffffffffffffffffffff 383347497 years
from 0xffffffffffffffff to 0xffffffffffffffffffff 383342013 years
from 0xfffffffffffffffff to 0xffffffffffffffffffff 383254271 years
from 0xffffffffffffffffff to 0xffffffffffffffffffff 381850410 years
from 0xfffffffffffffffffff to 0xffffffffffffffffffff 359388621 years
from 0xffffffffffffffffffff to 0xffffffffffffffffffff 0 years
也就是说,只考虑19fs(从10到20f),您将节省23959241年的执行时间。与剩下的3.6亿年相比,这2300万年被淹没了(再次假设你每秒可以处理1亿个数字,但你不能)。在