Enumeració dels punts del primer quadrant

Volem poder obtenir qualsevol punt del pla amb coordenades enteres estrictament positives. Una manera d’aconseguir-ho consisteix en ordenar-los tal com indica aquest dibuix:

../../../_images/graella.svg

Com sabeu, la sèrie següent serveix per a obtenir els punts en l’ordre indicat:

\[\begin{split}\begin{align*} (x_0, y_0) & = (1, 1) \\ (x_{i+1}, y_{i+1}) & = \begin{cases} (x_i - 1, y_i + 1) & \mbox{si } & x_i \gt 1 \\ (y_i + 1, 1) & \mbox{si } & x_i = 1 \end{cases} \mbox{ per } i \geq 0 \end{align*}\end{split}\]

Al mòdul punts_enters (fitxer punts_enters.py), definiu la funció següent:

punts_enters.punt_del_pla(i)

Retorna l”i-èssim punt del pla definit segons la sèrie anterior. El valor retornat ha de ser una tupla amb les dues coordenades enteres.

El paràmetre i ha de complir \(i \ge 0\).

Per exemple:


>>> punt_del_pla(0)
(1, 1)
>>> punt_del_pla(1)
(2, 1)
>>> punt_del_pla(2)
(1, 2)
>>> punt_del_pla(6)
(4, 1)
>>> punt_del_pla(12)
(3, 3)

Disposeu de més jocs de proves al fitxer test-punt_del_pla.txt i d’una solució al fitxer punts_enters.py