当前位置:首页 >> 学科竞赛 >>

Recursive Functions计算机竞赛


Recursive Functions A definition that defines an object in terms of itself is said to be recursive. This theoretical mathematical topic serves as an introduction to recursive programming (whi

ch is supported by Pascal, but not by most BASICs). It also provides a framework for analyzing algorithms (determining the running time and/or space required) which contain loops or recursive sections. Many expressions may be defined recursively in a very simple and elegant manner. The art of recursive thinking is an important skill. Applications of recursion appear in many areas of mathematics (factorials, compound interest, difference equations, etc.) In this round recursive relationships will be shown not in the context of a programming language but usually in functional notation from mathematics or in an algorithmic description. References Roberts, Eric S. Thinking Recursively, Wiley (1986). Rohl, J.S. Recursion via Pascal, Cambridge University Press (1984). Wirth, Niklaus. Algorithms + Data Structures = Programs, Prentice-Hall (1976), Chapter 3.

Sample Problems Consider the following recursive algorithm for painting a square: 1. Given a square. 2. If the length of a side is less than 2 feet, then stop. 3. Divide the square into 4 equal size squares (i.e., draw a “plus” sign inside the square). 4. Paint one of these 4 small squares. 5. Repeat this procedure (start at step 1) for each of the 3 unpainted squares. If this algorithm is applied to a square with a side of 16 feet (having a total area of 256 sq. feet), how many square feet will be painted? In the first pass, we get four squares of side 8. One is painted; three are unpainted. Next, we have 3*4 squares of side 4: three are painted (area=3*42), nine are not. Next, we have 9*4 squares of side 2: nine are painted (area = 9*22), 27 are not. Finally, we have 27*4 squares of side 1: twenty-seven are painted. Therefore, the total painted is 1*82 + 3*42 + 9*22 + 27*12 = 175.

Evaluate f(12, 6), given: f(x,y) = +2 ? f(x-y,y-1) x+y when x>y otherwise

Evaluate the function as follows: f(12, 6) = f(6, 5)+2 = (f (1, 4)+2)+2 = f(1, 4)+4 = (1+4)+4 =9 Working backwards, we get f(0)= 1 f(1) = 2 f(2) = f(f(0))+1 = f(1)+1 = 2+1 = 3 f(3) = f(f(1))+1 = f(2)+1 = 3+1 = 4 f(4) = f(f(2))+1 = f(3)+1 = 4+1 = 5 f(5) = f(f(3))+1 = f(4)+1 = 5+1 = 6 f(6) = f(f(4))+1 = f(5)+1 = 6+1 = 7 Ackerman’s Function is infamous for its potential growth. In fact, we don’t have room here to give a full explanation of the problem. For details, refer to the 1981-82 ACSL All-Star Contest. By evaluating A(1,0), A(1,1), A(1,2) and A(1,3), we see that in general, A(1, x)=2+x. If we evaluate A(2,0), A(2,1), …, we see that in general, A(2,x)=2x+3. To solve our problem, we substitute x=3 and we get an answer of 9.

Find f(6), given:

f(x) =

?

f (f (x-2))+1 2 1

when x>1 when x=1 when x=0

One of the best known recursive functions, Ackerman’s Function, is defined below. Evaluate A(2, 3). A(M,N) =

?

N+1 if M=0 A(M-1, 1) if M?0, N=0 A(M-1, A(M, N-1)) if M?0, N?0

Challenge for the bored: Evaluate A(n, m) in terms of n and m.


相关文章:
Recursive Calls
Recursive Calls_IT/计算机_专业资料。Recursive calls are only allowed for subprocedures. A recursive call is one where procedureRecursive...
计算机全英班09期末
计算机全英班09期末 华南理工大学历年历届C++ 期末考试试卷试题、答案及复习资料大全...B) Recursive functions are the functions that call themselves directly. C)...
exponential functions and recursive rules.
exponential functions and recursive rules._高一数学_数学_高中教育_教育专区。国外指数函数教学设计exponential functions and recursive rules. In this lesson make ...
17review(Recursion)_计算机软件及应用_IT/计算机_专业资料
17review(Recursion)_计算机软件及应用_IT/计算机_专业资料。Chapter 17 Recursion...(TRUE) Recursive functions are always simpler than non-recursive functions. ...
ExperimentReport-User difined function
上海理工大学计算机工程学院 实验报告 实验名称 课程名称 User-Defined Functions ...Realize it using recursive function. 2. Experiment Environment(Software, ...
Recursive Patterns OF SNOBOL
In our previous discussion of recursive functions, we said they work because successive calls present the function with progressively simpler problems, until ...
计算机网络大纲
Recursive queries vs Iterated queries caching and updating records DNS records...functions: run routing algorithms/protocol (RIP, OSPF, BGP) forwarding ...
安卓系统与IOS系统比较—毕业英文文献翻译
安卓系统与IOS系统比较—毕业英文文献翻译_计算机软件...providing most functions in Java core libraries. ...It?s a recursive course and the above ...
boost库锁介绍_IT/计算机_专业资料
boost库锁介绍_IT/计算机_专业资料。boost库锁介绍● boost 锁的概述 boost 库...mutex> exclusiveLock; ▼ 递归式的互斥量 boost::recursive_mutex 提供一个...
C语言程序设计大赛资料
(最短路径) Recursive Search Techniques (回溯搜索技术) Minimum Spanning Tree ...竞赛类的黑宝书) 《青少年国际和全国信息学(计算机)奥林匹克竞赛指导)――组合...
更多相关标签:
计算机竞赛 | 计算机知识竞赛 | 高中计算机竞赛 | 计算机奥林匹克竞赛 | 计算机知识竞赛题库 | 中学生计算机竞赛 | 大学生计算机竞赛 | 世纪杯计算机竞赛 |