[{"data":1,"prerenderedAt":2723},["ShallowReactive",2],{"navigation":3,"\u002Fblog\u002Fege\u002Ftask13":386,"\u002Fblog\u002Fege\u002Ftask13-surround":2718},[4],{"title":5,"path":6,"stem":7,"children":8,"page":114},"Blog","\u002Fblog","blog",[9,115,184,329],{"title":10,"path":11,"stem":12,"children":13,"page":114},"Ege","\u002Fblog\u002Fege","blog\u002Fege",[14,18,22,26,30,34,38,42,46,50,54,58,62,66,70,74,78,82,86,90,94,98,102,106,110],{"title":15,"path":16,"stem":17},"ЕГЭ Задание 1","\u002Fblog\u002Fege\u002Ftask1","blog\u002Fege\u002Ftask1",{"title":19,"path":20,"stem":21},"ЕГЭ Задание 10","\u002Fblog\u002Fege\u002Ftask10","blog\u002Fege\u002Ftask10",{"title":23,"path":24,"stem":25},"ЕГЭ Задание 11","\u002Fblog\u002Fege\u002Ftask11","blog\u002Fege\u002Ftask11",{"title":27,"path":28,"stem":29},"ЕГЭ Задание 12","\u002Fblog\u002Fege\u002Ftask12","blog\u002Fege\u002Ftask12",{"title":31,"path":32,"stem":33},"ЕГЭ Задание 13","\u002Fblog\u002Fege\u002Ftask13","blog\u002Fege\u002Ftask13",{"title":35,"path":36,"stem":37},"ЕГЭ Задание 14","\u002Fblog\u002Fege\u002Ftask14","blog\u002Fege\u002Ftask14",{"title":39,"path":40,"stem":41},"ЕГЭ Задание 15","\u002Fblog\u002Fege\u002Ftask15","blog\u002Fege\u002Ftask15",{"title":43,"path":44,"stem":45},"ЕГЭ Задание 16","\u002Fblog\u002Fege\u002Ftask16","blog\u002Fege\u002Ftask16",{"title":47,"path":48,"stem":49},"ЕГЭ Задание 17","\u002Fblog\u002Fege\u002Ftask17","blog\u002Fege\u002Ftask17",{"title":51,"path":52,"stem":53},"ЕГЭ Задание 18","\u002Fblog\u002Fege\u002Ftask18","blog\u002Fege\u002Ftask18",{"title":55,"path":56,"stem":57},"ЕГЭ Задание 19, 20, 21","\u002Fblog\u002Fege\u002Ftask19_20_21","blog\u002Fege\u002Ftask19_20_21",{"title":59,"path":60,"stem":61},"ЕГЭ Задание 2","\u002Fblog\u002Fege\u002Ftask2","blog\u002Fege\u002Ftask2",{"title":63,"path":64,"stem":65},"ЕГЭ Задание 22","\u002Fblog\u002Fege\u002Ftask22","blog\u002Fege\u002Ftask22",{"title":67,"path":68,"stem":69},"ЕГЭ Задание 23","\u002Fblog\u002Fege\u002Ftask23","blog\u002Fege\u002Ftask23",{"title":71,"path":72,"stem":73},"ЕГЭ Задание 24","\u002Fblog\u002Fege\u002Ftask24","blog\u002Fege\u002Ftask24",{"title":75,"path":76,"stem":77},"ЕГЭ Задание 25","\u002Fblog\u002Fege\u002Ftask25","blog\u002Fege\u002Ftask25",{"title":79,"path":80,"stem":81},"ЕГЭ Задание 26","\u002Fblog\u002Fege\u002Ftask26","blog\u002Fege\u002Ftask26",{"title":83,"path":84,"stem":85},"ЕГЭ Задание 27","\u002Fblog\u002Fege\u002Ftask27","blog\u002Fege\u002Ftask27",{"title":87,"path":88,"stem":89},"ЕГЭ Задание 3","\u002Fblog\u002Fege\u002Ftask3","blog\u002Fege\u002Ftask3",{"title":91,"path":92,"stem":93},"ЕГЭ Задание 4","\u002Fblog\u002Fege\u002Ftask4","blog\u002Fege\u002Ftask4",{"title":95,"path":96,"stem":97},"ЕГЭ Задание 5","\u002Fblog\u002Fege\u002Ftask5","blog\u002Fege\u002Ftask5",{"title":99,"path":100,"stem":101},"ЕГЭ Задание 6","\u002Fblog\u002Fege\u002Ftask6","blog\u002Fege\u002Ftask6",{"title":103,"path":104,"stem":105},"ЕГЭ Задание 7","\u002Fblog\u002Fege\u002Ftask7","blog\u002Fege\u002Ftask7",{"title":107,"path":108,"stem":109},"ЕГЭ Задание 8","\u002Fblog\u002Fege\u002Ftask8","blog\u002Fege\u002Ftask8",{"title":111,"path":112,"stem":113},"ЕГЭ Задание 9","\u002Fblog\u002Fege\u002Ftask9","blog\u002Fege\u002Ftask9",false,{"title":116,"path":117,"stem":118,"children":119,"page":114},"Oge","\u002Fblog\u002Foge","blog\u002Foge",[120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180],{"title":121,"path":122,"stem":123},"ОГЭ Задание 1","\u002Fblog\u002Foge\u002Ftask1","blog\u002Foge\u002Ftask1",{"title":125,"path":126,"stem":127},"ОГЭ Задание 10","\u002Fblog\u002Foge\u002Ftask10","blog\u002Foge\u002Ftask10",{"title":129,"path":130,"stem":131},"ОГЭ Задание 11","\u002Fblog\u002Foge\u002Ftask11","blog\u002Foge\u002Ftask11",{"title":133,"path":134,"stem":135},"ОГЭ Задание 12","\u002Fblog\u002Foge\u002Ftask12","blog\u002Foge\u002Ftask12",{"title":137,"path":138,"stem":139},"ОГЭ Задание 13","\u002Fblog\u002Foge\u002Ftask13","blog\u002Foge\u002Ftask13",{"title":141,"path":142,"stem":143},"ОГЭ Задание 14","\u002Fblog\u002Foge\u002Ftask14","blog\u002Foge\u002Ftask14",{"title":145,"path":146,"stem":147},"ОГЭ Задание 15","\u002Fblog\u002Foge\u002Ftask15","blog\u002Foge\u002Ftask15",{"title":149,"path":150,"stem":151},"ОГЭ Задание 16","\u002Fblog\u002Foge\u002Ftask16","blog\u002Foge\u002Ftask16",{"title":153,"path":154,"stem":155},"ОГЭ Задание 2","\u002Fblog\u002Foge\u002Ftask2","blog\u002Foge\u002Ftask2",{"title":157,"path":158,"stem":159},"ОГЭ Задание 3","\u002Fblog\u002Foge\u002Ftask3","blog\u002Foge\u002Ftask3",{"title":161,"path":162,"stem":163},"ОГЭ Задание 4","\u002Fblog\u002Foge\u002Ftask4","blog\u002Foge\u002Ftask4",{"title":165,"path":166,"stem":167},"ОГЭ Задание 5","\u002Fblog\u002Foge\u002Ftask5","blog\u002Foge\u002Ftask5",{"title":169,"path":170,"stem":171},"ОГЭ Задание 6","\u002Fblog\u002Foge\u002Ftask6","blog\u002Foge\u002Ftask6",{"title":173,"path":174,"stem":175},"ОГЭ Задание 7","\u002Fblog\u002Foge\u002Ftask7","blog\u002Foge\u002Ftask7",{"title":177,"path":178,"stem":179},"ОГЭ Задание 8","\u002Fblog\u002Foge\u002Ftask8","blog\u002Foge\u002Ftask8",{"title":181,"path":182,"stem":183},"ОГЭ Задание 9","\u002Fblog\u002Foge\u002Ftask9","blog\u002Foge\u002Ftask9",{"title":185,"path":186,"stem":187,"children":188,"page":114},"Python","\u002Fblog\u002Fpython","blog\u002Fpython",[189,193,197,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273,277,281,285,289,293,297,301,305,309,313,317,321,325],{"title":190,"path":191,"stem":192},"Знакомство с синтаксисом","\u002Fblog\u002Fpython\u002Fst1","blog\u002Fpython\u002Fst1",{"title":194,"path":195,"stem":196},"Отладка","\u002Fblog\u002Fpython\u002Fst10","blog\u002Fpython\u002Fst10",{"title":198,"path":199,"stem":200},"Модули и пакеты","\u002Fblog\u002Fpython\u002Fst11","blog\u002Fpython\u002Fst11",{"title":202,"path":203,"stem":204},"Кортежи","\u002Fblog\u002Fpython\u002Fst12","blog\u002Fpython\u002Fst12",{"title":206,"path":207,"stem":208},"Знакомство со списками","\u002Fblog\u002Fpython\u002Fst13","blog\u002Fpython\u002Fst13",{"title":210,"path":211,"stem":212},"Списки и циклы","\u002Fblog\u002Fpython\u002Fst14","blog\u002Fpython\u002Fst14",{"title":214,"path":215,"stem":216},"Использование списков ч.1","\u002Fblog\u002Fpython\u002Fst15","blog\u002Fpython\u002Fst15",{"title":218,"path":219,"stem":220},"Использование списков ч.2","\u002Fblog\u002Fpython\u002Fst16","blog\u002Fpython\u002Fst16",{"title":222,"path":223,"stem":224},"Использование списков ч.3","\u002Fblog\u002Fpython\u002Fst17","blog\u002Fpython\u002Fst17",{"title":226,"path":227,"stem":228},"Словари","\u002Fblog\u002Fpython\u002Fst18","blog\u002Fpython\u002Fst18",{"title":230,"path":231,"stem":232},"Множества","\u002Fblog\u002Fpython\u002Fst19","blog\u002Fpython\u002Fst19",{"title":234,"path":235,"stem":236},"Переменные","\u002Fblog\u002Fpython\u002Fst2","blog\u002Fpython\u002Fst2",{"title":238,"path":239,"stem":240},"Хеш-таблицы","\u002Fblog\u002Fpython\u002Fst20","blog\u002Fpython\u002Fst20",{"title":242,"path":243,"stem":244},"Решето Эратосфена","\u002Fblog\u002Fpython\u002Fst21","blog\u002Fpython\u002Fst21",{"title":246,"path":247,"stem":248},"Длинная арифметика","\u002Fblog\u002Fpython\u002Fst22","blog\u002Fpython\u002Fst22",{"title":250,"path":251,"stem":252},"Декораторы функций","\u002Fblog\u002Fpython\u002Fst23","blog\u002Fpython\u002Fst23",{"title":254,"path":255,"stem":256},"Знакомство с алгоритмами","\u002Fblog\u002Fpython\u002Fst24","blog\u002Fpython\u002Fst24",{"title":258,"path":259,"stem":260},"Бинарный поиск – примеры задач","\u002Fblog\u002Fpython\u002Fst25","blog\u002Fpython\u002Fst25",{"title":262,"path":263,"stem":264},"Сортировка выбором","\u002Fblog\u002Fpython\u002Fst26","blog\u002Fpython\u002Fst26",{"title":266,"path":267,"stem":268},"Рекурсия и стек","\u002Fblog\u002Fpython\u002Fst27","blog\u002Fpython\u002Fst27",{"title":270,"path":271,"stem":272},"Быстрая сортировка","\u002Fblog\u002Fpython\u002Fst28","blog\u002Fpython\u002Fst28",{"title":274,"path":275,"stem":276},"Поиск в ширину","\u002Fblog\u002Fpython\u002Fst29","blog\u002Fpython\u002Fst29",{"title":278,"path":279,"stem":280},"Работа со строками","\u002Fblog\u002Fpython\u002Fst3","blog\u002Fpython\u002Fst3",{"title":282,"path":283,"stem":284},"Поиск в глубину","\u002Fblog\u002Fpython\u002Fst30","blog\u002Fpython\u002Fst30",{"title":286,"path":287,"stem":288},"Сбалансированные деревья","\u002Fblog\u002Fpython\u002Fst31","blog\u002Fpython\u002Fst31",{"title":290,"path":291,"stem":292},"Алгоритм Дейкстры","\u002Fblog\u002Fpython\u002Fst32","blog\u002Fpython\u002Fst32",{"title":294,"path":295,"stem":296},"Жадные алгоритмы","\u002Fblog\u002Fpython\u002Fst33","blog\u002Fpython\u002Fst33",{"title":298,"path":299,"stem":300},"Динамическое программирование","\u002Fblog\u002Fpython\u002Fst34","blog\u002Fpython\u002Fst34",{"title":302,"path":303,"stem":304},"Алгоритм k ближайших соседей","\u002Fblog\u002Fpython\u002Fst35","blog\u002Fpython\u002Fst35",{"title":306,"path":307,"stem":308},"Типы данных","\u002Fblog\u002Fpython\u002Fst4","blog\u002Fpython\u002Fst4",{"title":310,"path":311,"stem":312},"О функциях","\u002Fblog\u002Fpython\u002Fst5","blog\u002Fpython\u002Fst5",{"title":314,"path":315,"stem":316},"Свойства и методы","\u002Fblog\u002Fpython\u002Fst6","blog\u002Fpython\u002Fst6",{"title":318,"path":319,"stem":320},"Определение функций","\u002Fblog\u002Fpython\u002Fst7","blog\u002Fpython\u002Fst7",{"title":322,"path":323,"stem":324},"Логика","\u002Fblog\u002Fpython\u002Fst8","blog\u002Fpython\u002Fst8",{"title":326,"path":327,"stem":328},"Циклы","\u002Fblog\u002Fpython\u002Fst9","blog\u002Fpython\u002Fst9",{"title":330,"path":331,"stem":332,"children":333,"page":114},"Toi","\u002Fblog\u002Ftoi","blog\u002Ftoi",[334,338,342,346,350,354,358,362,366,370,374,378,382],{"title":335,"path":336,"stem":337},"Информация и информационные процессы","\u002Fblog\u002Ftoi\u002Fst1","blog\u002Ftoi\u002Fst1",{"title":339,"path":340,"stem":341},"Электронные таблицы","\u002Fblog\u002Ftoi\u002Fst10","blog\u002Ftoi\u002Fst10",{"title":343,"path":344,"stem":345},"Система, её свойства и компоненты. Моделирование","\u002Fblog\u002Ftoi\u002Fst11","blog\u002Ftoi\u002Fst11",{"title":347,"path":348,"stem":349},"Представление информации в компьютере","\u002Fblog\u002Ftoi\u002Fst12","blog\u002Ftoi\u002Fst12",{"title":351,"path":352,"stem":353},"Средства информационно-коммуникационных технологий. Файловая система","\u002Fblog\u002Ftoi\u002Fst13","blog\u002Ftoi\u002Fst13",{"title":355,"path":356,"stem":357},"Комбинаторика","\u002Fblog\u002Ftoi\u002Fst2","blog\u002Ftoi\u002Fst2",{"title":359,"path":360,"stem":361},"Адресация в интернете","\u002Fblog\u002Ftoi\u002Fst3","blog\u002Ftoi\u002Fst3",{"title":363,"path":364,"stem":365},"Измерение количества информации","\u002Fblog\u002Ftoi\u002Fst4","blog\u002Ftoi\u002Fst4",{"title":367,"path":368,"stem":369},"Системы счисления","\u002Fblog\u002Ftoi\u002Fst5","blog\u002Ftoi\u002Fst5",{"title":371,"path":372,"stem":373},"Диаграммы Эйлера — Венна","\u002Fblog\u002Ftoi\u002Fst6","blog\u002Ftoi\u002Fst6",{"title":375,"path":376,"stem":377},"Условие Фано","\u002Fblog\u002Ftoi\u002Fst7","blog\u002Ftoi\u002Fst7",{"title":379,"path":380,"stem":381},"Теория графов","\u002Fblog\u002Ftoi\u002Fst8","blog\u002Ftoi\u002Fst8",{"title":383,"path":384,"stem":385},"Алгебра логики","\u002Fblog\u002Ftoi\u002Fst9","blog\u002Ftoi\u002Fst9",{"id":387,"title":31,"author":388,"body":393,"date":2709,"description":2710,"extension":2711,"image":2712,"meta":2713,"minRead":2714,"navigation":2715,"num":1842,"path":32,"seo":2716,"stem":33,"__hash__":2717},"ege\u002Fblog\u002Fege\u002Ftask13.md",{"name":389,"avatar":390},"Штана Альберт Игоревич",{"src":391,"alt":392},"me.jpg","@ashtana",{"type":394,"value":395,"toc":2659},"minimark",[396,401,409,415,424,432,437,440,446,452,458,461,466,469,472,475,480,483,657,663,668,778,781,812,817,821,823,826,829,941,950,955,959,962,965,968,971,1117,1140,1143,1148,1152,1155,1158,1161,1164,1286,1289,1294,1298,1301,1304,1307,1310,1351,1354,1359,1363,1366,1369,1372,1375,1528,1531,1536,1540,1543,1546,1549,1554,1557,1560,1568,1583,1591,1596,1601,1607,1613,1618,1621,1625,1627,1630,1633,1854,1857,1901,1906,1910,1912,1915,1918,2065,2068,2073,2077,2080,2083,2086,2089,2092,2095,2098,2101,2104,2107,2110,2113,2117,2120,2236,2239,2319,2329,2333,2337,2340,2347,2350,2352,2355,2358,2361,2364,2367,2370,2373,2376,2379,2382,2385,2400,2403,2406,2486,2489,2494,2498,2501,2506,2509,2511,2514,2517,2520,2523,2526,2532,2535,2628,2631,2636,2641,2652,2655],[397,398,400],"h2",{"id":399},"типы-заданий-13","Типы заданий № 13",[402,403,404,405],"p",{},"В этой статье будет разобрано ",[406,407,408],"strong",{},"задание 13.",[402,410,411,412],{},"Рассмотрим типовые задачи из тринадцатого задания ",[406,413,414],{},"ЕГЭ по информатике.",[402,416,417],{},[418,419,420,421],"em",{},"Данное задание относится к ",[406,422,423],{},"повышенному уровню сложности.",[402,425,426],{},[418,427,428,429],{},"Время выполнения задания ",[406,430,431],{},"≈ 3 минуты.",[433,434,436],"h3",{"id":435},"теория","Теория",[402,438,439],{},"Для начала давайте разберемся с терминами.",[402,441,442,445],{},[418,443,444],{},"IP-адрес"," (Internet Protocol Address) — это уникальный числовой идентификатор, присваиваемый каждому устройству в сети. Например, 192.168.1.1",[402,447,448,451],{},[418,449,450],{},"Маска подсети"," определяет, какая часть IP-адреса относится к адресу сети, а какая — к адресу устройства в этой сети. Маска представляется числом, например, 255.255.255.0, и состоит из единиц, обозначающих биты, принадлежащие адресу сети.",[402,453,454,457],{},[418,455,456],{},"Адрес сети"," — это результат применения маски к IP-адресу устройства. Производится это побитовым \"И\" (логическим умножением) адреса узла и маски.",[402,459,460],{},"Для вычисления адреса сети используется следующая формула: адрес сети = IP-адрес & маска подсети, где \"&\" - это побитовое \"И\".",[462,463,465],"h4",{"id":464},"задача-1-классическая","Задача 1 (Классическая)",[402,467,468],{},"В терминологии сетей TCP\u002FIP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.",[402,470,471],{},"Сеть задана IP-адресом 192.168.32.160 и маской сети 255.255.255.240. Сколько в этой сети IP-адресов, для которых сумма единиц в двоичной записи IP-адреса чётна?",[402,473,474],{},"В ответе укажите только число.",[476,477,479],"h5",{"id":478},"решение","Решение:",[402,481,482],{},"Можно решить данную задачу аналитически, но на экзамене не уложиться таким образом в 3 минуты. Иногда решать через программирование, а иногда лучше вручную! Первый способ \"в лоб\" — решить данную задачу используя Python и циклы:",[484,485,490],"pre",{"className":486,"code":487,"language":488,"meta":489,"style":489},"language-python shiki shiki-themes github-light","count = 0\nfor x1 in '01':\n    for x2 in '01':\n        for x3 in '01':\n            for x4 in '01':\n                s = x1 + x2 + x3 + x4\n                if (8 + s.count('1')) % 2 == 0:\n                    count += 1\nprint(count)\n","python","",[491,492,493,510,529,544,559,574,598,636,648],"code",{"__ignoreMap":489},[494,495,498,502,506],"span",{"class":496,"line":497},"line",1,[494,499,501],{"class":500},"sgsFI","count ",[494,503,505],{"class":504},"sD7c4","=",[494,507,509],{"class":508},"sYu0t"," 0\n",[494,511,513,516,519,522,526],{"class":496,"line":512},2,[494,514,515],{"class":504},"for",[494,517,518],{"class":500}," x1 ",[494,520,521],{"class":504},"in",[494,523,525],{"class":524},"sYBdl"," '01'",[494,527,528],{"class":500},":\n",[494,530,532,535,538,540,542],{"class":496,"line":531},3,[494,533,534],{"class":504},"    for",[494,536,537],{"class":500}," x2 ",[494,539,521],{"class":504},[494,541,525],{"class":524},[494,543,528],{"class":500},[494,545,547,550,553,555,557],{"class":496,"line":546},4,[494,548,549],{"class":504},"        for",[494,551,552],{"class":500}," x3 ",[494,554,521],{"class":504},[494,556,525],{"class":524},[494,558,528],{"class":500},[494,560,562,565,568,570,572],{"class":496,"line":561},5,[494,563,564],{"class":504},"            for",[494,566,567],{"class":500}," x4 ",[494,569,521],{"class":504},[494,571,525],{"class":524},[494,573,528],{"class":500},[494,575,577,580,582,584,587,589,591,593,595],{"class":496,"line":576},6,[494,578,579],{"class":500},"                s ",[494,581,505],{"class":504},[494,583,518],{"class":500},[494,585,586],{"class":504},"+",[494,588,537],{"class":500},[494,590,586],{"class":504},[494,592,552],{"class":500},[494,594,586],{"class":504},[494,596,597],{"class":500}," x4\n",[494,599,601,604,607,610,613,616,619,622,625,628,631,634],{"class":496,"line":600},7,[494,602,603],{"class":504},"                if",[494,605,606],{"class":500}," (",[494,608,609],{"class":508},"8",[494,611,612],{"class":504}," +",[494,614,615],{"class":500}," s.count(",[494,617,618],{"class":524},"'1'",[494,620,621],{"class":500},")) ",[494,623,624],{"class":504},"%",[494,626,627],{"class":508}," 2",[494,629,630],{"class":504}," ==",[494,632,633],{"class":508}," 0",[494,635,528],{"class":500},[494,637,639,642,645],{"class":496,"line":638},8,[494,640,641],{"class":500},"                    count ",[494,643,644],{"class":504},"+=",[494,646,647],{"class":508}," 1\n",[494,649,651,654],{"class":496,"line":650},9,[494,652,653],{"class":508},"print",[494,655,656],{"class":500},"(count)\n",[658,659,660],"blockquote",{},[402,661,662],{},"Данный способ имеет ограничение. Если количество нулей в маске превышает 20, лучше пользоваться другим способом!",[664,665,667],"h6",{"id":666},"решение-через-модуль-ipaddress","Решение через модуль ipaddress",[484,669,671],{"className":486,"code":670,"language":488,"meta":489,"style":489},"from ipaddress import *\nc = 0\nips = ip_network('192.168.32.160\u002F255.255.255.240', 0)\nfor ip in ips:\n    if format(ip, 'b').count('1') % 2 == 0:\n        c += 1\nprint(c)\n",[491,672,673,687,696,718,730,762,771],{"__ignoreMap":489},[494,674,675,678,681,684],{"class":496,"line":497},[494,676,677],{"class":504},"from",[494,679,680],{"class":500}," ipaddress ",[494,682,683],{"class":504},"import",[494,685,686],{"class":504}," *\n",[494,688,689,692,694],{"class":496,"line":512},[494,690,691],{"class":500},"c ",[494,693,505],{"class":504},[494,695,509],{"class":508},[494,697,698,701,703,706,709,712,715],{"class":496,"line":531},[494,699,700],{"class":500},"ips ",[494,702,505],{"class":504},[494,704,705],{"class":500}," ip_network(",[494,707,708],{"class":524},"'192.168.32.160\u002F255.255.255.240'",[494,710,711],{"class":500},", ",[494,713,714],{"class":508},"0",[494,716,717],{"class":500},")\n",[494,719,720,722,725,727],{"class":496,"line":546},[494,721,515],{"class":504},[494,723,724],{"class":500}," ip ",[494,726,521],{"class":504},[494,728,729],{"class":500}," ips:\n",[494,731,732,735,738,741,744,747,749,752,754,756,758,760],{"class":496,"line":561},[494,733,734],{"class":504},"    if",[494,736,737],{"class":508}," format",[494,739,740],{"class":500},"(ip, ",[494,742,743],{"class":524},"'b'",[494,745,746],{"class":500},").count(",[494,748,618],{"class":524},[494,750,751],{"class":500},") ",[494,753,624],{"class":504},[494,755,627],{"class":508},[494,757,630],{"class":504},[494,759,633],{"class":508},[494,761,528],{"class":500},[494,763,764,767,769],{"class":496,"line":576},[494,765,766],{"class":500},"        c ",[494,768,644],{"class":504},[494,770,647],{"class":508},[494,772,773,775],{"class":496,"line":600},[494,774,653],{"class":508},[494,776,777],{"class":500},"(c)\n",[402,779,780],{},"Задача решается в 7 строчек кода. Разберём её построчно:",[782,783,784,788,797,800,803,806,809],"ol",{},[785,786,787],"li",{},"Импортируем всё из модуля ipaddress;",[785,789,790,791,796],{},"Заведём переменную счётчик ",[406,792,793],{},[418,794,795],{},"c","(она служит для ответа на задачу);",[785,798,799],{},"В переменную ips возвратом из функции ip_network получаем объект IPv4Network(из него с помощью цикла далее мы можем получить все IP-адреса);",[785,801,802],{},"Сетевые объекты IPv4Network можно итерировать для перечисления всех адресов, принадлежащих сети. Перебираем циклом по очереди все IP-адреса;",[785,804,805],{},"Внутри цикла прописываем условие отбора ip-адреса(для того чтобы далее подсчитывать). Условие звучит так: если (if) двоичное представление ip-адреса(format(ip, 'b)) содержащее количество единиц (.count('1')) кратно 2(% 2 == 0) то(:);",[785,807,808],{},"Увеличивать счётчик на 1;",[785,810,811],{},"После того как цикл отработает выводим значение счётчика в консоль как ответ на задачу.",[402,813,814],{},[406,815,816],{},"Ответ: 8",[462,818,820],{"id":819},"задача-2-два-левых-два-правых-байта","Задача 2 (Два левых, два правых байта)",[402,822,468],{},[402,824,825],{},"Сеть задана IP-адресом 253.112.169.12 и маской сети 255.255.254.0. Сколько в этой сети IP-адресов, для которых в двоичной записи IP-адреса суммарное количество единиц в правых двух байтах не менее суммарного количества единиц в левых двух байтах.",[476,827,479],{"id":828},"решение-1",[484,830,832],{"className":486,"code":831,"language":488,"meta":489,"style":489},"from ipaddress import *\nc = 0\nips = ip_network('253.112.169.12\u002F255.255.254.0', 0)\nfor ip in ips:\n    s = format(ip, 'b')\n    if s[16:].count('1') >= s[:16].count('1'):\n        c += 1\nprint(c)\n",[491,833,834,844,852,869,879,894,927,935],{"__ignoreMap":489},[494,835,836,838,840,842],{"class":496,"line":497},[494,837,677],{"class":504},[494,839,680],{"class":500},[494,841,683],{"class":504},[494,843,686],{"class":504},[494,845,846,848,850],{"class":496,"line":512},[494,847,691],{"class":500},[494,849,505],{"class":504},[494,851,509],{"class":508},[494,853,854,856,858,860,863,865,867],{"class":496,"line":531},[494,855,700],{"class":500},[494,857,505],{"class":504},[494,859,705],{"class":500},[494,861,862],{"class":524},"'253.112.169.12\u002F255.255.254.0'",[494,864,711],{"class":500},[494,866,714],{"class":508},[494,868,717],{"class":500},[494,870,871,873,875,877],{"class":496,"line":546},[494,872,515],{"class":504},[494,874,724],{"class":500},[494,876,521],{"class":504},[494,878,729],{"class":500},[494,880,881,884,886,888,890,892],{"class":496,"line":561},[494,882,883],{"class":500},"    s ",[494,885,505],{"class":504},[494,887,737],{"class":508},[494,889,740],{"class":500},[494,891,743],{"class":524},[494,893,717],{"class":500},[494,895,896,898,901,904,907,909,911,914,917,919,922,924],{"class":496,"line":576},[494,897,734],{"class":504},[494,899,900],{"class":500}," s[",[494,902,903],{"class":508},"16",[494,905,906],{"class":500},":].count(",[494,908,618],{"class":524},[494,910,751],{"class":500},[494,912,913],{"class":504},">=",[494,915,916],{"class":500}," s[:",[494,918,903],{"class":508},[494,920,921],{"class":500},"].count(",[494,923,618],{"class":524},[494,925,926],{"class":500},"):\n",[494,928,929,931,933],{"class":496,"line":600},[494,930,766],{"class":500},[494,932,644],{"class":504},[494,934,647],{"class":508},[494,936,937,939],{"class":496,"line":638},[494,938,653],{"class":508},[494,940,777],{"class":500},[402,942,943,944,949],{},"Здесь перебираем все IP данной сети в виде строки ",[406,945,946],{},[418,947,948],{},"s",". Рассматриваем левые два байта s[:16] (первые 16 символов = 8 + 8) и правые два байта s[16:] (последние 16 символов). Если условие задачи выполняется, то подсчитываем такой IP-адрес.",[402,951,952],{},[406,953,954],{},"Ответ: 46",[462,956,958],{"id":957},"задача-3-минимальный-байт-маски","Задача 3 (Минимальный байт маски)",[402,960,961],{},"В терминологии сетей TCP\u002FIP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая - к адресу самого узла в этой сети. Обычно маска записывается по теме же правилам, что и IP-адрес - в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого разряда - нули. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.",[402,963,964],{},"Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32. 240.0.",[402,966,967],{},"Для узла с IP-адресом 111.81.88.168 адрес сети равен 111.81.88.160. Найдите наименьшее значение последнего байта маски. Ответ запишите в виде десятичного числа.",[476,969,479],{"id":970},"решение-2",[484,972,974],{"className":486,"code":973,"language":488,"meta":489,"style":489},"from ipaddress import *\nip = ip_address('111.81.88.168')\nfor mask in range(31):\n    ips = ip_network(f'{ip}\u002F{mask}', 0)\n    if ips[0] \u003C ip \u003C ips[-1] and str(ips.network_address) == '111.81.88.160':\n        print(ips.netmask)\n",[491,975,976,986,1001,1021,1063,1109],{"__ignoreMap":489},[494,977,978,980,982,984],{"class":496,"line":497},[494,979,677],{"class":504},[494,981,680],{"class":500},[494,983,683],{"class":504},[494,985,686],{"class":504},[494,987,988,991,993,996,999],{"class":496,"line":512},[494,989,990],{"class":500},"ip ",[494,992,505],{"class":504},[494,994,995],{"class":500}," ip_address(",[494,997,998],{"class":524},"'111.81.88.168'",[494,1000,717],{"class":500},[494,1002,1003,1005,1008,1010,1013,1016,1019],{"class":496,"line":531},[494,1004,515],{"class":504},[494,1006,1007],{"class":500}," mask ",[494,1009,521],{"class":504},[494,1011,1012],{"class":508}," range",[494,1014,1015],{"class":500},"(",[494,1017,1018],{"class":508},"31",[494,1020,926],{"class":500},[494,1022,1023,1026,1028,1030,1033,1036,1039,1042,1045,1048,1050,1053,1055,1057,1059,1061],{"class":496,"line":546},[494,1024,1025],{"class":500},"    ips ",[494,1027,505],{"class":504},[494,1029,705],{"class":500},[494,1031,1032],{"class":504},"f",[494,1034,1035],{"class":524},"'",[494,1037,1038],{"class":508},"{",[494,1040,1041],{"class":500},"ip",[494,1043,1044],{"class":508},"}",[494,1046,1047],{"class":524},"\u002F",[494,1049,1038],{"class":508},[494,1051,1052],{"class":500},"mask",[494,1054,1044],{"class":508},[494,1056,1035],{"class":524},[494,1058,711],{"class":500},[494,1060,714],{"class":508},[494,1062,717],{"class":500},[494,1064,1065,1067,1070,1072,1075,1078,1080,1082,1084,1087,1090,1092,1095,1098,1101,1104,1107],{"class":496,"line":561},[494,1066,734],{"class":504},[494,1068,1069],{"class":500}," ips[",[494,1071,714],{"class":508},[494,1073,1074],{"class":500},"] ",[494,1076,1077],{"class":504},"\u003C",[494,1079,724],{"class":500},[494,1081,1077],{"class":504},[494,1083,1069],{"class":500},[494,1085,1086],{"class":504},"-",[494,1088,1089],{"class":508},"1",[494,1091,1074],{"class":500},[494,1093,1094],{"class":504},"and",[494,1096,1097],{"class":508}," str",[494,1099,1100],{"class":500},"(ips.network_address) ",[494,1102,1103],{"class":504},"==",[494,1105,1106],{"class":524}," '111.81.88.160'",[494,1108,528],{"class":500},[494,1110,1111,1114],{"class":496,"line":576},[494,1112,1113],{"class":508},"        print",[494,1115,1116],{"class":500},"(ips.netmask)\n",[782,1118,1119,1122,1125,1131,1134,1137],{},[785,1120,1121],{},"Первым делом(первой строкой) как обычно всё импортируем.",[785,1123,1124],{},"В начале на второй строке переводим ip в специальный формат(объект IPv4Address) с помощью функции ip_address().",[785,1126,1127,1130],{},[418,1128,1129],{},"Так как можно указывать маску не в виде четырёх чисел, а через количество единиц."," Прокручиваем числа из функции range(от нуля до 30) в цикле. В данном случае это будет количество единиц в маске. Максимум в маске может быть 32 единицы. Но мы крутим до 30 включительно, т.к. 31 единица и 32 единицы - это неприменимые маски, их можно не рассматривать.",[785,1132,1133],{},"Для каждой маски формируем список IP-адресов ips. Символ f означает форматированную строку(внутри строки можно писать название переменных в фигурных скобках). Вторым параметром передаём в функцию ip_network 0, чтобы по IP-адресу и маске функция автоматически вычислила IP-адрес сети.",[785,1135,1136],{},"Проверяем исходный ip, чтобы в этой сети он не совпадал с адресом сети (он идёт самый первый ips[0]) и c широковещательным адресом (он идёт последним ips[-1]). Нужно, чтобы он находился между ними. И также проверяем адрес сети через ips.network_address(приведя к строковому типу) чтобы он был равен адресу сети(по условию нам нужна только сеть - 111.81.88.160);",[785,1138,1139],{},"Если всё сходится, печатаем сеть и адрес сети.",[402,1141,1142],{},"Программа распечатает 2 варианта адреса сети. Но выбираем предпоследнюю сеть, т.к. в ней последний байт маски будет с наименьшим числовым значением.",[402,1144,1145],{},[406,1146,1147],{},"Ответ: 224",[462,1149,1151],{"id":1150},"задача-4-максимальное-количество-единиц-в-маске","Задача 4 (Максимальное количество единиц в маске)",[402,1153,1154],{},"В терминологии сетей TCP\u002FIP маской сети называется двоичное число, определяющее, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети. При этом в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого места – нули. Обычно маска записывается по тем же правилам, что и IP-адрес – в виде четырёх байтов, причём каждый байт записывается в виде десятичного числа. Адрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.",[402,1156,1157],{},"Например, если IP-адрес узла равен 231.32.255.131, а маска равна 255.255.240.0, то адрес сети равен 231.32.240.0.",[402,1159,1160],{},"Для узла с IP-адресом 93.138.70.47 адрес сети равен 93.138.64.0. Каково наибольшее возможное общее количество единиц во всех четырёх байтах маски? Ответ запишите в виде десятичного числа.",[476,1162,479],{"id":1163},"решение-3",[484,1165,1167],{"className":486,"code":1166,"language":488,"meta":489,"style":489},"from ipaddress import *\nip = ip_address('93.138.70.47')\nfor mask in range(31):\n    ips = ip_network(f'{ip}\u002F{mask}', 0)\n    if ips[0] \u003C ip \u003C ips[-1] and str(ips.network_address) == '93.138.64.0':\n        print(ips)\n",[491,1168,1169,1179,1192,1208,1242,1279],{"__ignoreMap":489},[494,1170,1171,1173,1175,1177],{"class":496,"line":497},[494,1172,677],{"class":504},[494,1174,680],{"class":500},[494,1176,683],{"class":504},[494,1178,686],{"class":504},[494,1180,1181,1183,1185,1187,1190],{"class":496,"line":512},[494,1182,990],{"class":500},[494,1184,505],{"class":504},[494,1186,995],{"class":500},[494,1188,1189],{"class":524},"'93.138.70.47'",[494,1191,717],{"class":500},[494,1193,1194,1196,1198,1200,1202,1204,1206],{"class":496,"line":531},[494,1195,515],{"class":504},[494,1197,1007],{"class":500},[494,1199,521],{"class":504},[494,1201,1012],{"class":508},[494,1203,1015],{"class":500},[494,1205,1018],{"class":508},[494,1207,926],{"class":500},[494,1209,1210,1212,1214,1216,1218,1220,1222,1224,1226,1228,1230,1232,1234,1236,1238,1240],{"class":496,"line":546},[494,1211,1025],{"class":500},[494,1213,505],{"class":504},[494,1215,705],{"class":500},[494,1217,1032],{"class":504},[494,1219,1035],{"class":524},[494,1221,1038],{"class":508},[494,1223,1041],{"class":500},[494,1225,1044],{"class":508},[494,1227,1047],{"class":524},[494,1229,1038],{"class":508},[494,1231,1052],{"class":500},[494,1233,1044],{"class":508},[494,1235,1035],{"class":524},[494,1237,711],{"class":500},[494,1239,714],{"class":508},[494,1241,717],{"class":500},[494,1243,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1277],{"class":496,"line":561},[494,1245,734],{"class":504},[494,1247,1069],{"class":500},[494,1249,714],{"class":508},[494,1251,1074],{"class":500},[494,1253,1077],{"class":504},[494,1255,724],{"class":500},[494,1257,1077],{"class":504},[494,1259,1069],{"class":500},[494,1261,1086],{"class":504},[494,1263,1089],{"class":508},[494,1265,1074],{"class":500},[494,1267,1094],{"class":504},[494,1269,1097],{"class":508},[494,1271,1100],{"class":500},[494,1273,1103],{"class":504},[494,1275,1276],{"class":524}," '93.138.64.0'",[494,1278,528],{"class":500},[494,1280,1281,1283],{"class":496,"line":576},[494,1282,1113],{"class":508},[494,1284,1285],{"class":500},"(ips)\n",[402,1287,1288],{},"Аналогично прошлой задачи. В ответе в консоли остаётся только найти наш адрес сети, где максимальное количество единиц в маске. Это будет: 93.138.64.0\u002F21",[402,1290,1291],{},[406,1292,1293],{},"Ответ: 21",[462,1295,1297],{"id":1296},"задача-5-количество-адресов-компьютеров","Задача 5 (Количество адресов компьютеров)",[402,1299,1300],{},"В терминологии сетей TCP\u002FIP маской подсети называется 32-разрядное двоичное число, определяющее, какие именно разряды IP-адреса компьютера являются общими для всей подсети – в этих разрядах маски стоит 1. Обычно маски записываются в виде четверки десятичных чисел – по тем же правилам, что и IP-адреса.\nДля некоторой подсети используется маска 255.255.248.0.",[402,1302,1303],{},"Сколько различных адресов компьютеров допускает эта маска?",[402,1305,1306],{},"Примечание. На практике для адресации компьютеров не используются два адреса: адрес сети и широковещательный адрес.",[476,1308,479],{"id":1309},"решение-4",[484,1311,1313],{"className":486,"code":1312,"language":488,"meta":489,"style":489},"from ipaddress import *\nips = ip_network('0.0.0.0\u002F255.255.248.0')\nprint(ips.num_addresses - 2)\n",[491,1314,1315,1325,1338],{"__ignoreMap":489},[494,1316,1317,1319,1321,1323],{"class":496,"line":497},[494,1318,677],{"class":504},[494,1320,680],{"class":500},[494,1322,683],{"class":504},[494,1324,686],{"class":504},[494,1326,1327,1329,1331,1333,1336],{"class":496,"line":512},[494,1328,700],{"class":500},[494,1330,505],{"class":504},[494,1332,705],{"class":500},[494,1334,1335],{"class":524},"'0.0.0.0\u002F255.255.248.0'",[494,1337,717],{"class":500},[494,1339,1340,1342,1345,1347,1349],{"class":496,"line":531},[494,1341,653],{"class":508},[494,1343,1344],{"class":500},"(ips.num_addresses ",[494,1346,1086],{"class":504},[494,1348,627],{"class":508},[494,1350,717],{"class":500},[402,1352,1353],{},"Здесь вообще всё элементарно просто — мы взяли произвольный адрес сети \"0.0.0.0\" и применили нашу маску. Свойство num_addresses покажет количество возможных адресов в этой сети. Необходимо так же вычистить два неиспользуемых адреса.",[402,1355,1356],{},[406,1357,1358],{},"Ответ: 2046",[462,1360,1362],{"id":1361},"задача-6-количество-масок","Задача 6 (Количество масок)",[402,1364,1365],{},"В терминологии сетей TCP\u002FIP маска сети – это двоичное число, меньшее 232; в маске сначала (в старших разрядах) стоят единицы, а затем с некоторого места нули.\nМаска определяет, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу самого узла в этой сети.\nОбычно маска записывается по тем же правилам, что и IP-адрес – в виде четырёх байт, причём каждый байт записывается в виде десятичного числа.\nАдрес сети получается в результате применения поразрядной конъюнкции к заданному IP-адресу узла и маске.",[402,1367,1368],{},"Для узла c IP-адресом 175.122.80.13 адрес подсети равен 175.122.80.0.\nСколько существует различных возможных значений маски, если известно, что в этой сети не менее 60 узлов?",[402,1370,1371],{},"Ответ запишите в виде десятичного числа.",[476,1373,479],{"id":1374},"решение-5",[484,1376,1378],{"className":486,"code":1377,"language":488,"meta":489,"style":489},"from ipaddress import *\nip = ip_address('175.122.80.13')\nc = 0\nfor mask in range(31):\n    ips = ip_network(f'{ip}\u002F{mask}', 0)\n    if ips[0] \u003C ip \u003C ips[-1] and str(ips.network_address) == '175.122.80.0' and ips.num_addresses - 2 >= 60:\n        c += 1\nprint(c)\n",[491,1379,1380,1390,1403,1411,1427,1461,1514,1522],{"__ignoreMap":489},[494,1381,1382,1384,1386,1388],{"class":496,"line":497},[494,1383,677],{"class":504},[494,1385,680],{"class":500},[494,1387,683],{"class":504},[494,1389,686],{"class":504},[494,1391,1392,1394,1396,1398,1401],{"class":496,"line":512},[494,1393,990],{"class":500},[494,1395,505],{"class":504},[494,1397,995],{"class":500},[494,1399,1400],{"class":524},"'175.122.80.13'",[494,1402,717],{"class":500},[494,1404,1405,1407,1409],{"class":496,"line":531},[494,1406,691],{"class":500},[494,1408,505],{"class":504},[494,1410,509],{"class":508},[494,1412,1413,1415,1417,1419,1421,1423,1425],{"class":496,"line":546},[494,1414,515],{"class":504},[494,1416,1007],{"class":500},[494,1418,521],{"class":504},[494,1420,1012],{"class":508},[494,1422,1015],{"class":500},[494,1424,1018],{"class":508},[494,1426,926],{"class":500},[494,1428,1429,1431,1433,1435,1437,1439,1441,1443,1445,1447,1449,1451,1453,1455,1457,1459],{"class":496,"line":561},[494,1430,1025],{"class":500},[494,1432,505],{"class":504},[494,1434,705],{"class":500},[494,1436,1032],{"class":504},[494,1438,1035],{"class":524},[494,1440,1038],{"class":508},[494,1442,1041],{"class":500},[494,1444,1044],{"class":508},[494,1446,1047],{"class":524},[494,1448,1038],{"class":508},[494,1450,1052],{"class":500},[494,1452,1044],{"class":508},[494,1454,1035],{"class":524},[494,1456,711],{"class":500},[494,1458,714],{"class":508},[494,1460,717],{"class":500},[494,1462,1463,1465,1467,1469,1471,1473,1475,1477,1479,1481,1483,1485,1487,1489,1491,1493,1496,1499,1502,1504,1506,1509,1512],{"class":496,"line":576},[494,1464,734],{"class":504},[494,1466,1069],{"class":500},[494,1468,714],{"class":508},[494,1470,1074],{"class":500},[494,1472,1077],{"class":504},[494,1474,724],{"class":500},[494,1476,1077],{"class":504},[494,1478,1069],{"class":500},[494,1480,1086],{"class":504},[494,1482,1089],{"class":508},[494,1484,1074],{"class":500},[494,1486,1094],{"class":504},[494,1488,1097],{"class":508},[494,1490,1100],{"class":500},[494,1492,1103],{"class":504},[494,1494,1495],{"class":524}," '175.122.80.0'",[494,1497,1498],{"class":504}," and",[494,1500,1501],{"class":500}," ips.num_addresses ",[494,1503,1086],{"class":504},[494,1505,627],{"class":508},[494,1507,1508],{"class":504}," >=",[494,1510,1511],{"class":508}," 60",[494,1513,528],{"class":500},[494,1515,1516,1518,1520],{"class":496,"line":600},[494,1517,766],{"class":500},[494,1519,644],{"class":504},[494,1521,647],{"class":508},[494,1523,1524,1526],{"class":496,"line":638},[494,1525,653],{"class":508},[494,1527,777],{"class":500},[402,1529,1530],{},"В условии также воспользуемся свойством num_addresses – как и в прошлой задаче и свойством network_address – как в позапрошлой задаче. Ищем те ip-адреса, где есть наш адрес сети и где количество возможных значений IP-адресов узлов не менее 60. И помним когда у нас спрашивают — Сколько? То скорее всего лучше будет завести переменную для счётчика.",[402,1532,1533],{},[406,1534,1535],{},"Ответ: 7",[462,1537,1539],{"id":1538},"задача-7-порядковый-номер-компьютера","Задача 7 (Порядковый номер компьютера)",[402,1541,1542],{},"Маской подсети называется 32-разрядное двоичное число, которое определяет, какая часть IP-адреса компьютера относится к адресу сети, а какая часть IP-адреса определяет адрес компьютера в подсети. В маске подсети старшие биты, отведенные в IP-адресе компьютера для адреса сети, имеют значение 1; младшие биты, отведенные в IP-адресе компьютера для адреса компьютера в подсети, имеют значение 0.",[402,1544,1545],{},"Если маска подсети 255.255.255.224 и IP-адрес компьютера в сети 162.198.0.157, то порядковый номер компьютера в сети равен_____",[476,1547,479],{"id":1548},"решение-6",[658,1550,1551],{},[402,1552,1553],{},"Данную задачу лучше решать вручную без использования ipaddress.",[402,1555,1556],{},"В этой задаче ключевой фразой является: \"порядковый номер компьютера\".",[402,1558,1559],{},"Первые 3 слева байты маски равны 255 (11111111), значит, они не участвуют в решении этой задачи. Обращаем внимание только на байт IP-адреса, под которым байт маски имеет не все единицы в своих разрядах.",[782,1561,1562,1565],{},[785,1563,1564],{},"Переведём числа 224 и 157 в двоичную систему. Число 224 в двоичной системе равно 11100000. Число 157 в двоичной системе равно 10011101.",[785,1566,1567],{},"Запишем друг под другом данные числа в двоичной системе:",[1569,1570,1571,1577],"ul",{},[785,1572,1573,1574],{},"байт IP-адреса: 100",[406,1575,1576],{},"11101",[785,1578,1579,1580],{},"байт маски: 111",[406,1581,1582],{},"00000",[782,1584,1585],{"start":531},[785,1586,1587,1588,1590],{},"Выписываем ту часть IP-адреса, которая находится над нулями. Переводим это двоичное число ",[418,1589,1576],{}," в десятичную систему, чтобы получить ответ.",[402,1592,1593],{},[406,1594,1595],{},"Ответ: 29",[402,1597,1598],{},[418,1599,1600],{},"Предположим IP адрес будет 162.198.157.10, а маска подсети 255.255.224.0, тогда запишем байты IP-адреса, а под ними байты маски:",[402,1602,1603,1604],{},"100",[406,1605,1606],{},"11101 00001010",[402,1608,1609,1610],{},"111",[406,1611,1612],{},"00000 00000000",[402,1614,1615],{},[418,1616,1617],{},"Здесь берём всю ту часть IP-адреса, которая находится над нулями! Не ограничиваемся 8-ю разрядами!",[402,1619,1620],{},"1110100001010 = 7434",[462,1622,1624],{"id":1623},"задача-8-параметр-a-в-маске","Задача 8 (Параметр A в маске)",[402,1626,468],{},[402,1628,1629],{},"Сеть задана IP-адресом 255.211.33.160 и маской сети 255.255.A.0, где A - некоторое допустимое для записи маски число.\nОпределите минимальное значение A, для которого для всех IP-адресов этой сети в двоичной записи IP-адреса суммарное количество единиц в левых двух байтах не менее суммарного количества единиц в правых двух байтах.",[476,1631,479],{"id":1632},"решение-7",[484,1634,1636],{"className":486,"code":1635,"language":488,"meta":489,"style":489},"from ipaddress import *  \nfor i in range(9):\n    A_bin = i * '1' + ('0' * (8 - i))\n    A = int(A_bin, 2)\n    ips = ip_network(f'255.211.33.160\u002F255.255.{A}.0', 0)  \n    flag = True\n    for ip in ips:\n        s = format(ip, 'b')\n        if s[16:].count('1') > s[:16].count('1'):\n            flag = False\n            break\n    if flag:\n        print(A)\n        break\n",[491,1637,1638,1652,1670,1704,1722,1752,1762,1772,1787,1815,1826,1832,1840,1848],{"__ignoreMap":489},[494,1639,1640,1642,1644,1646,1649],{"class":496,"line":497},[494,1641,677],{"class":504},[494,1643,680],{"class":500},[494,1645,683],{"class":504},[494,1647,1648],{"class":504}," *",[494,1650,1651],{"class":500},"  \n",[494,1653,1654,1656,1659,1661,1663,1665,1668],{"class":496,"line":512},[494,1655,515],{"class":504},[494,1657,1658],{"class":500}," i ",[494,1660,521],{"class":504},[494,1662,1012],{"class":508},[494,1664,1015],{"class":500},[494,1666,1667],{"class":508},"9",[494,1669,926],{"class":500},[494,1671,1672,1675,1677,1679,1682,1685,1687,1689,1692,1694,1696,1698,1701],{"class":496,"line":531},[494,1673,1674],{"class":500},"    A_bin ",[494,1676,505],{"class":504},[494,1678,1658],{"class":500},[494,1680,1681],{"class":504},"*",[494,1683,1684],{"class":524}," '1'",[494,1686,612],{"class":504},[494,1688,606],{"class":500},[494,1690,1691],{"class":524},"'0'",[494,1693,1648],{"class":504},[494,1695,606],{"class":500},[494,1697,609],{"class":508},[494,1699,1700],{"class":504}," -",[494,1702,1703],{"class":500}," i))\n",[494,1705,1706,1709,1711,1714,1717,1720],{"class":496,"line":546},[494,1707,1708],{"class":500},"    A ",[494,1710,505],{"class":504},[494,1712,1713],{"class":508}," int",[494,1715,1716],{"class":500},"(A_bin, ",[494,1718,1719],{"class":508},"2",[494,1721,717],{"class":500},[494,1723,1724,1726,1728,1730,1732,1735,1737,1740,1742,1745,1747,1749],{"class":496,"line":561},[494,1725,1025],{"class":500},[494,1727,505],{"class":504},[494,1729,705],{"class":500},[494,1731,1032],{"class":504},[494,1733,1734],{"class":524},"'255.211.33.160\u002F255.255.",[494,1736,1038],{"class":508},[494,1738,1739],{"class":500},"A",[494,1741,1044],{"class":508},[494,1743,1744],{"class":524},".0'",[494,1746,711],{"class":500},[494,1748,714],{"class":508},[494,1750,1751],{"class":500},")  \n",[494,1753,1754,1757,1759],{"class":496,"line":576},[494,1755,1756],{"class":500},"    flag ",[494,1758,505],{"class":504},[494,1760,1761],{"class":508}," True\n",[494,1763,1764,1766,1768,1770],{"class":496,"line":600},[494,1765,534],{"class":504},[494,1767,724],{"class":500},[494,1769,521],{"class":504},[494,1771,729],{"class":500},[494,1773,1774,1777,1779,1781,1783,1785],{"class":496,"line":638},[494,1775,1776],{"class":500},"        s ",[494,1778,505],{"class":504},[494,1780,737],{"class":508},[494,1782,740],{"class":500},[494,1784,743],{"class":524},[494,1786,717],{"class":500},[494,1788,1789,1792,1794,1796,1798,1800,1802,1805,1807,1809,1811,1813],{"class":496,"line":650},[494,1790,1791],{"class":504},"        if",[494,1793,900],{"class":500},[494,1795,903],{"class":508},[494,1797,906],{"class":500},[494,1799,618],{"class":524},[494,1801,751],{"class":500},[494,1803,1804],{"class":504},">",[494,1806,916],{"class":500},[494,1808,903],{"class":508},[494,1810,921],{"class":500},[494,1812,618],{"class":524},[494,1814,926],{"class":500},[494,1816,1818,1821,1823],{"class":496,"line":1817},10,[494,1819,1820],{"class":500},"            flag ",[494,1822,505],{"class":504},[494,1824,1825],{"class":508}," False\n",[494,1827,1829],{"class":496,"line":1828},11,[494,1830,1831],{"class":504},"            break\n",[494,1833,1835,1837],{"class":496,"line":1834},12,[494,1836,734],{"class":504},[494,1838,1839],{"class":500}," flag:\n",[494,1841,1843,1845],{"class":496,"line":1842},13,[494,1844,1113],{"class":508},[494,1846,1847],{"class":500},"(A)\n",[494,1849,1851],{"class":496,"line":1850},14,[494,1852,1853],{"class":504},"        break\n",[402,1855,1856],{},"Разберём построчно:",[782,1858,1859,1862,1865,1868,1871,1874,1877,1880,1883,1886,1889,1892,1895,1898],{},[785,1860,1861],{},"Импортируем всё из ipaddress;",[785,1863,1864],{},"Запустим цикл, для того чтобы перебрать все возможные значения для байта маски;",[785,1866,1867],{},"Формируем двоичное представление байта у маски;",[785,1869,1870],{},"Переводим в десятичное значение байта маски;",[785,1872,1873],{},"Формируем объект сеть IP4;",[785,1875,1876],{},"Заводим переменную для проверки всех IP-адресов сети по условию задачи;",[785,1878,1879],{},"Перебираем все IP-адреса;",[785,1881,1882],{},"Формируем двоичное представление IP-адреса;",[785,1884,1885],{},"Обратное условие к условию задачи для проверки каждого IP-адреса в сети;",[785,1887,1888],{},"Меняем значение переменной flag: получается условие задачи не прошли;",[785,1890,1891],{},"Выходим(break) потому что проверять остальные IP-адреса смысла нет по условию задачи;",[785,1893,1894],{},"Если условие прошли;",[785,1896,1897],{},"Выводим в консоль значение байта у маски;",[785,1899,1900],{},"И т.к. ищем минимум можно сразу выходить из цикла (перебор запустили с минимального значения байта у маски);",[402,1902,1903],{},[406,1904,1905],{},"Ответ: 240",[462,1907,1909],{"id":1908},"задача-9-параметр-a-в-ip-адресе","Задача 9 (Параметр A в IP-адресе)",[402,1911,468],{},[402,1913,1914],{},"Сеть задана IP-адресом 32.0.A.5, где A - некоторое допустимое для записи IP-адреса число, и маской сети 255.255.240.0. Определите минимальное значение A, для которого для всех IP-адресов этой сети в двоичной записи IP-адреса суммарное количество единиц в левых двух байтах не более суммарного количества единиц в правых двух байтах.",[476,1916,479],{"id":1917},"решение-8",[484,1919,1921],{"className":486,"code":1920,"language":488,"meta":489,"style":489},"from ipaddress import *\nfor A in range(256):\n    ips = ip_network(f'32.0.{A}.5\u002F255.255.240.0', 0)\n    flag = True\n    for ip in ips:\n        s = format(ip, 'b')\n        if s[:16].count('1') > s[16:].count('1'):\n            flag = False\n            break\n    if flag:\n        print(A)\n        break\n",[491,1922,1923,1933,1951,1979,1987,1997,2011,2037,2045,2049,2055,2061],{"__ignoreMap":489},[494,1924,1925,1927,1929,1931],{"class":496,"line":497},[494,1926,677],{"class":504},[494,1928,680],{"class":500},[494,1930,683],{"class":504},[494,1932,686],{"class":504},[494,1934,1935,1937,1940,1942,1944,1946,1949],{"class":496,"line":512},[494,1936,515],{"class":504},[494,1938,1939],{"class":500}," A ",[494,1941,521],{"class":504},[494,1943,1012],{"class":508},[494,1945,1015],{"class":500},[494,1947,1948],{"class":508},"256",[494,1950,926],{"class":500},[494,1952,1953,1955,1957,1959,1961,1964,1966,1968,1970,1973,1975,1977],{"class":496,"line":531},[494,1954,1025],{"class":500},[494,1956,505],{"class":504},[494,1958,705],{"class":500},[494,1960,1032],{"class":504},[494,1962,1963],{"class":524},"'32.0.",[494,1965,1038],{"class":508},[494,1967,1739],{"class":500},[494,1969,1044],{"class":508},[494,1971,1972],{"class":524},".5\u002F255.255.240.0'",[494,1974,711],{"class":500},[494,1976,714],{"class":508},[494,1978,717],{"class":500},[494,1980,1981,1983,1985],{"class":496,"line":546},[494,1982,1756],{"class":500},[494,1984,505],{"class":504},[494,1986,1761],{"class":508},[494,1988,1989,1991,1993,1995],{"class":496,"line":561},[494,1990,534],{"class":504},[494,1992,724],{"class":500},[494,1994,521],{"class":504},[494,1996,729],{"class":500},[494,1998,1999,2001,2003,2005,2007,2009],{"class":496,"line":576},[494,2000,1776],{"class":500},[494,2002,505],{"class":504},[494,2004,737],{"class":508},[494,2006,740],{"class":500},[494,2008,743],{"class":524},[494,2010,717],{"class":500},[494,2012,2013,2015,2017,2019,2021,2023,2025,2027,2029,2031,2033,2035],{"class":496,"line":600},[494,2014,1791],{"class":504},[494,2016,916],{"class":500},[494,2018,903],{"class":508},[494,2020,921],{"class":500},[494,2022,618],{"class":524},[494,2024,751],{"class":500},[494,2026,1804],{"class":504},[494,2028,900],{"class":500},[494,2030,903],{"class":508},[494,2032,906],{"class":500},[494,2034,618],{"class":524},[494,2036,926],{"class":500},[494,2038,2039,2041,2043],{"class":496,"line":638},[494,2040,1820],{"class":500},[494,2042,505],{"class":504},[494,2044,1825],{"class":508},[494,2046,2047],{"class":496,"line":650},[494,2048,1831],{"class":504},[494,2050,2051,2053],{"class":496,"line":1817},[494,2052,734],{"class":504},[494,2054,1839],{"class":500},[494,2056,2057,2059],{"class":496,"line":1828},[494,2058,1113],{"class":508},[494,2060,1847],{"class":500},[494,2062,2063],{"class":496,"line":1834},[494,2064,1853],{"class":504},[402,2066,2067],{},"Здесь уже нужно перебирать байт IP-адреса, а не маски, значит, можно перебрать числа от 0 до 255. Далее всё как в прошлой задаче.",[402,2069,2070],{},[406,2071,2072],{},"Ответ: 16",[462,2074,2076],{"id":2075},"задача-10-демоверсия-егэ-2024","Задача 10 (Демоверсия ЕГЭ 2024)",[402,2078,2079],{},"В терминологии сетей TCP\u002FIP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети,\nа какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и маске сети.\nСеть задана IP-адресом 192.168.32.160 и маской сети 255.255.255.240.",[402,2081,2082],{},"Сколько в этой сети IP-адресов, для которых сумма единиц в двоичной записи IP-адреса чётна? В ответе укажите только число.",[476,2084,479],{"id":2085},"решение-9",[402,2087,2088],{},"В подобных задачах в первых двух абзацах даётся краткая теория, которая почти не меняется от задачи к задаче. Вопрос, который нас интересует, находится в последних двух абзацах.",[402,2090,2091],{},"В задаче говорится, что адрес сети получается при применении поразрядной конъюнкции к заданному IP-адресу узла и маске сети.",[402,2093,2094],{},"Адрес сети: 192.168.32.160",[402,2096,2097],{},"Маска: 255.255.255.240",[402,2099,2100],{},"Первые три байта маски равны 255. В двоичной записи это 8 единиц. Значит, первые три числа IP-адреса узла так же равны 192.168.32. как и в адресе сети. Рассмотрим последний байт:",[402,2102,2103],{},"в максе: 240 - 1111 0000",[402,2105,2106],{},"в сети: 160 - 1010 0000",[402,2108,2109],{},"IP-адрес тогда: 1010 XXXX",[402,2111,2112],{},"Получается, что возможность для изменений у нас есть только на последних 4 битах IP-адреса узла.\nПосчитаем, сколько у нас уже единиц точно известно в IP-адресе в двоичном виде: 192 = 11000000 (две единицы)\n168 = 10101000 (три единицы)\n32 = 00100000 (одна единица)\nПлюс две единицы в последнем байте. Тогда получается:\n2 + 3 + 1 + 2 = 8\nВосемь единиц уже точно есть в любом IP-адресе узла.\nОсталось посчитать количество вариантов, когда в 4 битах будет чётное количество единиц. Это варианты: 0000, 0011, 0101, 0110, 1001, 1010, 1100, 1111(записал для наглядности). По формуле: N = 2^i. N - кол-во вариантов IP-адресов, i - количество бит оставшихся под IP-адрес после маски. 16 = 2^4, всего 16 вариантов(чётных и нечётных) 16\u002F2 = 8 - количество чётных(или здесь же нечётных соответственно).",[664,2114,2116],{"id":2115},"решение-на-python","Решение на Python",[402,2118,2119],{},"Можно аналогично решать на Python, как во 2 или 8 задании с помощью циклов:",[484,2121,2123],{"className":486,"code":2122,"language":488,"meta":489,"style":489},"c = 0\nfor x1 in '01':\n    for x2 in '01':\n        for x3 in '01':\n            for x4 in '01':\n                s = x1 + x2 + x3 + x4\n                if s.count('1') % 2 == 0:\n                    c += 1\nprint(c)\n",[491,2124,2125,2133,2145,2157,2169,2181,2201,2221,2230],{"__ignoreMap":489},[494,2126,2127,2129,2131],{"class":496,"line":497},[494,2128,691],{"class":500},[494,2130,505],{"class":504},[494,2132,509],{"class":508},[494,2134,2135,2137,2139,2141,2143],{"class":496,"line":512},[494,2136,515],{"class":504},[494,2138,518],{"class":500},[494,2140,521],{"class":504},[494,2142,525],{"class":524},[494,2144,528],{"class":500},[494,2146,2147,2149,2151,2153,2155],{"class":496,"line":531},[494,2148,534],{"class":504},[494,2150,537],{"class":500},[494,2152,521],{"class":504},[494,2154,525],{"class":524},[494,2156,528],{"class":500},[494,2158,2159,2161,2163,2165,2167],{"class":496,"line":546},[494,2160,549],{"class":504},[494,2162,552],{"class":500},[494,2164,521],{"class":504},[494,2166,525],{"class":524},[494,2168,528],{"class":500},[494,2170,2171,2173,2175,2177,2179],{"class":496,"line":561},[494,2172,564],{"class":504},[494,2174,567],{"class":500},[494,2176,521],{"class":504},[494,2178,525],{"class":524},[494,2180,528],{"class":500},[494,2182,2183,2185,2187,2189,2191,2193,2195,2197,2199],{"class":496,"line":576},[494,2184,579],{"class":500},[494,2186,505],{"class":504},[494,2188,518],{"class":500},[494,2190,586],{"class":504},[494,2192,537],{"class":500},[494,2194,586],{"class":504},[494,2196,552],{"class":500},[494,2198,586],{"class":504},[494,2200,597],{"class":500},[494,2202,2203,2205,2207,2209,2211,2213,2215,2217,2219],{"class":496,"line":600},[494,2204,603],{"class":504},[494,2206,615],{"class":500},[494,2208,618],{"class":524},[494,2210,751],{"class":500},[494,2212,624],{"class":504},[494,2214,627],{"class":508},[494,2216,630],{"class":504},[494,2218,633],{"class":508},[494,2220,528],{"class":500},[494,2222,2223,2226,2228],{"class":496,"line":638},[494,2224,2225],{"class":500},"                    c ",[494,2227,644],{"class":504},[494,2229,647],{"class":508},[494,2231,2232,2234],{"class":496,"line":650},[494,2233,653],{"class":508},[494,2235,777],{"class":500},[402,2237,2238],{},"Или с помощью модуля ipaddress:",[484,2240,2242],{"className":486,"code":2241,"language":488,"meta":489,"style":489},"from ipaddress import *\nс = 0\nfor ip in ip_network('192.168.32.160\u002F255.255.255.240'):\n    if format(ip, 'b').count('1') % 2 == 0:\n        с += 1\nprint(с)\n",[491,2243,2244,2254,2263,2277,2303,2312],{"__ignoreMap":489},[494,2245,2246,2248,2250,2252],{"class":496,"line":497},[494,2247,677],{"class":504},[494,2249,680],{"class":500},[494,2251,683],{"class":504},[494,2253,686],{"class":504},[494,2255,2256,2259,2261],{"class":496,"line":512},[494,2257,2258],{"class":500},"с ",[494,2260,505],{"class":504},[494,2262,509],{"class":508},[494,2264,2265,2267,2269,2271,2273,2275],{"class":496,"line":531},[494,2266,515],{"class":504},[494,2268,724],{"class":500},[494,2270,521],{"class":504},[494,2272,705],{"class":500},[494,2274,708],{"class":524},[494,2276,926],{"class":500},[494,2278,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301],{"class":496,"line":546},[494,2280,734],{"class":504},[494,2282,737],{"class":508},[494,2284,740],{"class":500},[494,2286,743],{"class":524},[494,2288,746],{"class":500},[494,2290,618],{"class":524},[494,2292,751],{"class":500},[494,2294,624],{"class":504},[494,2296,627],{"class":508},[494,2298,630],{"class":504},[494,2300,633],{"class":508},[494,2302,528],{"class":500},[494,2304,2305,2308,2310],{"class":496,"line":561},[494,2306,2307],{"class":500},"        с ",[494,2309,644],{"class":504},[494,2311,647],{"class":508},[494,2313,2314,2316],{"class":496,"line":576},[494,2315,653],{"class":508},[494,2317,2318],{"class":500},"(с)\n",[402,2320,2321,2322,2325,2326,2328],{},"Здесь мы как бы \"поделили\" в цикле адрес сети на маску и получили ip-адреса, которые соответствуют данной сети.\nДалее получая в цикле по очереди IP-адреса → Функция format() переводит ip адрес в байтовую строку, где просто идут все биты ip-адреса в виде строки и тут же мы проверяем с помощью функции count количество единиц в байтовой строке IP-адреса, если кратно 2 (%2 - остаток от деления на 2), то увеличиваем счётчик ",[406,2323,2324],{},"с",".\nПо того как цикл отработал выводим переменную счётчика ",[406,2327,795],{}," как ответ.",[402,2330,2331],{},[406,2332,816],{},[462,2334,2336],{"id":2335},"задача-11-демоверсия-егэ-2025","Задача 11 (Демоверсия ЕГЭ 2025)",[402,2338,2339],{},"Сеть задана IP-адресом 172.16.168.0 и маской сети 255.255.248.0.",[402,2341,2342,2343,2346],{},"Сколько в этой сети IP-адресов, для которых количество единиц в двоичной записи IP-адреса ",[406,2344,2345],{},"не кратно 5","?\nВ ответе укажите только число.",[476,2348,479],{"id":2349},"решение-10",[402,2351,2091],{},[402,2353,2354],{},"Адрес сети: 172.16.168.0",[402,2356,2357],{},"Маска: 255.255.248.0",[402,2359,2360],{},"Первые два байта маски равны 255. В двоичной записи это 8 единиц. Значит, первые два числа IP-адреса узла так же равны 172.16 как и в адресе сети. Рассмотрим последний и предпоследний байты:",[402,2362,2363],{},"в максе: 248 - 1111 1000",[402,2365,2366],{},"в сети: 168 - 1010 1000",[402,2368,2369],{},"IP-адрес тогда получается путём поразрядной конъюнкции: 1010 1XXX",[402,2371,2372],{},"Получается, что возможность для изменений у нас есть только на последних 3 битах IP-адреса узла. Посчитаем, сколько у нас уже единиц точно известно в IP-адресе в двоичном виде:",[402,2374,2375],{},"172 = 1010 1100 (четыре единицы)",[402,2377,2378],{},"16 = 0001 0000 (одна единица)",[402,2380,2381],{},"Плюс три единицы в предпоследнем байте. Тогда получается: 4 + 1 + 2 = 8 Восемь единиц уже точно есть в любом IP-адресе узла.",[402,2383,2384],{},"Осталось посчитать количество вариантов, когда в оставшихся 3+8=11 битах будет не кратное к 5 количество единиц. По формуле: N = 2^i. N - кол-во вариантов IP-адресов, i - количество бит оставшихся под IP-адрес после маски. N = 2^11, всего 2048.",[402,2386,2387,2388,2395,2396,2399],{},"Чтобы получить ответ нужно от общего количества ip-адресов отнять количество ip адресов кратных 5. В таком случае когда уже имеется 8 единиц, чтобы ip-адрес по количеству единиц в двоичной записи был кратный 5, необходимо добавить 2 или 7 единиц из оставшихся 11 свободных битов под ip-адреса. Применим формулу сочетания из комбинаторики(есть статья на ",[2389,2390,2394],"a",{"href":2391,"rel":2392},"https:\u002F\u002Fpracticum.yandex.ru\u002Fblog\u002Fperestanovki-razmescheniya-sochetaniya-v-analize-dannyh\u002F",[2393],"nofollow","Яндекс Практикуме"," по основным формулам комбинаторики и у меня в блоге ",[2389,2397,2398],{"href":336},"Ссылка на статью: Формулы комбинаторики"," — советую почитать) при добавлении 2 единиц к 11 битам: С = 11 * 10 \u002F 2! = 55 - количество комбинаций двух единиц в 11 битах(остальные 9 битов всегда нули). При добавлении 7 единиц к 11 битам: С = 11 * 10 * 9 * 8 * 7 * 6 * 5 \u002F 7! = 330. В сумме количество ip-адресов кратных 5 = 330 + 55 = 385.",[402,2401,2402],{},"Последнее действие это от общего количества всех ip-адресов отнять количество адресов кратных 5, чтобы получить ответ: 2048 - 385 = 1663.",[664,2404,2116],{"id":2405},"решение-на-python-1",[484,2407,2409],{"className":486,"code":2408,"language":488,"meta":489,"style":489},"from ipaddress import *\nc = 0\nfor ip in ip_network('172.16.168.0\u002F255.255.248.0'):\n    if format(ip, 'b').count('1') % 5 != 0:\n        c += 1\nprint(c)\n",[491,2410,2411,2421,2429,2444,2472,2480],{"__ignoreMap":489},[494,2412,2413,2415,2417,2419],{"class":496,"line":497},[494,2414,677],{"class":504},[494,2416,680],{"class":500},[494,2418,683],{"class":504},[494,2420,686],{"class":504},[494,2422,2423,2425,2427],{"class":496,"line":512},[494,2424,691],{"class":500},[494,2426,505],{"class":504},[494,2428,509],{"class":508},[494,2430,2431,2433,2435,2437,2439,2442],{"class":496,"line":531},[494,2432,515],{"class":504},[494,2434,724],{"class":500},[494,2436,521],{"class":504},[494,2438,705],{"class":500},[494,2440,2441],{"class":524},"'172.16.168.0\u002F255.255.248.0'",[494,2443,926],{"class":500},[494,2445,2446,2448,2450,2452,2454,2456,2458,2460,2462,2465,2468,2470],{"class":496,"line":546},[494,2447,734],{"class":504},[494,2449,737],{"class":508},[494,2451,740],{"class":500},[494,2453,743],{"class":524},[494,2455,746],{"class":500},[494,2457,618],{"class":524},[494,2459,751],{"class":500},[494,2461,624],{"class":504},[494,2463,2464],{"class":508}," 5",[494,2466,2467],{"class":504}," !=",[494,2469,633],{"class":508},[494,2471,528],{"class":500},[494,2473,2474,2476,2478],{"class":496,"line":561},[494,2475,766],{"class":500},[494,2477,644],{"class":504},[494,2479,647],{"class":508},[494,2481,2482,2484],{"class":496,"line":576},[494,2483,653],{"class":508},[494,2485,777],{"class":500},[402,2487,2488],{},"Здесь мы в цикле как бы сделали поразрядную конъюнкцию адреса сети на маску и получили ip-адреса.\nДалее получая в цикле по очереди IP-адреса → Функция format() переводит ip адрес в байтовую строку, где просто идут все биты ip-адреса в виде строки и тут же мы проверяем с помощью функции count (для строк) количество единиц в байтовой строке IP-адреса, если не кратно 5 (% 5 - остаток от деления на 5), то увеличиваем переменную для счётчика на 1, инициализированную изначально выше как 0.\nИ наконец ответ получаем в консоль.",[402,2490,2491],{},[406,2492,2493],{},"Ответ: 1663",[462,2495,2497],{"id":2496},"задача-12-демоверсия-егэ-2026","Задача 12 (Демоверсия ЕГЭ 2026)",[402,2499,2500],{},"Сеть задана IP-адресом одного из входящих в неё узлов 191.128.66.83 и сетевой маской 255.192.0.0.\nНайдите в данной сети наибольший IP-адрес, который может быть назначен компьютеру.\nВ ответе укажите найденный IP-адрес без разделителей.",[402,2502,2503],{},[418,2504,2505],{},"Например, если бы найденный адрес был равен 111.22.3.44, то в ответе следовало бы записать: 11122344.",[476,2507,479],{"id":2508},"решение-11",[402,2510,2091],{},[402,2512,2513],{},"Найдём адрес сети:",[402,2515,2516],{},"IP-адрес узла переводим в двоичный формат: 1011 1111. 1000 0000. 0100 0010. 0101 0011",[402,2518,2519],{},"Маска сети в двоичном формате: 1111 1111. 1100 0000. 0000 0000. 0000 0000",[402,2521,2522],{},"Применяя побитовую конъюнкцию получим IP адрес сети: 1011 1111. 1000 0000. 0000 0000. 0000 0000 = 191.128.0.0",[402,2524,2525],{},"Затем заменив все нули на единицы в IP адресе сети согласно нулей маски получим широковещательный адрес в сети: 1011 1111. 1011 1111. 1111 1111. 1111 1111 = 191.191.255.255",[402,2527,2528,2529],{},"Осталось только отнять единицы в последнем бите, чтобы получить наибольший ip адрес для устройства в данной сети: 1011 1111. 1011 1111. 1111 1111. 1111 1110 = ",[406,2530,2531],{},"191.191.255.254",[664,2533,2116],{"id":2534},"решение-на-python-2",[484,2536,2538],{"className":486,"code":2537,"language":488,"meta":489,"style":489},"from ipaddress import *\nips =  ip_network('191.128.66.83\u002F255.192.0.0', 0)\nprint(ips[-2])  # Наибольший адрес сети\nprint(ips[1])  # Наименьший адрес сети\nprint(ips[0]) # Адрес сети\nprint(ips[-1]) # Широковещательный адрес\n",[491,2539,2540,2550,2568,2586,2599,2613],{"__ignoreMap":489},[494,2541,2542,2544,2546,2548],{"class":496,"line":497},[494,2543,677],{"class":504},[494,2545,680],{"class":500},[494,2547,683],{"class":504},[494,2549,686],{"class":504},[494,2551,2552,2554,2556,2559,2562,2564,2566],{"class":496,"line":512},[494,2553,700],{"class":500},[494,2555,505],{"class":504},[494,2557,2558],{"class":500},"  ip_network(",[494,2560,2561],{"class":524},"'191.128.66.83\u002F255.192.0.0'",[494,2563,711],{"class":500},[494,2565,714],{"class":508},[494,2567,717],{"class":500},[494,2569,2570,2572,2575,2577,2579,2582],{"class":496,"line":531},[494,2571,653],{"class":508},[494,2573,2574],{"class":500},"(ips[",[494,2576,1086],{"class":504},[494,2578,1719],{"class":508},[494,2580,2581],{"class":500},"])  ",[494,2583,2585],{"class":2584},"sAwPA","# Наибольший адрес сети\n",[494,2587,2588,2590,2592,2594,2596],{"class":496,"line":546},[494,2589,653],{"class":508},[494,2591,2574],{"class":500},[494,2593,1089],{"class":508},[494,2595,2581],{"class":500},[494,2597,2598],{"class":2584},"# Наименьший адрес сети\n",[494,2600,2601,2603,2605,2607,2610],{"class":496,"line":561},[494,2602,653],{"class":508},[494,2604,2574],{"class":500},[494,2606,714],{"class":508},[494,2608,2609],{"class":500},"]) ",[494,2611,2612],{"class":2584},"# Адрес сети\n",[494,2614,2615,2617,2619,2621,2623,2625],{"class":496,"line":576},[494,2616,653],{"class":508},[494,2618,2574],{"class":500},[494,2620,1086],{"class":504},[494,2622,1089],{"class":508},[494,2624,2609],{"class":500},[494,2626,2627],{"class":2584},"# Широковещательный адрес\n",[402,2629,2630],{},"Сначала импортируем все функции из стандартного модуля ipaddress.\nДалее во второй строке получили все ip-адреса.\nТак как все адреса находятся в списке и первый адрес из этого списка - это адрес сети, последний - это широковещательный.\nТо второй ip адрес сначала списка(индекс 1) это наименьший адрес в сети, а второй с конца списка(индекс -2) наибольший адрес в сети.\nВ консоль просто нужно вывести через индексатор ответ и переписать его без точек.",[402,2632,2633],{},[418,2634,2635],{},"p.s. Если мы хотим избавиться от ip адреса сети и широковещательного, то нужно добавить .hosts(). Например, ip_network('191.128.66.83\u002F255.192.0.0', 0).hosts()",[402,2637,2638],{},[406,2639,2640],{},"Ответ: 191191255254",[402,2642,2643,2644,2647,2648,2651],{},"Попробуйте сами запустить код в окне ниже с интерпретатором Python и повторите примеры из статьи чтобы самим увидеть и понять как всё это работает. Для этого в ячейке с кодом нажмите клавиши на клавиатуре ",[406,2645,2646],{},"Shift+Enter"," или запустите код через ",[406,2649,2650],{},"кнопку Run"," по значку ▶.",[2653,2654],"jypiter",{},[2656,2657,2658],"style",{},"html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}",{"title":489,"searchDepth":512,"depth":561,"links":2660},[2661],{"id":399,"depth":512,"text":400,"children":2662},[2663],{"id":435,"depth":531,"text":436,"children":2664},[2665,2670,2673,2676,2679,2682,2685,2688,2691,2694,2699,2704],{"id":464,"depth":546,"text":465,"children":2666},[2667],{"id":478,"depth":561,"text":479,"children":2668},[2669],{"id":666,"depth":576,"text":667},{"id":819,"depth":546,"text":820,"children":2671},[2672],{"id":828,"depth":561,"text":479},{"id":957,"depth":546,"text":958,"children":2674},[2675],{"id":970,"depth":561,"text":479},{"id":1150,"depth":546,"text":1151,"children":2677},[2678],{"id":1163,"depth":561,"text":479},{"id":1296,"depth":546,"text":1297,"children":2680},[2681],{"id":1309,"depth":561,"text":479},{"id":1361,"depth":546,"text":1362,"children":2683},[2684],{"id":1374,"depth":561,"text":479},{"id":1538,"depth":546,"text":1539,"children":2686},[2687],{"id":1548,"depth":561,"text":479},{"id":1623,"depth":546,"text":1624,"children":2689},[2690],{"id":1632,"depth":561,"text":479},{"id":1908,"depth":546,"text":1909,"children":2692},[2693],{"id":1917,"depth":561,"text":479},{"id":2075,"depth":546,"text":2076,"children":2695},[2696],{"id":2085,"depth":561,"text":479,"children":2697},[2698],{"id":2115,"depth":576,"text":2116},{"id":2335,"depth":546,"text":2336,"children":2700},[2701],{"id":2349,"depth":561,"text":479,"children":2702},[2703],{"id":2405,"depth":576,"text":2116},{"id":2496,"depth":546,"text":2497,"children":2705},[2706],{"id":2508,"depth":561,"text":479,"children":2707},[2708],{"id":2534,"depth":576,"text":2116},"2025-09-04","Организация компьютерных сетей","md","images\u002Fblog\u002Fege\u002Ftask13\u002Fimg.png",{},39,true,{"title":31,"description":2710},"9N6yfmmQdDFd_vA13ky5XG1uTgZG0dvdP7L-M83Be9M",[2719,2721],{"title":27,"path":28,"stem":29,"description":2720,"children":-1},"Анализ циклического алгоритма с условиями",{"title":35,"path":36,"stem":37,"description":2722,"children":-1},"Системы счисления. Кодирование чисел",1780737504288]