Niech n będzie dodatnią liczbą całkowitą, a A[1..n] i B[1..n] będą n-elementowymi tablicami liczb całkowitych.
Dla nieujemnej liczby całkowitej k, gdzie k < n, powiemy, że tablice A i B są k-podobne, gdy A[1..k] = B[n-k+1..n] oraz A[k+1..n] = B[1..n-k]. Liczbę k nazywamy świadectwem podobieństwa.
Uwaga: dla k = 0 przyjmujemy, że prawdziwe jest A[1..0]=B[n+1..n].
Zadanie 1.1. (0–1)
Uzupełnij tabelę – wpisz w pustych kratkach odpowiednie wartości. W wierszu piątym i siódmym wpisz słowo PRAWDA, jeśli tablice A i B są k-podobne przy podanym k, albo FAŁSZ w przeciwnym przypadku. W wierszu szóstym wpisz takie k, dla którego tablice A i B są k-podobne.
Lp. | n | Tablica A | Tablica B | k | odp. |
1. | 3 | [5, 7, 9] | [5, 7, 9] | 0 | PRAWDA |
2. | 5 | [4, 7, 1, 4, 5] | [1, 4, 5, 4, 7] | 2 | PRAWDA |
3. | 5 | [10, 9, 12, 10, 9] | [10, 10, 9, 9, 12] | 3 | FAŁSZ |
4. | 5 | [3, 6, 5, 1, 8] | [5, 1, 8, 3, 6] | 4 | FAŁSZ |
5. | 5 | [1, 2, 3, 4, 5] | [3, 4, 5, 1, 2] | 2 | |
6. | 9 | [1,1,1,1,3,1,1,1,1] | [3,1,1,1,1,1,1,1,1] | PRAWDA | |
7. | 6 | [4, 2, 4, 4, 2, 6] | [4, 4, 2, 6, 4, 2] | 1 |
Zadanie 1.2. (0–3)
Zapisz w wybranej przez siebie notacji (w postaci pseudokodu, listy kroków lub w wybranym języku programowania) funkcję czy_k_podobne(n, A, B, k), gdzie A i B są n-elementowymi tablicami liczb całkowitych. Wynikiem funkcji jest PRAWDA, jeśli tablice A i B są k-podobne dla zadanego parametru k, natomiast FAŁSZ – w przeciwnym przypadku.
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.
Specyfikacja:
Dane:
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
Wynik:
PRAWDA, jeśli tablice A i B są k-podobne dla podanego parametru k
FAŁSZ w przeciwnym przypadku.
Zadanie 1.3. (0–2)
Zapisz w wybranej przez siebie notacji funkcję czy_podobne(n, A, B), która dla danych tablic A i B daje odpowiedź PRAWDA, jeśli istnieje takie k, dla którego tablice A i B są k-podobne, natomiast FAŁSZ – w przeciwnym przypadku.
Uwaga: w zapisie możesz skorzystać jedynie z operacji wymienionych w zadaniu 1.2. oraz funkcji czy_k_podobne(n, A, B, k) opisanej w zadaniu 1.2.
Specyfikacja:
Dane:
n – dodatnia liczba całkowita
A[1..n], B[1..n] – n-elementowe tablice liczb całkowitych
Wynik:
PRAWDA, jeśli istnieje takie k (0 ≤ k < n), dla którego tablice A i B są k-podobne
FAŁSZ w przeciwnym przypadku.