1. feladat: Válogatós (26 pont)
A feladat megoldására a következő algoritmust találtuk ki:
Példa:
(Dóra,Endre,Ágnes,István) => (-,Endre,Ágnes,István) => (Ágnes,Endre,-, István) => (Ágnes,-,Endre,István) => (Ágnes,Dóra,Endre,István) |
A. Mi
lesz az eredmény, ha kezdetben a székeken ülők sorrendje (azaz a kezdő
ülésrend): (Erika,János,Nóra)? A fenti példához
hasonlóan lépésenként írd le!
B. Mi lesz
az eredmény, ha a kezdő ülésrend: (Anna, Emese, Béla,
Enikő, András, Jakab, Eszter, Móni, László, Piri, Péter)? A
fenti példához hasonlóan lépésenként írd le!
C. Van olyan
kezdő ülésrend, hogy csak egyetlen gyereknek kell mozognia. Melyik gyereknek,
milyen kezdő ülésrend esetén?
D. Van olyan
kezdő ülésrend, hogy minden gyereknek mozognia kell. Melyik ez a kezdő
ülésrend?
A lehetőségek:
Az alábbi algoritmus az A,B,C,D változók értéke alapján kiírja,
hogy milyen dobásunk volt (segítség: az algoritmusban minden elágazásnak
van "akkor" és van "különben" ága is).
Mit kell írni a ?1 … ?15 helyébe, hogy a helyes eredményeket kapjuk
meg?
Egy pénztárban hatféle bankjegyet (címletet) kezelnek. Az alábbi címletező algoritmus, szándékunk szerint, meghatározza, hogy a P összeg hogyan fizethető ki a lehető legkevesebb bankjeggyel. Az eredményt a DB vektor tartalmazza. Minden címletből korlátlan mennyiség használható fel.
Címletezés(P,C,DB):
K:=6; DB:=(0,0,0,0,0,0)
Ciklus amíg P>0
Ciklus amíg P>=C(K)
DB(K):=DB(K)+1; P:=P-C(K)
Ciklus vége
K:=K-1
Ciklus vége
Eljárás vége.Ez az algoritmus például a C=(1,2,5,10,20,50) címletkészlet és 96 forint kifizetése esetén a DB=(1,0,1,0,2,1) vektort állítja elő.
Legyenek a címletkészletek a következők:
i) C=(1,3,6,10,60,100)
ii) C=(1,4,6,10,40,60)
iii) C=(1,2,5,12,60,120)
iv) C=(1,5,7,21,35,49)A. Mi lesz a DB vektor értéke 73 forint kifizetésekor a négy címletkészlet esetén?
B. A négy címletkészlet közül melyeknél címletez hibásan az algoritmus (azaz nem a lehető legkevesebb bankjegyet használja fel)?
C. Minden hibás eredményhez vezető címletkészletre add meg azt a legkisebb P összeget, amelynek a kifizetésére az algoritmus nem a lehető legkevesebb bankjegyet használja fel! Add meg az algoritmus által előállított hibás, valamint a helyes DB vektort is!
Definíció:
Feljegyzések:
A. Add meg
a piramis állapotát (azaz a dobozok tartalmát) minden lépés után, ha a
bemenő számsorozat: (7,2,9,5,1,3,8)!
B. Fogalmazd
meg általánosan, hogy milyen tulajdonságú szám lesz az algoritmus befejeződésekor
a piramis tetején!
C. Fogalmazd
meg általánosan, hogy milyen viszonyban van az algoritmus végrehajtása
után az I sorszámú dobozban levő szám a fölötte és az alatta levőkkel (feltéve,
hogy van szám fölötte, illetve alatta)!