Drop hier links of afbeeldingen om ze aan de editor toe te voegen.
Een circulante tabel is van de gedaante
$$
\left(
\begin{array}{ccccc}
x_0 & x_1 & x_2 & \cdots & x_{N-1}\\
x_{N-1} & x_0 & x_1 & \cdots & x_{N-2}\\
x_{N-2} & x_{N-1} & x_0 & \cdots & x_{N-3}\\
\cdots & \cdots & \cdots & \cdots & \cdots\\
x_1 & x_2 & x_3 & \cdots & x_0
\end{array} \right)
$$
Bemerk dat deze tabel volledig bepaald wordt door de lijst $$[x_0, x_1, ... , x_{N-1}]$$.
Schrijf een RECURSIEVE functie circulant() met als argumenten:
- een lijstargument (je kan dit argument gebruiken om tussenresultaten te stockeren). Wanneer je functie
vanuit Dodona getest wordt, zal hier steeds een lege lijst als waarde gebruikt worden (dus de waarde
[])
- een lijst $$[x_0, x_1, ... , x_{N-1}]$$, deze lijst bevat minstens 1 element
Het resultaat van de functie is een lijst van lijsten, waarbij elk element een rij van de gewenste circulante tabel voorstelt.
LET OP: je functie MOET recursief geprogrammeerd worden, en mag dus geen lusconstructies of comprehensies
bevatten.
Voorbeeld
c = [1, 2, 3, 4]
print(circulant([], c))
#[[1, 2, 3, 4],
# [4, 1, 2, 3],
# [3, 4, 1, 2],
# [2, 3, 4, 1]]