• [^] # Re: Pas besoin de tout stocker !

    Posté par (site web personnel) . En réponse au message Advent of Code 2023 : Day 9. Évalué à 3. Dernière modification le 11 décembre 2023 à 17:50.

    Trève de blabla, l'implémentation :

    class History:
     def __init__(self, values: Iterable[int]):
     self.firsts: list[int] = []
     self.lasts: list[int] = []
     current_values = list(values)
     while any(value != 0 for value in current_values):
     self.firsts.append(current_values[0])
     self.lasts.append(current_values[-1])
     next_values: list[int] = []
     for i in range(len(current_values) - 1):
     next_values.append(current_values[i + 1] - current_values[i])
     current_values = next_values
     @classmethod
     def import_line(cls, line: str) -> Self:
     return cls(int(word) for word in line.split())
     def prev(self) -> int:
     return sum((-1)**i * value for (i, value) in enumerate(self.firsts))
     def next(self) -> int:
     return sum(value for value in self.lasts)