设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索

10000的阶乘。。好帅。。

查看数: 3878 | 评论数: 15 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-2-5 22:23

正文摘要:

本帖最后由 寒冷魔王 于 2015-2-5 23:07 编辑 你会吓一跳的。。 28462596809170545189064132121198688901480514017027992307941799942744113400037644437729907867577847758158840621423175288300423399401535187 ...

回复

乱逛的无尾熊 发表于 2015-2-6 17:37:40
好厉害。

评分

参与人数 1星屑 +5 收起 理由
寒冷魔王 + 5 塞糖

查看全部评分

zeldafd 发表于 2015-2-6 17:36:07

要論賣萌, 還是C++好=V=

点评

C风格的C++  发表于 2015-2-6 17:59
帅气,,不过竟然用calloc  发表于 2015-2-6 17:58

评分

参与人数 2星屑 +7 收起 理由
龙和许也 + 2 吓到我了……
寒冷魔王 + 5 塞糖

查看全部评分

化螺耕 发表于 2015-2-6 16:40:35
我只是来膜拜楼上各位大神的

评分

参与人数 1星屑 +5 收起 理由
寒冷魔王 + 5 塞糖

查看全部评分

龙和许也 发表于 2015-2-6 12:42:57
  1. oh  = "你萌"
  2. my  ="这些"
  3. god ="大触太历害了~"

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

点评

p "你萌""这些""大触太历害了~"  发表于 2015-2-6 17:38

评分

参与人数 1星屑 +5 收起 理由
寒冷魔王 + 5 塞糖

查看全部评分

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

点评

Ruby 这破效率算 100000 的阶乘也就几秒钟的事情  发表于 2015-2-6 12:44

评分

参与人数 1星屑 +5 收起 理由
寒冷魔王 + 5 塞糖

查看全部评分

寒冷魔王 发表于 2015-2-6 11:36:49
本帖最后由 寒冷魔王 于 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:15
主要是 Ruby 的 def 方法定义不是闭包,所以才必须要用到 Proc 对象  发表于 2015-2-6 12:05
嗯好吧,没报错,不过也没有意义。顶层定义的方法本来就是 Kernel 的 private 方法  发表于 2015-2-6 12:04
不加 private 还好加了 private 就报错了吧……  发表于 2015-2-6 12:03
加了个 private  发表于 2015-2-6 11:45
taroxd 发表于 2015-2-6 11:26:41
本帖最后由 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. }

点评

不过真是,括号是挺晕人的233  发表于 2015-2-6 11:34
又来了,你的->版lambda  发表于 2015-2-6 11:34

评分

参与人数 1星屑 +30 收起 理由
化螺耕 + 30 好晕。。。

查看全部评分

taroxd 发表于 2015-2-6 11:09:36
本帖最后由 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) (在打开尾递归优化的条件下,且不考虑数据越大占的空间越大)

点评

accumulator 本质上就是个外部变量嘛。写在默认参数里装逼而已(pia  发表于 2015-2-6 11:12
嗯对的,不过我是设个外部变量来算的尾递归阶乘  发表于 2015-2-6 11:11
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-11 12:51

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表