• Dec 7th 2007, 02:11 PM
*skywalker*
hi,

any help will be greatly appreciated!!

*

• Dec 8th 2007, 05:18 AM
1.)
consider the function

Code:

def infinite_recursion():   return infinite_recursion()
if we write this infinite recursive function then it gives the error:

Code:

Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "<stdin>", line 2, in infinite_recursion   ...
with the final line repeating over and over.

if we just have an infinitely repeating loop. ie:

Code:

i=0 while 1: i+=1
we never get an error, and it just keeps repeating the loop, doing as its told.

2.)
recursive function to generate $\displaystyle \sum_{i=1}^n i$

Code:

def n_sum(n):   if n <= 1: return 1 #base case   return n+n_sum(n-1) #inductive step
for fibonacci sequence:

Code:

def nth_fib(n):   if n <= 1: return 1                #covers our base cases   return nth_fib(n-1) + nth_fib(n-2) #inductive step
for fib(0) and fib(1) we call our function once only (as it is covered in the base case)

for fib(n) we call our function how many times it calls for both $\displaystyle n$ and $\displaystyle n-1$
so $\displaystyle calls(n) = calls(n-1) + calls(n-2)$
this is the fibonacci relation, and we have the same initial cases:
$\displaystyle calls(0) = calls(1) = 1$
so $\displaystyle calls(n) = fib(n)$

ie the function is called 8 times with fib(5).

3.)
Code:

i = 0 while i < 100:   i+=1   if i%3 == 2:       print i, "mod", 3, "= 2"

Code:

for i in range(0,100):   if i%2 == 0:       print i, "is even"   else:       print i, "is odd"
4.
it will execute zero times.
this is because it executes once for each value i takes in the list []. this is an empty list so i takes no values.
• Dec 8th 2007, 01:02 PM
*skywalker*
Quote:

1.)
consider the function

Code:

def infinite_recursion():   return infinite_recursion()
if we write this infinite recursive function then it gives the error:

Code:

Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "<stdin>", line 2, in infinite_recursion   ...
with the final line repeating over and over.

if we just have an infinitely repeating loop. ie:

Code:

i=0 while 1: i+=1
we never get an error, and it just keeps repeating the loop, doing as its told.

2.)
recursive function to generate $\displaystyle \sum_{i=1}^n i$

Code:

def n_sum(n):   if n <= 1: return 1 #base case   return n+n_sum(n-1) #inductive step
for fibonacci sequence:

Code:

def nth_fib(n):   if n <= 1: return 1                #covers our base cases   return nth_fib(n-1) + nth_fib(n-2) #inductive step
for fib(0) and fib(1) we call our function once only (as it is covered in the base case)

for fib(n) we call our function how many times it calls for both $\displaystyle n$ and $\displaystyle n-1$
so $\displaystyle calls(n) = calls(n-1) + calls(n-2)$
this is the fibonacci relation, and we have the same initial cases:
$\displaystyle calls(0) = calls(1) = 1$
so $\displaystyle calls(n) = fib(n)$

ie the function is called 8 times with fib(5).

hi,
thanks for the help!:)

i tried but i cant seem to get the infinite recursion or fibbonaci sequence to work?!?:confused:
• Dec 9th 2007, 08:06 AM
really? the fibonacci one should work fine (it does for me)... just paste it in, and to call it put $\displaystyle \text{nth\_fib(5)}$, for example, it should return 8 in that case.