鸣人之子 发表于 2010-3-31 18:26:19

【应用】斐波拉契数列及一个精简思路

斐波拉契数列,即1,1,2,3,5,8,13,21,34……
要求第n项的数值,(编程初学者,代码可能不太好。)

代码:


a := 0
b := 1
readln(n);
for i := 1 to n do
   begin
   b := b+a;
   a := b-a;
   end;
writeln(a);




ES方法如下:


准备:
n→X
0→A
1→B

开始:
XP1-1→X:A+B→B:B-A→A

答案在变量A中。




总结:这里将判断语句和赋值语句结合到了一起:XP1-1→X
判断X是否大于0时,也使X=X-1,省略了1/4的等号。

hcz 发表于 2010-3-31 18:34:45

n-1->y
1->x
1->a
Rec(Pol(a-x,y-1),y)+0/y+a->a

鸣人之子 发表于 2010-3-31 18:36:32

2# hcz
刚才贴子没发完,不好意思哈。

hcz 发表于 2010-3-31 18:38:12

嗯,刚看到

zasdfgbnm 发表于 2010-4-2 08:09:14


哈哈

hcz 发表于 2010-4-2 14:29:08

。。我火星了。。。。

kkoosky 发表于 2010-4-6 18:57:50

n→X
1→A
1→B


Pol(X-1,0)*0+0/(X-2)+A+B->A:Pol(X-1,0)*0+0/(X-2)+A+B->B

鸣人之子 发表于 2010-4-6 19:16:04

7# kkoosky
好繁琐,等号应该很少么?

hcz 发表于 2010-4-6 20:09:29

7楼的方法还是麻烦了,一个式子就可以完美解决的。
不过按等号次数已经最精简了(每个等号都是一个有效输出),式子也在100字符之内,一样ok的

另,其实不用ES编程,只要用5L提供的代数式同样可以搞定

zasdfgbnm 发表于 2010-4-16 19:39:02

1 -> x
1 -> y
=====================
x + y -> x:x + y -> y

hcz 发表于 2010-4-18 16:30:45

没多,都是一个等号一个结果
页: [1]
查看完整版本: 【应用】斐波拉契数列及一个精简思路