一个无聊男人的疯狂《数据结构与算法分析-C++描述》学习笔记 用C++/lua/python/bash的四重实现(1) f(x) = 2f(x-1) + x^2
一个无聊男人的疯狂数据结构学习(1) f(x) = 2f(x-1) + x^2
write by 九天雁翎(JTianLing) -- www.jtianling.com
《数据结构与算法分析c++描述》 Mark Allen Weiss著 人民邮电大学出版 中文版第6面,图1-2,一个递归函数
C++:
书上已有实现。这里就不贴了,对于没有书的人来说,f(x) = 2f(x-1) + x * x的说明好像也足够了。
lua:
1 function f(x)
2 if (x == 0)
3 then
4 return 0;
5 else
6 return 2 * f(x -1) + x * x;
7 end
8 end
9
10 -- Test code
11 print(f(1))
12 print(f(2))
13 print(f(3))
14 print(f(4))
15
python:
1 def f(x):
2 'a easy recursive funtion'
3 if x == 0:
4 return 0
5 else:
6 return 2 * f(x -1) + x * x
7
8
9 # test code
10 print f(1)
11 print f(2)
12 print f(3)
13 print f(4)
14
bash:
用bash写一个简单的递归竟然也这么难。。。。。。郁闷,这是过了两天自己后来补上的,最后因为vim的上色没有办法直接复制到word和这边,所以通过vim2html的转换后再贴过来:)效果很好啊。
2
3 function f
4 {
5 local number="$1"
6 if [ $number = 0 ]
7 then
8 ret=0
9 else
10 let "decrnum = number - 1"
11 f $decrnum
12 let "ret = $? * 2 + $1 * $1"
13 fi
14
15 return $ret
16 }
17
18 for i in 1 2 3 4
19 do
20 f i
21 echo $?
22 done
23
补充说明一下,这次完全lua,python都是在windows中gvim完成,以后全部放到linux中完成。呵呵,其实作为脚本语言这样移植性非常好的语言来说,主要的区别仅仅是开始第一句linux会多句magic指示,以方便直接在shell中执行而已。主要的目的是以后的vim2html可以通过bash的脚本来一次完成,不需要在windows中通过这么多操作了。:)
write by 九天雁翎(JTianLing) -- www.jtianling.com
分类:
C++
Lua
Python
算法
标签:
Bash
C++
Lua
Python
《数据结构与算法分析-C++描述》
Posted By 九天雁翎 at 九天雁翎的博客 on 2008年11月08日