, starting_index = abacus.index(min(abacus)), @jonrsharpe.
, , units = 4 starting_index = 3, len(abacus), .. calculated_index % len(abacus).
, , range(units). , , .
:
def m(abacus, units):
starting_index = abacus.index(min(abacus))
for raw_index in range(units):
index = (raw_index + starting_index) % len(abacus)
abacus[index] = abacus[index] + 1
:
abacus = [0,0,0,0]
print abacus
m(abacus, 2)
print abacus
m(abacus, 4)
print abacus
m(abacus, 3)
print abacus
m(abacus, 3)
print abacus
m(abacus, 7)
print abacus
:
[0, 0, 0, 0]
[1, 1, 0, 0]
[2, 2, 1, 1]
[3, 2, 2, 2]
[3, 3, 3, 3]
[5, 5, 5, 4]