# [Tutor] Exercise in writing a python function.

Kermit Rose kermit at polaris.net
Wed Aug 9 04:54:58 CEST 2006

``` Hello all.

I feel more familar with Python now, and when I recently went back to
the tutorial,  I could actually read it without being overwhelmed by too
much new detail.

I've been staring at the specs for a python function for a while.

I wrote one version of it and it worked.

Then I changed the specs, and now need to reconstruct my original work.

I'm sure I can do it fairly easily.

I'm not asking anyone to write the function for me.

It did occur to me that it could be a classroom exercise for other students.

The current specifications for the function are:

def incr(mult,z,zlim,mpylist):
# mult is a vector of exponents for the multipliers in mpylist.
# z is a positive odd  integer.
# zlim is the upper bound  critical value for the sum of  ( mpylist[k][0] *
mpylist[k][1] )
# where kth multiplier is mpylist [k][0]
# and kth  multiplier index is mpylist [k][1]

# function incr returns the next value of vector mult.
# mult may be thought as a number written in a variable base.
# mult[0] is the least significant and matches multiplier mpylist[0][0]
# unless doing so would make sum of multiplier * index exceed zlim.
# in that case mult[0] is set to zero, and 1 is added to mult[1]
# unless doing so would make sum of multilier * index exceed zlim
# in that case, mult[0] and mult[1] is set to zero,
# and 1 is added to mult[2]
# unless . . .

# mult[0] is set to -1 to indicate that the largest possible value of mult
has been exceeded.
# mpylist[0][0] = 2 and all other multipliers  in mpylist are odd.
# mult[0], the index on multiplier 2, must not equal 1.  It may equal zero,
or any integer > 1,
# provided the zlim constraint is met.

```