Project1

标题: 10000的阶乘。。好帅。。 [打印本页]

作者: 寒冷魔王    时间: 2015-2-5 22:23
标题: 10000的阶乘。。好帅。。
本帖最后由 寒冷魔王 于 2015-2-5 23:07 编辑

你会吓一跳的。。


数了一下,竟然有35660位。。
我对数学的敬仰程度又一次地上升了。。。

P.S.其实我是来卖萌的(PAI~)


作者: stevenrock    时间: 2015-2-5 22:25
卖萌可耻~
作者: 美丽晨露    时间: 2015-2-5 22:32
这结果是多少位数啊。
作者: myownroc    时间: 2015-2-6 02:03
图论比数论帅!
作者: 长弓巡洋集团    时间: 2015-2-6 07:37
算那么大的的数,机器在流血......
好在游戏里没有用上虚数、导数和回归函数......
作者: taroxd    时间: 2015-2-6 07:50
长弓巡洋集团 发表于 2015-2-6 07:37
算那么大的的数,机器在流血......
好在游戏里没有用上虚数、导数和回归函数...... ...

一万还好啦

(1..10000).inject :*
作者: RyanBern    时间: 2015-2-6 08:51
阶乘这种东西,玩玩就好。
不过应该体会到阶乘这东西是量级是很厉害的,所以编写算法时如果写出了一个复杂度为O(n!)的东西,那你就可以去面壁一会了。
lim(n->∞)10000^n/n!=0

BTW如果说大学数学里面,高数就是求导求积分,线性代数就是算行列式算矩阵逆的话,那数学是没啥好学的。
最起码,你要知道各种级数以及其收敛性理论,线性空间理论,Jordan标准型分解定理,这才是大学数学应该学的东西。
作者: taroxd    时间: 2015-2-6 11:09
本帖最后由 taroxd 于 2015-2-6 11:11 编辑

RUBY 代码复制
  1. def fact(n)
  2.   return 1 if n == 0
  3.   n * fact(n - 1)
  4. end
  5.  
  6. def fact2(n, accumulator = 1)
  7.   return accumulator if n == 0
  8.   fact2(n - 1, n * accumulator)
  9. end
  10.  
  11. p fact(4)
  12. p fact2(4)


后者是尾递归,前者不是。
前者的空间复杂度为 O(n),后者是 O(1) (在打开尾递归优化的条件下,且不考虑数据越大占的空间越大)
作者: 寒冷魔王    时间: 2015-2-6 11:18
本帖最后由 寒冷魔王 于 2015-2-6 11:25 编辑
taroxd 发表于 2015-2-6 11:09
def fact(n)
  return 1 if n == 0
  n * fact(n - 1)


有两个参数的话Lisp也能算了


通过参数传递这点我还真没想到,还是T君厉害
作者: taroxd    时间: 2015-2-6 11:26
本帖最后由 taroxd 于 2015-2-6 11:28 编辑
寒冷魔王 发表于 2015-2-6 11:18
有两个参数的话Lisp也能算了
[fold][/fold]


其实就是迭代(我歪楼我自豪)

另外,我更喜欢 Ruby 版的 Lisp 方言(啥)不就是数不清楚括号么

RUBY 代码复制
  1. fact = -> n {
  2.   iter = -> n, accumulator {
  3.     n.zero? ? accumulator : iter[n - 1, n * accumulator]
  4.   }
  5.   iter[n, 1]
  6. }


作者: 寒冷魔王    时间: 2015-2-6 11:36
本帖最后由 寒冷魔王 于 2015-2-6 11:45 编辑
taroxd 发表于 2015-2-6 11:26
其实就是迭代(我歪楼我自豪)

另外,我更喜欢 Ruby 版的 Lisp 方言(啥)不就是数不清楚括号么


翻译过来就是
  1. def fact(n)
  2.   private
  3.   def iter(n,accumulator)
  4.     n.zero? ? accumulator : iter(n-1,n*accumulator)
  5.   end
  6.   iter(n,1)
  7. end
复制代码


虽然没学过这些,不过看起来貌似Ruby把函数作为对象生成了

作者: 精灵使者    时间: 2015-2-6 12:38
12位的计算器可以计算到15的阶乘。
文曲星的科学技术法(最高到指数9999)可以算到3268的阶乘。

作者: 龙和许也    时间: 2015-2-6 12:42
  1. oh  = "你萌"
  2. my  ="这些"
  3. god ="大触太历害了~"

  4. p oh+my+god
复制代码

作者: 化螺耕    时间: 2015-2-6 16:40
我只是来膜拜楼上各位大神的
作者: zeldafd    时间: 2015-2-6 17:36

要論賣萌, 還是C++好=V=
作者: 乱逛的无尾熊    时间: 2015-2-6 17:37
好厉害。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1