Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ruby如何计算巨大数字的总和_Ruby - Fatal编程技术网

ruby如何计算巨大数字的总和

ruby如何计算巨大数字的总和,ruby,Ruby,所以我用ruby编写了一个basic程序,计算第n个斐波那契数: def fib(n) return 0 if n == 0 nums = [0, 1] for i in 2..n do nums.push(nums[i-1] + nums[i-2]) end return nums[n] end 现在我可以简单地用我喜欢的任意数字n来称呼它,f.x.200000 我只是在想ruby是怎么做到的?它是如何计算出如此庞大的数字并给出正确的结果的呢?Rub

所以我用ruby编写了一个basic程序,计算第n个斐波那契数:

 def fib(n)
   return 0 if n == 0
   nums = [0, 1]
   for i in 2..n do
     nums.push(nums[i-1] + nums[i-2])
   end
   return nums[n]
end
现在我可以简单地用我喜欢的任意数字n来称呼它,f.x.200000


我只是在想ruby是怎么做到的?它是如何计算出如此庞大的数字并给出正确的结果的呢?

Ruby在引擎盖下使用大数字来避免溢出。这里有一篇很好的文章解释了这个过程

Ruby在引擎盖下使用大量数据以避免溢出。这里有一篇很好的文章解释了这个过程

我不知道你在说什么。Ruby是一种计算机语言。计算机擅长计算,这就是为什么它们被称为计算机。为什么它不能给出正确的结果呢?因为在大多数语言中都会出现溢出,或者数字会被表示为精度很低的浮点数字。这在Bignum文档、教程和互联网上的许多页面中都有解释。你在哪里搜索的?我没有搜索任何东西,包括Bignum,只是因为我不知道它的存在。我不知道你在说什么。Ruby是一种计算机语言。计算机擅长计算,这就是为什么它们被称为计算机。为什么它不能给出正确的结果呢?因为在大多数语言中都会出现溢出,或者数字会被表示为精度很低的浮点数字。这在Bignum文档、教程和互联网上的许多页面中都有解释。你在哪里搜索?我没有搜索任何东西,包括Bignum,只是因为我不知道它的存在。