Ĺadny brzuch
Cześć! Mam dla was prośbę i zarazem zadanie do rozwiązania :-) Kto potrafiłby rozwiązać takie oto zadanie z Pascala, byłbym naprawdę wdzięczny i zarazem ty miałbyś satysfakcję, że potrafisz programować.
Oto treść zadania:
Bajtocki Bank Bitowy (w skrócie BBB) ma największą w Bajtocji sieć bankomatów. Klienci BBB wypłacają pieniądze z bankomatów na podstawie karty bankomatowej i 4-cyfrowego kodu PIN. Niedawno, w celu zwiększenia bezpieczeństwa swoich klientów, BBB zainstalował przy każdym bankomacie kamerę. Kamery przesyłają rejestrowany obraz do BBB drogą radiową. Niestety, sygnał wysyłany przez kamery jest przechwytywany przez szajkę złodziejaszków komputerowych. Złodziejaszkowie starają się odkryć 4-cyfrowe kody PIN klientów BBB, którym następnie kradną karty bankomatowe. Wiedząc o tym, klienci BBB, wprowadzając PIN i przesuwając palec nad klawiaturą, starają się wykonywać nadmiarowe ruchy. Kamera nie jest w stanie wychwycić naciskania klawiszy, rejestruje jedynie przesunięcia palca. Tak więc, jednoznaczne wyznaczenie wprowadzanego kodu PIN jest zazwyczaj niemożliwe. Przykładowo, klient przesuwający swój palec najpierw nad klawiszem 1, a potem 5, mógł wprowadzić następujące kody PIN: 1111, 1115, 1155, 1555 lub 5555. Zdesperowani złodziejaszkowie gromadzą nagrania z kamer, licząc na to, że być może na podstawie wielu nagrań tego samego klienta będą w stanie wyznaczyć wprowadzany przez niego PIN, lub choćby ograniczyć liczbę możliwych kodów. Zebrawszy sekwencje wprowadzane przez pewnego bogatego klienta BBB, złożyli Ci propozycję "nie do odrzucenia".
Zadanie
Napisz program, który:
wczyta ze standardowego wejścia opis zarejestrowanych sekwencji ruchów palca, jakie klient banku wykonywał wprowadzając swój PIN,
wyznaczy liczbę różnych kodów PIN, jakie może mieć klient (czyli liczbę tych 4-cyfrowych kodów PIN, które mogły być wprowadzone do bankomatu przy wykonywaniu zadanych sekwencji ruchów palca),
wypisze znalezione rozwiązanie na standardowe wyjście.
Wejście
Pierwszy wiersz wejścia zawiera jedną dodatnią liczbę całkowitą n równą liczbie zarejestrowanych scen wprowadzania kodu PIN przez klienta, 1 <= n <= 1000. W kolejnych n wierszach znajdują się opisy tych scen, po jednej w wierszu. Opis każdej sceny składa się z dwóch dodatnich liczb całkowitych oddzielonych pojedynczym odstępem. Pierwsza z tych liczb, t, to długość sekwencji ruchów, 1 <= t <= 10.000. Druga z tych liczb to t-cyfrowa liczba, której kolejne cyfry reprezentują kolejne klawisze, nad którymi klient przesuwał palec. Łączna długość wszystkich sekwencji nie przekracza 1.000.000.
Wyjście
W pierwszym i jedynym wierszu wyjścia powinna znaleźć się jedna dodatnia liczba całkowita równa liczbie możliwych kodów PIN klienta.
Przykład
Dla danych wejściowych:
2
3 123
3 234
prawidłową odpowiedzią jest:
5
Radosław Bujak
Powiem tak: myślisz, że jesteś cwany? To jest zadanie na olimpiadę informatyczną! I chcesz aby Ci je ktoś zrobił? No to bym na twoim miejscu nie liczył. To jest forum dla programistów a nie oszustów, więc już więcej tutaj nie przychodź!
'...a wtedy powstanę i zdobędę świat!' - Marcin Robaszyński
Dostałeś to zadanie do domu?? Jeżeli tak to masz fajnego nauczyciela.
--------------------------------------------------------------------
"Im człowiek starszy tym jego dorosłość objawia się większą głupotą..."
--------------------------------------------------------------------
Witam
To zadanko jest troszeczke zamotane. Postaram się posiedzieć troszkę nad nim, ale pierwsze co mi przychodzi na myśl to kombinatoryka. Trzeba tutaj zastosować permutacje i wariacje bez powtórzeń.
Nie za bardzo rozumiem pojęcie sceny (że n to są kolejne sceny), czy to znaczy, że później trzeba wykluczyć powtarzające się możliwości kodu? Dość podobne zadanie było w tamtym roku na konkursie pogromcy algorytmów.
Tak na marginesie kto i po co zadał Tobie takie zadanie? To jest na konkurs? Bo raczej na maturalne zadanie to mi nie wygląda ;)
pozdrawiam
kind
gg: 1482111
Jak na mature to za trudne :cheesy:.
-------------- ------------- ------------- --------------- ------
literka M literka K literka S jak eMKaeS lallaalallalalalallalalallallalala
-------------- --------------- ------------- --------------- ----
Na maturę to program "hello world" i szóstka ;) Na pewno ;)
Strona mojej grupki programistycznej: www.blaze.er.pl
gg: 4644238
Chomik wiem, że żartujesz, ale jak chcesz zobaczyć zadanko maturalne to lukniaj na http://www.ks-eksper...?TOPIC_ID=22305 . PS Jak ktoś ma jakieś zadanka to może mi podesłać na GG lub mejla. Z góry dzięki.
Steradian jutro zaraz jak przyjde z budy to zabiore sie za to zadanie bo teraz sie ucze interpretować wierszy :( . Brrrrr... jak tego nie lubie....
pozdrawiam
kind
gg: 1482111
Steradian to zadanie jak perę innych jest na olimpiade informatyczną (etap I). Zadanie jest proste, ale nie wiem czy zdajesz sobie sprawe, że w gre wchodzą liczby, np. 1000 cyfrowe i większe. Tak więc radziłbym ci się martwić o prezentację tak dużych danych.
Jeżeli chodzi już o samo zadanie, to ze wszystkich scen musisz wziąć iloraz zbiorów kolejnych ruchów.
repeat
for i:=1 to t-j do
suma:=suma+i;
suma:=suma*(j+1);
wynik:=wynik+suma;
suma:=0;
inc(j);
until j=t;
Dla wytłumaczenia: t- to jest sekwencja ruchów ilorazu zbiorów; j- to taka pomocnicza zmienna (ilość powtórzeń).
Kod jest prosty, krótki, a jedyny mankament tego zadania to duże liczby. Spróbuj sobie policzyć wynik dla t=1000. Jak wyjdzie Tobie dobry wynik to daj znać.
pozdrawiam
kind
gg: 1482111
Najmocniej przepraszam. W moim poprzednim poście powinno być iloczyn zbiorów, a nie iloraz :lol:
pozdrawiam
kind
gg: 1482111
Jesli nie umiesz programować to po co bierzesz sie za to zadanie. Myślisz,że dostniesz gotowca dostaniesz 6 z informatyki i z bani? [:/] A pozostałych zadań na konkurs nie chcesz zeby Ci rozwiązali??
sdf
A wiesz, że w regulaminie jest punkt który mówi, że te zadania mają byćzrobione SAMODZIELNE:?
----
m@il: ali88@tlen.pl | GG: 2083160 | www: www.ali-home.prv.pl | ICQ: 199320712
Czemu się wyręczasz innymi??
Odpowiedź już masz,
ale ja dodam tylko, że ja ostatnio wyręczyłem kolegę z klasy, to facia dała mu algorytm (prościutki, zrobiłem go w 15 minut na plastyce, przeczytanie i sporo pisnia było)...
potem żałowałem trochę [:/]...
a mogłem mu tylko wytłumaczyć co, co oznacza i powiedzieć, że niech myśli sam.
Bo potem microsoft zatrudnia takich ludzi i połową porządnych użytkowników musi siedzieć na linuxie ;).
// My Web // My GG // My E-Mail //
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Oto treść zadania:
Bajtocki Bank Bitowy (w skrócie BBB) ma największą w Bajtocji sieć bankomatów. Klienci BBB wypłacają pieniądze z bankomatów na podstawie karty bankomatowej i 4-cyfrowego kodu PIN. Niedawno, w celu zwiększenia bezpieczeństwa swoich klientów, BBB zainstalował przy każdym bankomacie kamerę. Kamery przesyłają rejestrowany obraz do BBB drogą radiową. Niestety, sygnał wysyłany przez kamery jest przechwytywany przez szajkę złodziejaszków komputerowych. Złodziejaszkowie starają się odkryć 4-cyfrowe kody PIN klientów BBB, którym następnie kradną karty bankomatowe. Wiedząc o tym, klienci BBB, wprowadzając PIN i przesuwając palec nad klawiaturą, starają się wykonywać nadmiarowe ruchy. Kamera nie jest w stanie wychwycić naciskania klawiszy, rejestruje jedynie przesunięcia palca. Tak więc, jednoznaczne wyznaczenie wprowadzanego kodu PIN jest zazwyczaj niemożliwe. Przykładowo, klient przesuwający swój palec najpierw nad klawiszem 1, a potem 5, mógł wprowadzić następujące kody PIN: 1111, 1115, 1155, 1555 lub 5555. Zdesperowani złodziejaszkowie gromadzą nagrania z kamer, licząc na to, że być może na podstawie wielu nagrań tego samego klienta będą w stanie wyznaczyć wprowadzany przez niego PIN, lub choćby ograniczyć liczbę możliwych kodów. Zebrawszy sekwencje wprowadzane przez pewnego bogatego klienta BBB, złożyli Ci propozycję "nie do odrzucenia".
Zadanie
Napisz program, który:
wczyta ze standardowego wejścia opis zarejestrowanych sekwencji ruchów palca, jakie klient banku wykonywał wprowadzając swój PIN,
wyznaczy liczbę różnych kodów PIN, jakie może mieć klient (czyli liczbę tych 4-cyfrowych kodów PIN, które mogły być wprowadzone do bankomatu przy wykonywaniu zadanych sekwencji ruchów palca),
wypisze znalezione rozwiązanie na standardowe wyjście.
Wejście
Pierwszy wiersz wejścia zawiera jedną dodatnią liczbę całkowitą n równą liczbie zarejestrowanych scen wprowadzania kodu PIN przez klienta, 1 <= n <= 1000. W kolejnych n wierszach znajdują się opisy tych scen, po jednej w wierszu. Opis każdej sceny składa się z dwóch dodatnich liczb całkowitych oddzielonych pojedynczym odstępem. Pierwsza z tych liczb, t, to długość sekwencji ruchów, 1 <= t <= 10.000. Druga z tych liczb to t-cyfrowa liczba, której kolejne cyfry reprezentują kolejne klawisze, nad którymi klient przesuwał palec. Łączna długość wszystkich sekwencji nie przekracza 1.000.000.
Wyjście
W pierwszym i jedynym wierszu wyjścia powinna znaleźć się jedna dodatnia liczba całkowita równa liczbie możliwych kodów PIN klienta.
Przykład
Dla danych wejściowych:
2
3 123
3 234
prawidłową odpowiedzią jest:
5
Radosław Bujak
Powiem tak: myślisz, że jesteś cwany? To jest zadanie na olimpiadę informatyczną! I chcesz aby Ci je ktoś zrobił? No to bym na twoim miejscu nie liczył. To jest forum dla programistów a nie oszustów, więc już więcej tutaj nie przychodź!
'...a wtedy powstanę i zdobędę świat!' - Marcin Robaszyński
Dostałeś to zadanie do domu?? Jeżeli tak to masz fajnego nauczyciela.
--------------------------------------------------------------------
"Im człowiek starszy tym jego dorosłość objawia się większą głupotą..."
--------------------------------------------------------------------
Witam
To zadanko jest troszeczke zamotane. Postaram się posiedzieć troszkę nad nim, ale pierwsze co mi przychodzi na myśl to kombinatoryka. Trzeba tutaj zastosować permutacje i wariacje bez powtórzeń.
Nie za bardzo rozumiem pojęcie sceny (że n to są kolejne sceny), czy to znaczy, że później trzeba wykluczyć powtarzające się możliwości kodu? Dość podobne zadanie było w tamtym roku na konkursie pogromcy algorytmów.
Tak na marginesie kto i po co zadał Tobie takie zadanie? To jest na konkurs? Bo raczej na maturalne zadanie to mi nie wygląda ;)
pozdrawiam
kind
gg: 1482111
Jak na mature to za trudne :cheesy:.
-------------- ------------- ------------- --------------- ------
literka M literka K literka S jak eMKaeS lallaalallalalalallalalallallalala
-------------- --------------- ------------- --------------- ----
Na maturę to program "hello world" i szóstka ;) Na pewno ;)
Strona mojej grupki programistycznej: www.blaze.er.pl
gg: 4644238
Chomik wiem, że żartujesz, ale jak chcesz zobaczyć zadanko maturalne to lukniaj na http://www.ks-eksper...?TOPIC_ID=22305 . PS Jak ktoś ma jakieś zadanka to może mi podesłać na GG lub mejla. Z góry dzięki.
Steradian jutro zaraz jak przyjde z budy to zabiore sie za to zadanie bo teraz sie ucze interpretować wierszy :( . Brrrrr... jak tego nie lubie....
pozdrawiam
kind
gg: 1482111
Steradian to zadanie jak perę innych jest na olimpiade informatyczną (etap I). Zadanie jest proste, ale nie wiem czy zdajesz sobie sprawe, że w gre wchodzą liczby, np. 1000 cyfrowe i większe. Tak więc radziłbym ci się martwić o prezentację tak dużych danych.
Jeżeli chodzi już o samo zadanie, to ze wszystkich scen musisz wziąć iloraz zbiorów kolejnych ruchów.
repeat
for i:=1 to t-j do
suma:=suma+i;
suma:=suma*(j+1);
wynik:=wynik+suma;
suma:=0;
inc(j);
until j=t;
Dla wytłumaczenia: t- to jest sekwencja ruchów ilorazu zbiorów; j- to taka pomocnicza zmienna (ilość powtórzeń).
Kod jest prosty, krótki, a jedyny mankament tego zadania to duże liczby. Spróbuj sobie policzyć wynik dla t=1000. Jak wyjdzie Tobie dobry wynik to daj znać.
pozdrawiam
kind
gg: 1482111
Najmocniej przepraszam. W moim poprzednim poście powinno być iloczyn zbiorów, a nie iloraz :lol:
pozdrawiam
kind
gg: 1482111
Jesli nie umiesz programować to po co bierzesz sie za to zadanie. Myślisz,że dostniesz gotowca dostaniesz 6 z informatyki i z bani? [:/] A pozostałych zadań na konkurs nie chcesz zeby Ci rozwiązali??
sdf
A wiesz, że w regulaminie jest punkt który mówi, że te zadania mają byćzrobione SAMODZIELNE:?
----
m@il: ali88@tlen.pl | GG: 2083160 | www: www.ali-home.prv.pl | ICQ: 199320712
Czemu się wyręczasz innymi??
Odpowiedź już masz,
ale ja dodam tylko, że ja ostatnio wyręczyłem kolegę z klasy, to facia dała mu algorytm (prościutki, zrobiłem go w 15 minut na plastyce, przeczytanie i sporo pisnia było)...
potem żałowałem trochę [:/]...
a mogłem mu tylko wytłumaczyć co, co oznacza i powiedzieć, że niech myśli sam.
Bo potem microsoft zatrudnia takich ludzi i połową porządnych użytkowników musi siedzieć na linuxie ;).
// My Web // My GG // My E-Mail //