找回密码
 欢迎注册
查看: 10265|回复: 3

[提问] Pari语法

[复制链接]
发表于 2011-1-27 08:40:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
请教PARI语法:
定义了一个函数,为何输出都是1:

s(a,b,c)=if(a=1,1,if(b=0,if(c=0,s(a-1,0,0)+s(a-1,0,1),s(a-1,0,0)),if(c=0,s(a-1,b,0)+s(a-1,b,1),s(a-1,b-1,1)+s(a-1,b-1,0))))
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-1-27 15:17:02 | 显示全部楼层
请教PARI语法:
定义了一个函数,为何输出都是1:

s(a,b,c)=if(a==1,1,if(b==0,if(c==0,s(a-1,0,0)+s(a-1,0,1),s(a-1,0,0)),if(c==0,s(a-1,b,0)+s(a-1,b,1),s(a-1,b-1,1)+s(a-1,b-1,0))))
northwolves 发表于 2011-1-27 08:40

评分

参与人数 1金币 +6 收起 理由
northwolves + 6 汗。。。。。。

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-1-27 16:20:14 | 显示全部楼层
还是不对。不能这样递归?

  ***   deep recursion: if(a==1,1,if(b==0,if
                        ^--------------------

但这样递归是可以的:

(16:19) gp > f(n)=if(n<2,1,n*f(n-1))
(16:19) gp > f(10)
%2 = 3628800
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-1-27 16:30:25 | 显示全部楼层
这种复杂的递归不仅仅效率低,还容易引起堆栈溢出。
自己开三维数组然后动态规划比较好
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-6-14 02:33 , Processed in 0.046940 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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