我遇到了存储问题。我有一个非常大的魔法"我想经常使用的数字(将计算时间缩短了98%)。问题在于,这个数字需要花费近40小时来计算,所以如果我可以保存并在合理的时间内重新加载它,那么节省的费用就会非常棒。
以下是用于说明问题的代表性代码。
num = 256...# Very large integer
num.size
=> 13584958492 # bytes
# To not get "string size to large error" when loading.
array_of_bytes = num # broken into sets of 100 MB
File.open("large_num", "a") do |line|
array_of_bytes.each do |bytes|
line.puts bytes
end
end
# To load the number
num = 0
File.open("large_num", "r").each do |line|
num = (num<<(8*10**8)) | line.to_i
end
# num is not equal to the input number
注意:我确实添加了必要数量的零&#39;在制作数组之前通过位移num,并在加载数字后将它们移位。
所以要么,如果有人知道它出错的地方以及如何解决它。或者如果你知道更好的方法,那就非常感激。