Problem A - Duże liczby całkowite
Problem B - Wirtualne ściany z cegieł
Problem C - Kody bezpieczeństwa
Problem D - Symulacja obiegu skoczka

 

1978

Problem C - Kody bezpieczeństwa


Opis

Aby zapewnić poprawność często używanych kodów, przy każdym użyciu można w nich systematycznie osadzać ciąg cyfr kontrolnych. Na przykład, pewien określony algorytm kodu bezpieczeństwa mógłby korzystać z sumy wszystkich cyfr modulo 26, a następnie dołączać na końcu odpowiadający tej sumie znak alfabetu. W takim przypadku 57359 wymagałoby znaku kontrolnego 'D', ponieważ:

 

5 + 7 + 3 + 5 + 9 = 29
29 mod 26 = 3
A = 0
B = 1
C = 2
D = 3

 

Dzisiaj szeroko używa się umiarkowanie wyrafinowanych wariacji tego schematu w kartach kredytowych, kodach bezpieczeństwa oraz hasłach.

Odwrotnością opisanego wyżej procesu jest złamanie takiego schematu kodowania, mając do dyspozycji wystarczająco dużo informacji. Twoje zadanie polega na złamaniu specyficznego schematu zabezpieczania cyfr. Ten specyficzny schemat używa cyfr z lewa na prawo, w którym występuje albo dodawanie, albo odejmowanie, albo mnożenie pomiędzy sąsiednimi cyframi. Wiesz również, że w algorytmie każda cyfra używana jest tylko jeden raz.  Mając zbiór pięciocyfrowych kodów, za którymi występują pojedyncze litery alfabetu, napisz program, który złamie ten kod.
 

Specyfikacja wejścia

W pierwszym wierszu program otrzyma 10 sześcioznakowych kodów - pięć cyfr oraz litera zabezpieczająca. Kolejne kody będą oddzielone pojedynczą spacją.
W drugim wierszu będzie się znajdowało 10 kodów po pięć cyfr, również rozdzielonych pojedynczą spacją.
 

Specyfikacja wyjścia

Na podstawie danych wejściowych program ma określić algorytm litery kontrolnej. W pierwszym wierszu wyjścia mają być wypisane otrzymane kody, w drugim wierszu odgadnięty algorytm wyznaczania litery kontrolnej (w podanym przykładzie wstępnym będzie to A+B+C+D+E) oraz w trzecim wierszu zestaw kodów z drugiego wiersza wejściowego uzupełnionych o literę kontrolną.

 

Przykładowe dane wejściowe

31413D 45976E 22728G 76575F 33696W 50681A 96723O 44885H 24196B 22227X
52005 67861 28265 59772 96199 78614 89492 47243 81620 56593
 

Przykładowe dane wyjściowe

31413D 45976E 22728G 76575F 33696W 50681A 96723O 44885H 24196B 22227X
A-B+C*D-E
52005Y 67861U 28265B 59772R 96199D 78614B 89492H 47243C 81620T 56593P 

 



List do administratora Serwisu Edukacyjnego Nauczycieli I LO

Twój email: (jeśli chcesz otrzymać odpowiedź)
Temat:
Uwaga: ← tutaj wpisz wyraz  ilo , inaczej list zostanie zignorowany

Poniżej wpisz swoje uwagi lub pytania dotyczące tego rozdziału (max. 2048 znaków).

Liczba znaków do wykorzystania: 2048

 

W związku z dużą liczbą listów do naszego serwisu edukacyjnego nie będziemy udzielać odpowiedzi na prośby rozwiązywania zadań, pisania programów zaliczeniowych, przesyłania materiałów czy też tłumaczenia zagadnień szeroko opisywanych w podręcznikach.



   I Liceum Ogólnokształcące   
im. Kazimierza Brodzińskiego
w Tarnowie

©2017 mgr Jerzy Wałaszek

Dokument ten rozpowszechniany jest zgodnie z zasadami licencji
GNU Free Documentation License.