Matematická olympiáda – kategorie P

Zadání úloh oblastního kola 42. ročníku

P-II-1

Města A a B jsou spojena rovným úsekem cesty. Na této cestě leží města A1, ..., An, B1, ..., Bn (ne nutně v tomto pořadí, ale vždy je město Ai blíže k A než město Bi (1<=i<=n)). Nákladní auto jezdí mezi A a B a má n objednávek; i. tá (1<=i<=n) objednávka je převézt náklad z Ai do Bi; přitom auto může vézt vždy nejvýše jeden náklad a po naložení v Ai ho může vyložit jedině v Bi.

Jízdou nákladního auta rozumíme cestu auta z města A do města B (s případným splněním některých objednávek) a zpět; během jízdy lze změnit směr jen v městě B.

Napište a zdůvodněte program, který pro zadané vzdálenosti měst Ai a Bi od A sestaví plán nákladního auta (tj. určí počet jízd a splněné objednávky pro každou jízdu) tak, aby splnilo všechny objednávky minimálním počtem jízd.

P-II-2

Body X1=(x1,y1), ..., Xn=(xn,yn) (n>=3) tvoří (v tomto pořadí) vrcholy konvexního n-úhelníka M v rovině.

Napište a zdůvodněte program, který určí délku strany čtverce S s následujícími vlastnostmi:

  1. S pokrývá M
  2. alespoň jedna strana M leží na straně S
  3. S má nejmenší možný obsah

Poznámka

V programu můžete použít vzorce z analytické geometrie (např. pro vzdálenost 2 bodů, vzdálenost bodu od přímky, apod.) jako funkce. Tyto funkce nemusíte programovat.

P-II-3

Multiplikativní složitost

Lineární algoritmus je algoritmus následujícího tvaru:
Vstup: x1, x2, ..., xn (vstupní proměnné)
f1:=g1 op h1
f2:=g2 op h2
....
fk:=gk op hk
Výstup: y1, y2, ..., ym (výstupní proměnné)
přičemž pro každé i=1, ..., k je gi, hi prvkem {x1, ..., xn} U {f1, ..., fi-1} a op je jedna z operací +, -, * (sčítání, odčítání, násobení).

Složitost lineárního algoritmu je počet operací op, multiplikativní složitost lineárního algoritmu je počet operací *.

Například následující lineární algoritmus:

Vstup: a, b, c, d
f1 := a * b
f2 := c * d
f3 := f1 - f2
Výstup: f3
počítá hodnotu výrazu ab-cd a má multiplikativní složitost 2.

Úlohy

  1. Zjistěte, jakou činnost vykonává následující lineární algoritmus:
    Vstup: a11, a12, a21, a22, b11, b12, b21, b22
    f1:=a11+a22
    f2:=b11+b22
    f3:=a21+a22
    f4:=b12-b22
    f5:=b21-b11
    f6:=a11+a12
    f7:=a21-a11
    f8:=b11+b12
    f9:=a12-a22
    f10:=b21+b22
    f11:=f1*f2
    f12:=f3*b11
    f13:=a11*f4
    f14:=a22*f5
    f15:=f6*b22
    f16:=f7*f8
    f17:=f9*f10
    f18:=f11+f14
    f19:=f15-f17
    f20:=f11+f13
    f21:=f12-f16
    f22:=f18-f19
    f23:=f12+f14
    f24:=f13+f15
    f25:=f20-f21
    Výstup: f22, f23, f24, f25
  2. Najděte lineární algoritmus s co nejmenší multiplikativní složitostí, který pro vstup x1, ..., xn, y1, ..., yn, u1, ..., un, v1, ..., vn vypočítá:
    x1u1+x2u2+...+xnun
    x1v1+x2v2+...+xnvn
    y1u1+y2u2+...+ynun
    y1v1+y2v2+...+ynvn

P-II-4

McCullochův stroj

McCullochův stroj slouží ke zpracování čísel. Má vstup a výstup; jestiže na vstup dáme číslo, tj. konečnou neprázdnou posloupnost cifer 1, 2, ..., 9, po konečném čase se na výstupu může (ale nemusí) objevit (obecně jiné) číslo - odpověď stroje na vstupní číslo. V prvním případě (jestliže se odpověď objeví), vstupní číslo se nazývá přijatelným. Odpověď stroje je vstupním číslem jednoznačně určená:

Zavedeme si tato značení: McCullochův stroj se řídí následujícími pravidly: Například 2532->53 podle P1, 72532->532 podle P2, 572532->532532 podle P3, ale 4253 není přijatelné podle P0.

Operační číslo je číslo složené z cifer 5, 7. Každé operační číslo M určuje operaci M() v následujícím smyslu: z X->Y plyne MX->M(X). Např. 5 určuje operaci zdvojení (5(Y)=YY), neboť z X->Y plyne 5X->YY. 75 určuje operaci připsání 2 ke zdvojení (75(Y)=YY2), neboť z X->Y plyne 75X->YY2.

Úlohy

  1. (Craigův zákon) Pro každé operační číslo M a pro každé číslo A existuje číslo X vytvářející M(AX), tj. X->M(AX). Dokažte!
  2. Najděte čísla X<>Y taková, že X->Y a zároveň Y->X!
  3. (Fergussonův zákon) Pro libovolná A, B existují čísla X, Y tak, že X->AY a zároveň Y->BX. Dokažte!