IN 54 MODI DIVERSI.
---------------
(galeoni, falci, zellini)
(0, 0, 1000), (0, 1, 971), (0, 2, 942), (0, 3, 913), (0, 4, 884),
(0, 5, 855), (0, 6, 826), (0, 7, 797), (0, 8, 768), (0, 9, 739),
(0, 10, 710), (0, 11, 681), (0, 12, 652), (0, 13, 623), (0, 14, 594),
(0, 15, 565), (0, 16, 536), (0, 17, 507), (0, 18, 478), (0, 19, 449),
(0, 20, 420), (0, 21, 391), (0, 22, 362), (0, 23, 333), (0, 24, 304),
(0, 25, 275), (0, 26, 246), (0, 27, 217), (0, 28, 188), (0, 29, 159),
(0, 30, 130), (0, 31, 101), (0, 32, 72), (0, 33, 43), (0, 34, 14),
(1, 0, 507), (1, 1, 478), (1, 2, 449), (1, 3, 420), (1, 4, 391),
(1, 5, 362), (1, 6, 333), (1, 7, 304), (1, 8, 275), (1, 9, 246),
(1, 10, 217), (1, 11, 188), (1, 12, 159), (1, 13, 130), (1, 14, 101),
(1, 15, 72), (1, 16, 43), (1, 17, 14),
(2, 0, 14)
------------------------------
MOTIVAZIONE
------------------------------
1 falce (F) = 29 zellini (Z)
1 galeone (G) = 17 F = 493 Z
---------------
Tre possibili prelievi di galeoni, g in (0, 1, 2), per (0, 493, 986) zellini, con resti di (1000, 507, 14).
Per prelevare i resti
* 1000 = 34*29 + 14 [35 possibili prelievi]
* 507 = 17*29 + 14 [18 possibili prelievi]
* 14 = 0*29 + 14 [un possibile prelievo]
------------------------------
GENERATORE
------------------------------
#
def zellini():
result = [(2, 0, 14)]
for f in range(35): result.append((0, f, 14 + 29*(34 - f)))
for f in range(18): result.append((1, f, 14 + 29*(17 - f)))
return sorted(result)
#
http://www.python.it
http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm