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 (1 x 1pkt)
Uzupełnij tabelę – wpisz w pustych kratkach odpowiednie wartości. W wierszu piątym i siódmym wpisz literę P - PRAWDA, jeśli tablice A i B są k-podobne przy podanym k, albo F – FAŁSZ w przeciwnym przypadku. W wierszu szóstym wpisz takie k, dla którego tablice A i B są k-podobne.
n | Tab A[] | Tab. B[] | k | odp. |
3 | [5, 7, 9] | [5, 7, 9] | 0 | P |
5 | [4, 7, 1, 4, 5] | [1, 4, 5, 4, 7] | 2 | P |
5 | [10, 9, 12, 10, 9] | [10, 10, 9, 9, 12] | 3 | F |
5 | [3, 6, 5, 1, 8] | [5, 1, 8, 3, 6] | 4 | F |
5 | [1, 2, 3, 4, 5] | [3, 4, 5, 1, 2] | 2 | |
9 | [1,1,1,1,3,1,1,1,1] | [3,1,1,1,1,1,1,1,1] | P | |
6 | [4, 2, 4, 4, 2, 6] | [4, 4, 2, 6, 4, 2] | 1 |
P
4
F
Zadanie 1.2 (3 pkt)
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.
odp:
patrz film z omówieniem
Zadanie 1.3(2 pkt)
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.
odp:
patrz film z omówieniem