Главная / 19 декабря 2025 г.

№13. Организация компьютерных сетей. Адресация

228) (В. Зарянкин) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске. Сеть задана IP-адресом 94.253.128.0 и сетевой маской 255.255.128.0. Сколько в этой сети IP-адресов, для которых количество единиц в двоичной записи IP-адреса не кратно 6, а сама двоичная запись оканчивается на 101?

Решение
from itertools import *
n = 0
for i in product("01", repeat=15):
    s = ''.join(i)
    if (13 + s.count("1")) % 6 != 0 and s[12:] == "101":
        n += 1
print(n)

228) (В. Зарянкин) В терминологии сетей TCP/IP маской сети называют двоичное число, которое показывает, какая часть IP-адреса узла сети относится к адресу сети, а какая – к адресу узла в этой сети. Адрес сети получается в результате применения поразрядной конъюнкции к заданному адресу узла и его маске. Сеть задана IP-адресом 94.253.128.0 и сетевой маской 255.255.128.0. Сколько в этой сети IP-адресов, для которых количество единиц в двоичной записи IP-адреса не кратно 6, а сама двоичная запись оканчивается на 101?

Решение
from itertools import *
ip = '100111000010011010011011'
for j in range(len(ip), 0, -1):
    s0 = ip[:j]
    n = 0
    for i in product("01", repeat=32-j):
        s = ''.join(i)
        if s0.count("1") + s.count("1") == 12:
            n += 1
    if n == 45:
        print(s0, n, "длина=", len(s0), " !!! ")
        break
    else:
        print(s0, n)