Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.88 KB | None | 0 0
  1. 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.
  2.  
  3. ROZDĚLUJ A SLUČUJ
  4. 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.
  5.  
  6. Novináře píšící o této události zajímá především statistika předběhnutí.
  7.  
  8. 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)
  9.  
  10. Jeden běžec tedy může předběhnout mnoho jiných běžců (a zároveň být předběhnut jinými).
  11.  
  12. PŘÍKLAD:
  13. Pro pořadí v cíli: 5 4 1 2 3 je počet předběhnutí 7:
  14.  
  15. - Běžec číslo 4 předběhl 1, 2, 3
  16. - Běžec číslo 5 předběhl 1, 2, 3, 4
  17. ÚKOL 1. URČETE POČET VŠECH PŘEDBĚHNUTÍ
  18. 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ů.
  19.  
  20. PŘÍKLAD:
  21. Pro pořadí v cíli: (4, 'EN'), (1, 'CZ'), (2, 'CZ'), (3, 'EN')
  22.  
  23. EN běžci předběhli 1 jiného EN běžce a 2 CZ běžce
  24. CZ běžci nepředběhli žádné běžce
  25.  
  26. Zapsáno pomocí dictionary d:
  27.  
  28. tzn.:
  29.  
  30. d = {
  31. 'EN': {
  32. 'EN': 1,
  33. 'CZ': 2
  34. },
  35. 'CZ': {
  36. 'EN': 0,
  37. 'CZ': 0
  38. }
  39. }
  40. Jinak řečeno d[state1][state2] = amount znamená, state1 běžci předběhli amount-krát běžce ze state2.
  41.  
  42. ÚKOL 2. URČETE POČET PŘEDBĚHNUTÍ LIDÍ PRO VŠECHNY DVOJICE STÁTŮ
  43. Naimplementujte funkci make_statistics(input)
  44. Přijme pole tuplů ((pořadí, stát) viz příklady)
  45. Returne tuple (celkový počet předběhnutí, dictionary)
  46. DALŠÍ PŘÍKLADY:
  47. Input:
  48.  
  49. input = [(1, 'CZ'), (9, 'FR'), (5, 'EN'), (7, 'EN'), (6, 'CZ'), (4, 'EN'), (8, 'CZ'), (2, 'CZ'), (3, 'EN')]
  50. make_statistics(input)
  51. Output:
  52.  
  53. (21, {'CZ': {'CZ': 2, 'FR': 0, 'EN': 3}, 'FR': {'CZ': 3, 'FR': 0, 'EN': 4}, 'EN': {'CZ': 4, 'FR': 0, 'EN': 5}})
  54. Rozděluj a slučuj
  55. Jako řešení této velké úlohy budete odevzdávat jeden soubor s příponou .py. Použijte níže uvedenou kostru.
  56.  
  57. BODOVÁNÍ
  58. 4 b za Úkol 1. (tzn. určení počtu předběhnutí)
  59. 6 b za Úkol 2. (tzn. počet předběhnutí + počet předběhnutí pro každé 2 státy)
  60. pokud Úkol 2. neřešíš, odpověď None
  61. 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.
  62.  
  63. Pište svůj program tak, aby byl pěkně čitelný (tzn. aby mimo jiné aby odpovídal PEP8).
  64.  
  65. def make_statistics(results):
  66. # Do some fancy stuff with results
  67. # to obtain total and state2state_dict
  68.  
  69. return total, state2state_dict
  70.  
  71. # data = [(1, 'CZ'), (9, 'FR'), (5, 'EN'), (7, 'EN'), (6, 'CZ'), (4, 'EN'), (8, 'CZ'), (2, 'CZ'), (3, 'EN')]
  72. # print(make_statistics(data))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement