Processing math: 100%

First time here? Check out the FAQ!

Ask Your Question
0

Recurrence, for-loop and zero.

asked 7 years ago

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!

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
0

answered 7 years ago

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.

Preview: (hide)
link

Comments

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

sssageeee gravatar imagesssageeee ( 7 years ago )

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: 7 years ago

Seen: 271 times

Last updated: Apr 24 '17