Na tegorocznej maturze z rozszerzonej informatyki pierwszym zadaniem były listy przesunięte o k. W zadaniu 1.2 trzeba było napisać funkcję która sprawdza czy dla danego k wprowadzone dwie listy są podobne.
Czyli mając dwie tablice:
A = [4, 7, 1, 4, 5]
B = [1, 4, 5, 4, 7]
i k = 2, te dwie tablice są one podobne, natomiast w innym przypadku dla
A = [10, 9, 12, 10, 9]
B = [10, 10, 9, 9, 12]
i k = 3, odpowiedzią będzie FAŁSZ, czyli tablice te nie są podobne
Wpadałem na prosty pomysł sprawdzenia tego używając wycinków list, jednak nie wiem czy użycie tego narzędzie jest dozwolone. W arkuszu napisane jest: "Uwaga: w zapisie możesz wykorzystać tylko operacje arytmetyczne (dodawanie, odejmowanie, mnożenie, dzielenie, dzielenie całkowite, reszta z dzielenia), odwoływanie się do pojedynczych elementów tablicy, porównywanie liczb, instrukcje sterujące i przypisania do zmiennych lub samodzielnie napisane funkcje zawierające wyżej wymienione operacje. Czyli rozwiązanie takie zostałoby punktowane czy jednak nie?
Poniżej moja funkcja napisana w pythonie:
def czy_k_podobne(n, A, B, k):
if (A[k:] + A[:k] == B):
return "PRAWDA"
else:
return "FALSZ"
n – dodatnia liczba całkowita
A[1..n], B[1..n] – n-elementowe tablice liczb całkowitych
k – nieujemna liczba całkowita mniejsza niż n