Ask Your Question
0

Recurrence, for-loop and zero.

asked 2017-04-24 00:09:35 +0100

sssageeee gravatar image

Hello guys! Hope you guys are having a nice day.

I have some problem as follows: I setup some recurrence as follows

def f(j,k):
if k==0:
    m=j
elif j==0:
    m=k
else:
    m=j/k*(f(j-1,k)+1/k*(f(j-1,k)))+k/j*(f(j,k-1)+1/j*(f(j,k-1)))
return m

And if we calculate

f(1,1), f(2,1), f(1,2), f(2,2)

in sage, then what we get are

4, 35/2, 35/2, 105/2.

However, if we do the for loop as in the below, I found the above results to be zero!!:

for k in range(3):
    for j in range(3):
        (j,k), expVal(j,k)

And the calculation result from the sage is:

((0, 0), 0)

((1, 0), 1)

((2, 0), 2)

((0, 1), 1)

((1, 1), 0)

((2, 1), 0)

((0, 2), 2)

((1, 2), 0)

((2, 2), 0)

And observe the bolded result above... it is weird that the result is zero... Can anyone help me fix this please...

Thank you for any help! Hope you have a nice rest of the day!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2017-04-24 02:49:59 +0100

nbruin gravatar image

Try

for k in srange(3):
    for j in srange(3):
        print (j,k),f(j,k)

instead. Standard pitfall unfortunately: in python 2, "integer" division is truncating. Normally sage will provide you with "sage" integers for which division produces rational numbers, but if you use "range" then sage doesn't get the chance.

edit flag offensive delete link more

Comments

Thank you so much nbruin. Hope you have a good day!

sssageeee gravatar imagesssageeee ( 2017-04-24 03:20:31 +0100 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2017-04-24 00:09:35 +0100

Seen: 256 times

Last updated: Apr 24 '17