
рдирдорд╕реНрдХрд╛рд░, рд╣реЗрдмреНрд░!
рдирдП рд╕рд╛рд▓ рдХреА рдЫреБрдЯреНрдЯрд┐рдпрд╛рдВ рдПрдХ рдмреЗрд╣рддрд░реАрди рд╕рдордп рд╣реИ рдЖрдИрдЯреА рд╕реЗ рдмреНрд░реЗрдХ рд▓реЗрдВ рдЕрдкрдиреЗ рдкрд╕рдВрджреАрджрд╛ рд╢реМрдХ рдореЗрдВ рдкреЗрд╢реЗрд╡рд░ рдХреМрд╢рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдЦреЗрд▓ ChGK рд░реЗрдЯрд┐рдВрдЧ рдХреА рд╕рд╛рдЗрдЯ рдкрд░ рдЪрд╛рд░реЛрдВ рдУрд░ рдШреВрдорддреЗ рд╣реБрдП, рдореБрдЭреЗ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдПрдкреАрдЖрдИ рдорд┐рд▓рд╛ рдЬрд┐рд╕рд╕реЗ рдЖрдк рд╕рднреА рдЯреВрд░реНрдирд╛рдореЗрдВрдЯреЛрдВ рдХреЗ рд╕рднреА рдЦреЗрд▓реЛрдВ рдХреЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЗ рд╕рдореБрджрд╛рдп рдХрд╛ рдПрдХ рдЧреНрд░рд╛рдл рдмрдирд╛рдиреЗ рдФрд░ рднреМрдЧреЛрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЫрд┐рддрд░реА рдФрд░ рд╕рдЦреНрддреА рд╕реЗ рдСрдлрд╝рд▓рд╛рдЗрди рд╕рдореБрджрд╛рдп рдкрд░ рдЫрд╣ рд╣реИрдВрдбрд╢реЗрдХ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдорд┐рд▓рд╛ред рд░реЗрдЦрд╛рдВрдХрди рдФрд░ рдмреЗрдХрд╛рд░ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЗ katom рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рддрд╣рддред
рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╢реИрдХреНрд╖рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдо, рдЦреЗрд▓ ChGK рдХреНрдпрд╛ рд╣реИред
рдХреНрдпрд╛ рд╣реИ рд╕реНрдкреЛрд░реНрдЯреНрд╕ ChGK
рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ "рдХреНрдпрд╛?" рдХрд╣рд╛рдБ? рдХрдм? тАЭрдкрд╛рдардХ рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд╢реАрд░реНрд╖ рдФрд░ рдЕрдХреНрд╖рд░реЛрдВ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИред рд╕реНрдкреЛрд░реНрдЯреНрд╕ ChGK рдЯреЗрд▓реАрд╡рд┐рдЬрди рдкреНрд░рд╛рд░реВрдк рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИ рдЬреЛ рдХрдИ рдЯреАрдореЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдХреИрдлреЗ рдореЗрдВ рдпреБрд╡рд╛ рд╕рджрди, рдпреВрдирд┐рд╡рд░реНрд╕рд┐рдЯреА рдЕрд╕реЗрдВрдмрд▓реА рд╣реЙрд▓, рдЫрд╣ рд▓реЛрдЧреЛрдВ рдХреА рдХрдИ рдЯреАрдореЗрдВ рдЗрдХрдЯреНрдард╛ рд╣реЛрддреА рд╣реИрдВред рдореЗрдЬрдмрд╛рди рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ, рдПрдХ рдорд┐рдирдЯ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХреЗ рд▓рд┐рдП рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд┐рдирдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ, рдЯреАрдо рдЧреЗрдо рдлреЙрд░реНрдо рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рддреА рд╣реИ рдФрд░ рдКрдкрд░ рдЙрдард╛рддреА рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рд▓реЛрдЧ рдЬрд┐рдиреНрд╣реЗрдВ рдирд┐рдЧрд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд╛рдЧрдЬ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВред рдЖрдорддреМрд░ рдкрд░ 36 рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдкреНрд░рддрд┐ рдЧреЗрдо рдореЗрдВ рдкрдврд╝рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рддреАрди рд░рд╛рдЙрдВрдб рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬрд┐рд╕рдиреЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдЙрддреНрддрд░ рджрд┐рдпрд╛, рд╡рд╣ рдЕрдЪреНрдЫрд╛ рд╣реБрдЖред
ChGK рдкрд░ рдХрдИ рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рд╣реИрдВ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдпреВрд░реЛрдкреАрдп рдФрд░ рд╡рд┐рд╢реНрд╡ рдЪреИрдВрдкрд┐рдпрдирд╢рд┐рдк рднреА рд╣реИ, рдореИрдВ рдЙрддреНрд╕реБрдХ рдХреЛ рд╕реВрдЪрдирд╛ рдХреЗ рдПрдХ рд╕рдореНрдорд╛рдирд┐рдд рд╕реНрд░реЛрдд рдкрд░ рднреЗрдЬ рд░рд╣рд╛ рд╣реВрдВред рдФрд░ рд╕рд╡рд╛рд▓реЛрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдпрд╣рд╛рдВ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВ ред
рдбреЗрдЯрд╛ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддрд┐
рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рдпрджрд┐ рд╡реЗ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдмрд╛рд░ рдПрдХ рдЧреЗрдо рдЯреЗрдмрд▓ рдкрд░ рдЦреЗрд▓реЗред рдЕрдЪреНрдЫреЗ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж , рд╕рднреА рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдФрд░ рд╕рднреА рдЯреАрдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред
рд╕реНрдкреЙрдЗрд▓рд░ рдХреЗ рддрд╣рдд, рд╕реБрдВрджрд░ рд╕реВрдк рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред рд╕рднреА рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╣реЛрдЧрд╛ред
рд╕рднреА рдЯреВрд░реНрдирд╛рдореЗрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВurl = 'https://rating.chgk.info/api/tournaments.json/?page={}' df = pd.DataFrame(columns=['name', 'start']) for i in range(1, 7): data = requests.get(url.format(i)).json() for item in data["items"]: df.loc[item["idtournament"]] = (item["name"], item["date_start"]) df.to_csv('tournaments.csv')
рдпрд╣ рд╕рднреА рдЯреВрд░реНрдирд╛рдореЗрдВрдЯреЛрдВ рдХреЗ рдЧреЗрдо рд░реЛрд╕реНрдЯрд░реНрд╕ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рд╕рднреА рдкрд░рд┐рдЪрд┐рддреЛрдВ рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рдбреЗрдЯрд╛ рдЧреЗрдо рдореЗрдВ рдПрдХ рд╕рдВрдпреБрдХреНрдд рдЧреЗрдо рдХреЗ рддрдереНрдпреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ, рд▓реЗрдХрд┐рди рдирдП рд░рд┐рдХреЙрд░реНрдб рдЬреЛрдбрд╝рдиреЗ рдХреА рдЧрддрд┐ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рдереАред рдЗрд╕рд▓рд┐рдП, рд╣рдо tuples (id1, id2) рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВрдЧреЗ, рдЬрд╣рд╛рдВ id1, id2 рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИрдВ рдЬреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВред
рд░рдЪрдирд╛рдУрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рдФрд░ рдкрд░рд┐рдЪрд┐рдд рдмрдирд╛рдирд╛ df = pd.read_csv('tournaments.csv').set_index('Unnamed: 0') url = 'https://rating.chgk.info/api/tournaments/{}/recaps.json' links = set() for id in df.index: teams = requests.get(url.format(id)).json() for team in teams: t = team["recaps"] for i in range(len(t)): for j in range(i + 1, len(t)): first = int(t[i]["idplayer"]) second = int(t[j]["idplayer"]) if first < second: links.add((first, second)) else: links.add((second, first))
рдПрдХ рдЧреНрд░рд╛рдл рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рдЬреБрдбрд╝реЗ рдШрдЯрдХреЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдирд╛
рддреЛ, рдбреЗрдЯрд╛ рддреИрдпрд╛рд░реА рдЦрддреНрдо рд╣реЛ рдЧрдИ рд╣реИ, рдпрд╣ рдПрдХ рдЧреНрд░рд╛рдл рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ! рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдиреЗрдЯрд╡рд░реНрдХрдПрдХреНрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕рдХреА рдХреНрд╖рдорддрд╛ рд╣рдорд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
players = itertools.chain(*links) G = nx.Graph() G.add_nodes_from(players) for t in links: G.add_edge(*t) print(nx.info(G))
рдЕрдм ChGK рд╕рдореБрджрд╛рдп рдореЗрдВ рд▓рдЧрднрдЧ рджреЛ рд▓рд╛рдЦ рд▓реЛрдЧ рд╣реИрдВ, рдФрд░ рдФрд╕рддрди, рдПрдХ рдХрд░рд┐рдпрд░ рдХреЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдиреЗ 12 рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рд╛ рд╣реИ:
Number of nodes: 198145 Number of edges: 1206076 Average degree: 12.1737
рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдХрд┐ рдбреЗрдЯрд┐рдВрдЧ рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдХрд┐рддрдиреЗ рдЬреБрдбрд╝реЗ рдШрдЯрдХ рд╣реИрдВред Networkx рдХреЗ рдкрд╛рд╕ рдПрдХ рдмрдврд╝рд┐рдпрд╛ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рдЬрд┐рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛_ рдХрдиреЗрдХреНрдЯрд░реНрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд╡рд╣реА рдЪрд╛рд╣рд┐рдП рдЬреЛ:
clusters_l = [len(c) for c in sorted(nx.connected_components(G), key=len, reverse=True)] print(clusters_l[:20])
рд▓рдЧрднрдЧ рддреАрди-рдЪреМрдерд╛рдИ рдЦрд┐рд▓рд╛рдбрд╝реА рдПрдХ рдЬреБрдбрд╝реЗ рд╣реБрдП рдШрдЯрдХ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдмрд╛рдХреА рдХреЛ рдмрд╣реБрдд рдЫреЛрдЯреЗ рд╕рдмрдЧреНрд░рд╛рдл рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрдирдореЗрдВ рдЖрда рд╣рдЬрд╛рд░ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рд╣реИрдВред
[145922, 153, 124, 74, 72, 56, 50, 47, 42, 40, 39, 39, 38, 38, 37, 36, 36, 36, 36, 35]
рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд▓рдШреБрдЧрдгрдХреАрдп рдкреИрдорд╛рдиреЗ рдкрд░, рдореБрдЦреНрдп рдШрдЯрдХ рдХрд╛ рдкреНрд░рднреБрддреНрд╡ рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рджрд┐рдЦрддрд╛ рд╣реИред X рдЕрдХреНрд╖ рдкрд░ - рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕реЗ рдЫреЛрдЯреА, Y рдЕрдХреНрд╖ рдкрд░ рдШрдЯрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ - рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ (рдЕрдХреНрд╖ рд▓рдШреБрдЧрдгрдХ рд╣реИ)ред

рдЬреБрдбрд╝реЗ рдШрдЯрдХреЛрдВ рдореЗрдВ рд▓реЛрдЧреЛрдВ рдХреЗ рдЕрд╕рдорд╛рди рд╡рд┐рддрд░рдг рдХрд╛ рдХреНрдпрд╛ рдХрд╛рд░рдг рд╣реИ? рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ:
- рд▓реЛрдЧреЛрдВ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рдореВрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдЦреЗрд▓ рдореЗрдВ рдЖрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рддрд░рд╣ 4-6 рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рдореВрд╣ рдмрдирд╛рддрд╛ рд╣реИ;
- рдпрджрд┐ рд╢рд╣рд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдмрдбрд╝рд╛ рд╕рдореБрджрд╛рдп рд╣реИ, рддреЛ рдРрд╕рд╛ рдХреНрд▓рд╕реНрдЯрд░ рдмрд╣реБрдд рдЬрд▓реНрджреА рдореБрдЦреНрдп рдХреЗ рд╕рд╛рде рд╡рд┐рд▓реАрди рд╣реЛ рдЬрд╛рдПрдЧрд╛ - рдмрд╕ рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдореБрдЦреНрдп рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдПрдХ рдЯреАрдо рдХреЗ рд▓рд┐рдП рдЦреЗрд▓рдирд╛ рд╣реЛрдЧрд╛;
- рдЕрдЧрд░ ChGK рдХреЗ рд╢рд╣рд░ рдореЗрдВ рдмрд╕ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рддреЛ рдХреНрд▓рд╕реНрдЯрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЬреАрд╡рд┐рдд рд░рд╣реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЦреНрдп рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдПрдХ рдЯреАрдо рдХреЗ рд▓рд┐рдП рдЦреЗрд▓рдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИред
рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдмрд╛рджрд▓реЛрдВ рдореЗрдВ рдмрд╛рд░рд┐рд╢ рдХреА рдмреВрдВрджреЛрдВ рдХреЗ рдмрдирдиреЗ рд╕реЗ рдорд┐рд▓рддреА-рдЬреБрд▓рддреА рд╣реИ: рдПрдХ рдмрдбрд╝реА рдмреВрдВрдж рдЫреЛрдЯреЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреА рд╣реИ рдФрд░ рддреЗрдЬреА рд╕реЗ рдмрдврд╝рддреА рд╣реИред
рдореБрдЦреНрдп рдШрдЯрдХ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЖрдЗрдП рдкрд╣рд▓реЗ рдпрд╛ рдиреМрд╡реЗрдВ рд╕реНрдерд╛рди рдкрд░ рдШрдЯрдХреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ (рдореИрдВ рдореБрдЦреНрдп рдШрдЯрдХ рдХреЛ рд╢реВрдиреНрдп рдорд╛рдирддрд╛ рд╣реВрдВ)ред рд╣рдо рдЗрд╕ рдкрд░рд┐рдХрд▓реНрдкрдирд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЗрди рдШрдЯрдХреЛрдВ рдХреЗ рд▓реЛрдЧ рдПрдХ рд╣реА рд╢рд╣рд░ рдХреЗ рд╣реИрдВред рдкрд╛рд░рдЦреА рдХреЛ рд╢рд╣рд░ рд╕реЗ рдХреЛрдИ рд▓рдЧрд╛рд╡ рдирд╣реАрдВ рд╣реИ (рдЬреЛ рд╣рдорд╛рд░реА рдЖрдзреБрдирд┐рдХ рджреБрдирд┐рдпрд╛ рдореЗрдВ рддрд╛рд░реНрдХрд┐рдХ рд╣реИ)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рдЙрд╕ рдЯреАрдо рдХреЗ рд╣реЛрдо рдкреЛрд░реНрдЯ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╡рд╣ рдЖрдЦрд┐рд░реА рдмрд╛рд░ рдЦреЗрд▓реЗ рдереЗ
рд╢рд╣рд░ рдХреЗ рдЖрдВрдХрдбрд╝реЗ рдХреЛрдб for i in range(1, 10): _g = list(sorted(nx.connected_components(G), key=len, reverse=True)[i]) s = pd.Series() p_url = 'https://rating.chgk.info/api/players/{}/tournaments.json' t_url = 'https://rating.chgk.info/api/teams/{}.json' for player in _g: data = requests.get(p_url.format(player)).json() for item in data: team_id = data[item]["tournaments"][0]["idteam"] data = requests.get(t_url.format(team_id)).json() town = data[0]["town"] s.at[len(s)] = town print(' #{}'.format(i)) print(s.value_counts())
рд╕рд╛рд░рд╛рдВрд╢ рдкреНрд▓реЗрдЯ:
рд╣рд╛рдВ, рдЫреЛрдЯреЗ рдХреНрд▓рд╕реНрдЯрд░ рд▓рдЧрднрдЧ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рд╢рд╣рд░ рд╕реЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рд╕рддреНрддрд░ рддрдореНрдмреЛрд╡ рдирд┐рд╡рд╛рд╕рд┐рдпреЛрдВ рдХреЗ рдШрдЯрдХ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдЬреЛ рд▓рдХреНрд╕рдордмрд░реНрдЧ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рд╕рд╛рддрд╡реЗрдВ рдФрд░ рдиреМрд╡реЗрдВ рд╕реНрдерд╛рди рдкрд░ рдЧреЛрд░реНрдиреЛ-рдЕрд▓реНрдЯрд╕реЗрдХ рдХреЗ рдШрдЯрдХ рд╣реИрдВ, рдЬреЛ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдкрд░рд╕реНрдкрд░ рдЬреБрдбрд╝реЗ рдирд╣реАрдВ рд╣реИрдВред рдореИрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рдореЙрдиреНрдЯреЗрдХ рдФрд░ рдХреИрдкреБрд▓реЗрдЯ рдЬреИрд╕реЗ рджреЛ ChGK-ash рдХреБрд▓реЛрдВ рдХреЗ рд╕рдВрдШрд░реНрд╖ рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рд╢рд╣рд░ рдХреЗ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рд▓рдбрд╝ рд░рд╣реЗ рд╣реИрдВред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпреЗ рдШрдЯрдХ рдореБрдЦреНрдп рдореЗрдВ рд╡рд┐рд▓реАрди рд╣реЛ рдЬрд╛рдПрдВрдЧреЗ рд▓реЗрдХрд┐рди рд▓рдбрд╝рддреЗ рд░рд╣реЗрдВрдЧреЗ ред
рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдХрд╛ рдореБрдЦреНрдп рдШрдЯрдХ
рддреЛ, рд╣рдо рдореБрдЦреНрдп рдШрдЯрдХ рдХреЗ рд▓рд┐рдП рдорд┐рд▓рд╛ рд╣реИред рд╣рдо рд╡рд╛рдВрдЫрд┐рдд рд╕рдмрдЧреНрд░рд╛рдл рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕рдХреЗ рдЖрдБрдХрдбрд╝реЛрдВ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ:
subgraph_v = list(sorted(nx.connected_components(G), key=len, reverse=True)[0]) subgraph = G.subgraph(subgraph_v) print(nx.info(subgraph))
рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреА рдФрд╕рдд рд╕рдВрдЦреНрдпрд╛ рдЕрдзрд┐рдХ рдирд┐рдХрд▓реАред
Number of nodes: 145922 Number of edges: 1070504 Average degree: 14.6723
рдФрд░ рдкреНрд░рддрд┐ рдЦрд┐рд▓рд╛рдбрд╝реА рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдХреНрдпрд╛ рд╣реИ?
for t in sorted(G.degree, key=lambda x: x[1], reverse=True)[:10]: print(' {} {} '.format(t[0], t[1]))
42511 818 15051 798 29800 678 23020 666 16581 662 5328 657 29887 651 15811 645 30352 605 1055 602
рд╕рдЪ рдХрд╣реВрдВ, рдореИрдВ рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдереЛрдбрд╝рд╛ рд╣реИрд░рд╛рди рд╣реВрдВред рдпрджрд┐ рдЖрдк рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдИ рдЯреАрдо рдХреЗ рд╕рд╛рде рдЦреЗрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рд╕реНрдерд╛рди рдкрд░ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП 818/5 to 164 рдЧреЗрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдЕрддреБрд▓реНрдпред
рд╣рдо рдЗрд╕ рд░реЗрдЯрд┐рдВрдЧ рдореЗрдВ рдкрд╣рд▓реЗ рджреЛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЛ рдпрд╛рдж рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЖрдЧреЗ рдЙрдирдХреЗ рд╕рдВрдЪрд╛рд░ рдХреМрд╢рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдЪрд▓рд┐рдП рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдФрд╕рдд рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдХреЗ рдХрд┐рддрдиреЗ рдирд┐рдХрдЯрддрдо рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ:
рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рд╕рд╛рдЬрд┐рд╢ рдХрд░рдирд╛ _count = 50 values = nx.degree_histogram(subgraph) plt.figure(figsize=(16, 8), dpi=80) plt.plot(range(_count),values[:_count],'ro-')

X- рдЕрдХреНрд╖ рдкрд░ - Y- рдЕрдХреНрд╖ рдкрд░ рдирд┐рдХрдЯрддрдо рдкрд░рд┐рдЪрд┐рддреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ - рдЙрди рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдкрд░рд┐рдЪрд┐рддреЛрдВ рдХреА рд╕рдВрдЧрдд рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рдЧрднрдЧ 40,000 рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдкрд╛рдВрдЪ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдлреИрд╢рди рдХреЗ 5 рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ (рдпрд╣ рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж рд╣реИ рдХрд┐ рдореЗрдЬ рдкрд░ рдЫрд╣ рд▓реЛрдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ)ред рдЗрд╕реА рд╕рдордп, рдкрд░рд┐рдЪрд┐рддреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рдФрд╕рдд 14.67 рд╣реИ, рдФрд░ рдордВрдЭрд▓рд╛ рд╣реИ 7. рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдКрдкрд░ рдХреА рд░реЗрдЯрд┐рдВрдЧ рд╡рд╛рд▓реЗ рд╕рдЬреНрдЬрди рдФрд╕рдд рд╕реЗ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╣реИрдВред рдпрджрд┐ рд╕реМ рд▓реЛрдЧ ChGK рдореЗрдВ рдирд╣реАрдВ рдЦреЗрд▓рддреЗ рд╣реИрдВ, рдФрд░ рдПрдХ рдХреЗ 800 рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рддреЛ рдФрд╕рддрди рд╡реЗ ChGK рдореЗрдВ рдЦреЗрд▓рддреЗ рд╣реИрдВред
рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЛ рджреВрд░рд┐рдпрд╛рдВ
рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЧреНрд░рд╛рдл рдХреЗ рд╡реНрдпрд╛рд╕ рдХреЛ рдЧрд┐рдирдирд╛ рдереЛрдбрд╝рд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ , рдЪрд▓реЛ рдЗрд╕реЗ рдЖрд╕рд╛рди рдХрд░рддреЗ рд╣реИрдВ: рдХрдИ рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рд▓реЗрдВ рдФрд░ рдЙрдирд╕реЗ рдЕрдиреНрдп рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЫреЛрдЯреА рджреВрд░реА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВред рдЗрди рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВрдиреЗ рдХрдИ рдЬрд╛рдиреЗ-рдорд╛рдиреЗ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ, рдЕрдкрдиреЗ рдЖрдк рдХреЛ, рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдЦрд┐рд▓рд╛рдбрд╝реА рдФрд░ рджреЛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЛ рд╕рдмрд╕реЗ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рдЪрд┐рддреЛрдВ (рд░реЗрдЯрд┐рдВрдЧ рджреЗрдЦреЗрдВ) рдХреЗ рд╕рд╛рде рд▓рд┐рдпрд╛ред рдпрд╣рд╛рдБ рдХреНрдпрд╛ рд╣реБрдЖ:
famous_players = {9808: ' ', 5195: ' ', 25882: ' ', 29333: ' ', 118622: ' ', 42511: ' ', 15051: ' ', 118621: ' '} for key in famous_players: print('{}: {} - ' .format(famous_players[key], nx.eccentricity(subgraph, v=key)))
: 12 - : 12 - : 12 - : 12 - : 13 - : 12 - : 13 - : 13 -
рдпрд╣ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЫрд╣ рд╣реИрдВрдбрд╢реЗрдХ (рдХрд┐рд╕реА рднреА рджреЛ рд▓реЛрдЧреЛрдВ рдХреЛ рдкрд╛рдВрдЪ рджреЛрд╕реНрддреЛрдВ рдХреЗ рдкрд╛рдВрдЪ рд╕реЗ рдЕрдзрд┐рдХ рд╕реНрддрд░реЛрдВ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдПрдХ рдордЬрдмреВрдд рд╕реВрддреНрд░реАрдХрд░рдг рдЧрд▓рдд рд╣реИред рдЧреНрд░рд╛рдл рдХрд╛ рд╡реНрдпрд╛рд╕ 13-14 рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред
рдПрдХ рдХрдордЬреЛрд░ рд╢рдмреНрджрд╛рдВрдХрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ ( рдФрд╕рддрди рдХреЛрдИ рднреА рджреЛ рд╡реНрдпрдХреНрддрд┐ рдкрд╛рдВрдЪ рджреЛрд╕реНрддреЛрдВ рдХреЗ рдЖрдкрд╕реА рд╕реНрддрд░ рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ )?
for key in famous_players: paths = nx.shortest_path_length(subgraph, source=key).values() print('{}: {} - ' .format(famous_players[key], sum(paths) / len(paths)))
: 3.941461876893135 - : 3.7971107852140182 - : 3.89353216101753 - : 3.8634887131481204 - : 4.1443373857266215 - : 3.575478680390894 - : 3.608674497334192 - : 4.564102739819904 -
рдпрджрд┐ рд╣рдо рд╢рдмреНрджреЛрдВ рдХреЛ рдвреАрд▓рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рд┐рджреНрдзрд╛рдВрдд рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ - рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЗ рдФрд╕рддрди 4-5 рд╕реНрддрд░реЛрдВ рдкрд░ рдкрд░рд┐рдЪрд┐рддреЛрдВ рдХреЗ рдмреАрдЪред рд╣рдо рд╕рд╛рдЬрд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рддрдиреЗ рд▓реЛрдЧ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрд╛рд░рдЦреА рдП рдбреНрд░реВрдЬрд╝реЗрдо рд╕реЗ рд╕реАрдзреЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ, рдПрдХ, рджреЛ, рдЖрджрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗред рдкрд╛рд░рдЦрд┐рдпреЛрдВред
рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рд╕рд╛рдЬрд┐рд╢ рдХрд░рдирд╛ paths = nx.shortest_path_length(subgraph, source=9808) neighbours = [0] * 15 for k in paths: neighbours[paths[k]] += 1 _count = 15 plt.figure(figsize=(16, 8), dpi=80) plt.plot(range(_count),neighbours[:_count],'ro-')
рдПрдХреНрд╕ рдЕрдХреНрд╖ рдкрд░, рд╡рд╛рдИ рдЕрдХреНрд╖ рдкрд░ рдПред рдбреНрд░реБрдЬрд╝реЗрдо (рд╕реАрдзреЗ, рдПрдХ, рджреЛ, рдЖрджрд┐) рдХреЗ рд╕рд╛рде рдкрд░рд┐рдЪрд┐рдд рдХреА рдбрд┐рдЧреНрд░реА, рдЙрди рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдП рдбреНрд░реВрдЬрд╝реЗрдо рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВред

рд╕рд╛рдорд╛рдЬрд┐рдХ рд░реЗрдЦрд╛рдВрдХрди
рдХреНрдпреЛрдВрдХрд┐ рд▓рдЧрднрдЧ 200 рд╣рдЬрд╛рд░ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреНрд░рд╛рдл рдмрдирд╛рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╣реИ, рд╣рдо рдЗрд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдВрдЧреЗ: рд╣рдо рдХреЗрд░реНрдЪ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА рдШрдЯрдХ рдФрд░ рд▓реЗрдЦрдХ рд╕реЗ рдЬреБрдбрд╝реЗ рд▓реЛрдЧреЛрдВ рдХреЗ рдПрдХ рдЧреНрд░рд╛рдл рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗред
рдХреЗрд░реНрдЪ рдШрдЯрдХ
little_v = list(sorted(nx.connected_components(G), key=len, reverse=True)[1]) little = G.subgraph(little_v) plt.figure(figsize=(24, 12), dpi=200) pos = nx.kamada_kawai_layout(little) nx.draw(little, pos=pos, node_size=100, edge_color='gray', node_color=[val for (node, val) in little.degree()], cmap=plt.cm.jet) plt.show()

рдЖрдк рдЯреАрдореЛрдВ рдореЗрдВ рдШрдЯрдХреЛрдВ рдХреЗ рдкреГрдердХреНрдХрд░рдг рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЯреАрдореЛрдВ рдХреЛ рдПрдХ рдпрд╛ рджреЛ рдорд┐рд▓рдирд╕рд╛рд░ рдкрд╛рд░рдЦреА рдХреА рдорджрдж рд╕реЗ, рдПрдХ рдирд┐рдпрдо рдХреЗ рд░реВрдк рдореЗрдВ, рдкрд░рд╕реНрдкрд░ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рдХреЗрдВрджреНрд░ рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдХреЛрд░ рд╣реИ рдЬреЛ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдЕрдиреНрдп рдЦрд┐рд▓рд╛рдбрд╝рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреА рдЧрд┐рдирддреА
рд╣рдо рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдирд┐рдХрдЯрддрдо рдкрд░рд┐рдЪрд┐рддреЛрдВ рдХреЛ рджреЗрдЦреЗрдВрдЧреЗ рдФрд░ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рд╡реЗ рдХреИрд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИрдВред рдЧреНрд░рд╛рдл рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрд╕ рд╡реНрдпрдХреНрддрд┐ рдХреЛ рд╕реНрд╡рдпрдВ рдирд╣реАрдВ рдЬреЛрдбрд╝реЗрдВрдЧреЗ (рд╡рд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рднреА рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ)
id = 118622 ego_graph = [n for n in G.neighbors(id)]

рдЧреНрд░рд╛рдл рдЬреНрдпрд╛рджрд╛ рд╕рдШрди рд╣реИ, 10-15 рд▓реЛрдЧреЛрдВ рдХрд╛ рдПрдХ рдХреЛрд░ рдЬреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реИрдВ рд╡реЗ рдЕрд▓рдЧ рд╣реИрдВред рдЕрдзрд┐рдХрддрдо рдХреНрд▓рд┐рдХ рдХрд╛ рдЖрдХрд╛рд░ 13 рд╣реИред
рдирд┐рд╖реНрдХрд░реНрд╖
- рдПрдХ рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЦреЗрд▓ ChGK рдореЗрдВ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдЬрд╛рдирдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдЖрдкрдХреЛ рдСрдлрд╝рд▓рд╛рдЗрди рдЬрд╛рдиреЗ рдФрд░ рдХрдо рд╕реЗ рдХрдо рдЕрдиреНрдп рдЯреВрд░реНрдирд╛рдореЗрдВрдЯ рдЦреЗрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рджреБрдирд┐рдпрд╛ рднрд░ рдореЗрдВ рдмрд┐рдЦрд░реЗ рд╣реБрдП рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдХреЗ рдмреАрдЪ рдФрд╕рдд рджреВрд░реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╛рдВрдЪ рд╕реЗ рдХрдо рд╣реИред
- рд░реЗрдЯрд┐рдВрдЧ рд╕рд╛рдЗрдЯ Snyatkovsky рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ , рдЬреЛ рдХрд┐ ChGK рдХреА рджреБрдирд┐рдпрд╛ рдореЗрдВ Erd├╢s рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИ ред рд╢реНрд░реА рд╕рдВрд╡рддрдХреЛрд╡рд╕реНрдХреА рд╕реНрд╡рдпрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рд╛рдордВрдЬрд╕реНрдпрдкреВрд░реНрдг рдкрд╛рд░рдЦреА рдХреА рд╣рдорд╛рд░реА рд░реИрдВрдХрд┐рдВрдЧ рдореЗрдВ рддреАрд╕рд░реЗ рд╕реНрдерд╛рди рдкрд░ рд╣реИрдВред
- рдореЗрд░реЗ рдЧрд┐рддреБрдм рдХреЗ рдПрдХ рд▓реЗрдЦ рдХрд╛ рдХреЛрдбред
- рдмрд╣реБрдореВрд▓реНрдп рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рд▓реЗрдЦрдХ рд╡реНрд╣рд╛рдЗрдЯ рдиреЙрдЗрдЬрд╝ рдФрд░ рд╣реВ рдлреНрд░реЗрдореНрдб рд░реЛрдЬрд░ рдлреЗрдбрд░рд░, рдорд┐рдЦрд╛рдЗрд▓ рдЕрдХреБрд▓реЛрд╡ , рд╡реЗрд░рд╛ рдЯреЗрд░реЗрдВрдЯреЗрд╡рд╛ рдФрд░ рдлрд╛рдпрд░рдореВрди рдХрд╛ рдЖрднрд╛рд░реА рд╣реИ ред