Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Na planetě se má konat velkolepé běžecké klání n běžců. Novinové portály chtějí po konci závodu informovat o výsledcích a zajímavých událostech co nejrychleji.
- ROZDĚLUJ A SLUČUJ
- Všichni běžci dostali na dres unikátní číslo i (0≤i<n) určující odhadované pořadí podle sázkových kanceláří, podle kterého vytvářely sázkové kurzy.
- Novináře píšící o této události zajímá především statistika předběhnutí.
- Předběhnutí nastane pokaždé, když běžec A s číslem Ai doběhne v závodě před běžcem B s číslem Bi (přičemž Bi<Ai)
- Jeden běžec tedy může předběhnout mnoho jiných běžců (a zároveň být předběhnut jinými).
- PŘÍKLAD:
- Pro pořadí v cíli: 5 4 1 2 3 je počet předběhnutí 7:
- - Běžec číslo 4 předběhl 1, 2, 3
- - Běžec číslo 5 předběhl 1, 2, 3, 4
- ÚKOL 1. URČETE POČET VŠECH PŘEDBĚHNUTÍ
- Běžci jsou z různých států. Novináře zajímá statistika, ke kolika předběhnutím došlo mezi běžci jednotlivých států.
- PŘÍKLAD:
- Pro pořadí v cíli: (4, 'EN'), (1, 'CZ'), (2, 'CZ'), (3, 'EN')
- EN běžci předběhli 1 jiného EN běžce a 2 CZ běžce
- CZ běžci nepředběhli žádné běžce
- Zapsáno pomocí dictionary d:
- tzn.:
- d = {
- 'EN': {
- 'EN': 1,
- 'CZ': 2
- },
- 'CZ': {
- 'EN': 0,
- 'CZ': 0
- }
- }
- Jinak řečeno d[state1][state2] = amount znamená, state1 běžci předběhli amount-krát běžce ze state2.
- ÚKOL 2. URČETE POČET PŘEDBĚHNUTÍ LIDÍ PRO VŠECHNY DVOJICE STÁTŮ
- Naimplementujte funkci make_statistics(input)
- Přijme pole tuplů ((pořadí, stát) viz příklady)
- Returne tuple (celkový počet předběhnutí, dictionary)
- DALŠÍ PŘÍKLADY:
- Input:
- input = [(1, 'CZ'), (9, 'FR'), (5, 'EN'), (7, 'EN'), (6, 'CZ'), (4, 'EN'), (8, 'CZ'), (2, 'CZ'), (3, 'EN')]
- make_statistics(input)
- Output:
- (21, {'CZ': {'CZ': 2, 'FR': 0, 'EN': 3}, 'FR': {'CZ': 3, 'FR': 0, 'EN': 4}, 'EN': {'CZ': 4, 'FR': 0, 'EN': 5}})
- Rozděluj a slučuj
- Jako řešení této velké úlohy budete odevzdávat jeden soubor s příponou .py. Použijte níže uvedenou kostru.
- BODOVÁNÍ
- 4 b za Úkol 1. (tzn. určení počtu předběhnutí)
- 6 b za Úkol 2. (tzn. počet předběhnutí + počet předběhnutí pro každé 2 státy)
- pokud Úkol 2. neřešíš, odpověď None
- Novináři chtějí výsledky hnedka po doběhnutí závodníků, takže tvůj kód by měl vyhodnotit jeden vstup pro n ve statisících během 1, 2 vteřin.
- Pište svůj program tak, aby byl pěkně čitelný (tzn. aby mimo jiné aby odpovídal PEP8).
- def make_statistics(results):
- # Do some fancy stuff with results
- # to obtain total and state2state_dict
- return total, state2state_dict
- # data = [(1, 'CZ'), (9, 'FR'), (5, 'EN'), (7, 'EN'), (6, 'CZ'), (4, 'EN'), (8, 'CZ'), (2, 'CZ'), (3, 'EN')]
- # print(make_statistics(data))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement