用haskell整型默认就是任意精度的   2**1000000 立马出结果
至于5  ** 1449613541这级别的  跑半天不动,最后直接swap(3G内存),硬盘不行,不敢继续运行直接kill了
很好奇这么大的数能有快速的计算方式吗?
On Sunday, March 18, 2012, cnhack TNT wrote:

> 我了个去,这个计算太夸张了,默认情况下 Pari 栈直接溢出了。。。
> 取巧的做法是,直接拿 perl 去抓 wolframalpha 的结果,哈哈:
>
>     http://www.wolframalpha.com/input/?i=5.236067**1449613541
>
>
>
> 2012/3/17 kevin_li <[email protected] <javascript:_e({}, 'cvml',
> '[email protected]');>>
>
>> 好的 非常感谢 :)
>> 我试试先,
>> 不过可能还是解决不了这个题目,  我只是拿2 ** 1000000 举例子, 题目里面是 11-12位数的次幂,5.236067
>> ** 1449613541 这样的。
>>
>>
>> 在 2012-03-17 04:45:45,"cnhack TNT" <[email protected]<javascript:_e({}, 
>> 'cvml', '[email protected]');>>
>> 写道:
>>
>>  安装 Math::BigInt::Pari 或者 Math::BigInt::GMP 模块,然后指定 bignum 加载两者之一. 如:
>>
>>     use bignum lib => 'Pari';
>>
>> 我在命令行上试验:
>>
>>     perl -Mbignum=l,Pari -le 'print 2**1000000'
>>
>> 不到十秒出结果,当然结果对不对,你还得验证一下哈
>>
>>
>>
>>
>> 2012/3/16 kevin_li <[email protected] <javascript:_e({}, 'cvml',
>> '[email protected]');>>
>>
>>> 这几天发现google 还有个code jam这么个东西, 里面有历年的比赛题目, 就没事儿做做玩儿玩儿, 我都是用perl 做。
>>> 做了几个不是很难,直到碰到了这个
>>> http://code.google.com/codejam/contest/32016/dashboard#s=p2
>>> 里面的large 涉及到 大数 计算。
>>> 我用的use bignum; 计算大数。
>>> 以前从来没碰到过用 大数 ,刚才试了一下,我的机器 算个 2**1000000, 就要4分钟。。。。
>>>
>>> 问题是:这个题目用perl 怎么完成?是有更好的计算大数的方式? 还是这个题目就不能用 “算次幂”的方式来解决?
>>>
>>>
>>>  --
>>> 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
>>> 要向此网上论坛发帖,请发送电子邮件至 [email protected] <javascript:_e({},
>>> 'cvml', '[email protected]');>。
>>> 要取消订阅此网上论坛,请发送电子邮件至 
>>> [email protected]<javascript:_e({}, 'cvml', 
>>> 'perlchina%[email protected]');>
>>> 。
>>> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>>>
>>
>>  --
>> 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
>> 要向此网上论坛发帖,请发送电子邮件至 [email protected] <javascript:_e({}, 'cvml',
>> '[email protected]');>。
>> 要取消订阅此网上论坛,请发送电子邮件至 [email protected]<javascript:_e({}, 
>> 'cvml', '[email protected]');>
>> 。
>> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>>
>>
>>
>>  --
>> 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
>> 要向此网上论坛发帖,请发送电子邮件至 [email protected] <javascript:_e({}, 'cvml',
>> '[email protected]');>。
>> 要取消订阅此网上论坛,请发送电子邮件至 [email protected]<javascript:_e({}, 
>> 'cvml', 'perlchina%[email protected]');>
>> 。
>> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>>
>
>  --
> 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
> 要向此网上论坛发帖,请发送电子邮件至 [email protected] <javascript:_e({}, 'cvml',
> '[email protected]');>。
> 要取消订阅此网上论坛,请发送电子邮件至 [email protected]<javascript:_e({}, 
> 'cvml', 'perlchina%[email protected]');>
> 。
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>

-- 
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 [email protected]。
要取消订阅此网上论坛,请发送电子邮件至 [email protected]。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

回复