def automat(n):
n = n << 1 ^ (n.bit_count() > n.bit_length() - n.bit_count())
bit_l = n.bit_length() #длина битов
del_bit_l = 2 + bit_l%2 #длина удаляемого бита
l_r = int((bit_l - del_bit_l)/2) #длина левого и правого бита
l_bit = n >> bit_l - l_r << l_r #левый бит
r_bit = n & 2**l_r - 1 #правый бит
return l_bit | r_bit
cnt = 0
for n in range(1, 1000):
if 50 <= automat(n) <= 100:
cnt += 1
print(cnt)
Я пробовал использовать selenium, он замечательно обходил защиту сайта, но за это приходится платить очень медленной работой
3) Из середины двоичного числа убирается 2 разряда, если количество разрядов получилось четным, и 3 разряда, если нечетное.
cnt = 0
for n in range(1, 1000):
s = bin(n)[2:]
if s.count('1') > s.count('0'):
s += '0'
else:
s+= '1'
m = len(s) // 2 ## округляется по меньшему числу
if len(s) % 2 == 0:
s = s[:m-1] + s[m+1:]
else:
s = s[:m-1] + s[m+2:]
if s:
r = int(s, 2) #здесь сработает исключение из-за пустого строки
else:
r = 0 #не знаю правильно ли это
if 50 <= r <= 100:
cnt += 1
print(cnt)
string = 'Нью-Йорк-статистика 1'
string, digit = string.rsplit(maxsplit=1)
string, statistic = string.rsplit('-', 1)
print([string, statistic, digit])
l = list(map(str.split, ['qw ert', 'qwert y']))
print(l)
str = []
l = list(map(str.split, ['qw ert', 'qwert y']))
print(l)
ну как "нельзя"... нехорошо так делать, но работать будет.