La seqüència de Recamán amb paràmetre va ser descrita pel matemàtic colombià Bernardo Recamán Santos i és definada així:
Així, els deu primers termes de la seqüència de Recamán amb són [0, 1, 3, 6, 2, 7, 13, 20, 12, 21] i els deu primers termes de la seqüència de Recamán amb són [0, 3, 7, 2, 8, 1, 9, 18, 28, 17].
Escriviu una funció
def recaman(k: int) -> Iterator[int]
que, donat un natural , generi la seqüència de Recamán amb paràmetre .
Escriviu una funció
def recaman_from(k: int, n: int) -> Iterator[int]
que, donat uns naturals i , generi la seqüència de Recamán amb paràmetre començant pel terme -èsim.
Escriviu una funció
def recaman_first_completion(k: int, x: int) -> int
que, donat uns naturals i , retorni el primer tal que conté tots els naturals fins a (). Assumiu que aquest valor existeix, malgrat que aquest fet no ha estat encara mai demostrat.
Implementeu totes les funcions de forma senzilla, clara i concisa aprofitant Python.
Descarregueu-vos el fitxer code.py i anomeneu-lo
recaman.py. El programa principal i l’esquelet de les
funcions ja se us dóna implementat.
El Jutge dóna puntuacions parcials per a cada apartat i pel joc de proves públic, però l’avaluació va a càrrec del professor.
Input
recaman 0 10 recaman 2 10 recaman_from 0 3 10 recaman_from 2 3 10 recaman_first_completion 0 0 recaman_first_completion 0 1 recaman_first_completion 0 2 recaman_first_completion 0 3 recaman_first_completion 0 4
Output
[0, 1, 3, 6, 2, 7, 13, 20, 12, 21] [0, 3, 7, 2, 8, 1, 9, 18, 28, 17] [6, 2, 7, 13, 20, 12, 21, 11, 22, 10] [2, 8, 1, 9, 18, 28, 17, 5, 18, 4] 0 1 4 4 131