Een tabel van reële getallen wordt in een NumPy-tabel (2 dimensies) gestockeerd.
Deze tabel heeft rijen en kolommen. We willen nagaan welke rijen in deze
tabel nagenoeg identiek zijn. Hierbij definiëren we twee rijen als nagenoeg identiek
als de norm van hun verschil strikt kleiner is dan een vooropgegeven getal . Dit getal
reëel en strikt positief.
De norm van een 1-dimensionale rij wordt op zijn beurt gedefinieerd als de wortel uit de som van de kwadraten van
alle elementen van deze 1-dimensionale rij. Voor een rij is de norm dus gegeven door
.
Schrijf de functie gelijke_rijen()
met als argumenten
- een NumPy-rij in 2 dimensies, opgevuld met reële getallen, waarbij de tabel uit minstens 1 rij en minstens 1 kolom bestaat.
- een strikt positief reëel getal
Het resultaat van de functie is een lijst van tuples. Elk tuple bestaat uit twee gehele getallen, waarbij het eerste strikt
kleiner is dan het tweede. Elk tuple stelt een koppel nagenoeg identieke rijen voor in de argumenttabel. De lijst is oplopende gesorteerd
m.b.t. het eerste tuple-getal. Voor tuples waarvoor het eerste element gelijk is, is de lijst opklimmend gesorteerd in het tweede
tuple-getal.
Voorbeeld
a =
[[ 0. 1. 2. 3. 4.]
[ 0. 1. 2. 3. 4.]
[ 2. 3. 4. 5. 6.]
[ 0. 1. 2. 3. 4.]
[ 2. 3.1 4. 5. 6.]]
gelijke_rijen(a, 0.2) = [(0, 1), (0, 3), (1, 3), (2, 4)]
gelijke_rijen(a, 0.09) = [(0, 1), (0, 3), (1, 3)]