【发布时间】:2013-11-28 17:42:39
【问题描述】:
我有一个 309 位整数,我想遍历它的字符。
目前我正在使用:
require 'openssl'
e = 116505013962726356794269846667188147473899121100449069443844506823885859211073843523906823741034558875724969276233769835502344452366515593952571468651971447660633083078837371793388842846199643249996094940742465135064478448126948741186882484457847959126808512823416166517945252986434515406363102297514031583117
我有:
e.times do |i|
...
end
这会产生错误,这是可以理解的:
undefined method `times' for #<OpenSSL::BN:0x007fec05002140>
我试图将 bignum 转换为整数:
e.to_i.times do |i|
...
end
返回:
bignum too big to convert into `long'
我明白为什么会收到这些错误,但我想问的是如何遍历如此大数字的每个字符?
【问题讨论】:
-
迭代
e次将带你到时间的尽头。 -
您的意思是“迭代以 10 为基数表示的数字(作为字符)”(当前答案地址)还是其他?
-
我觉得不实用。即使有办法做到这一点,我认为迭代结束时你也不会活着。
-
目前处理一些加密事物是有界限的,所以我猜这么大的迭代很常见。
标签: ruby biginteger bignum