Skip to content

Instantly share code, notes, and snippets.

@kitten-owner
Last active June 23, 2021 11:20
Show Gist options
  • Select an option

  • Save kitten-owner/fdb86231cc5fefcce3b8eaa20ab9b75e to your computer and use it in GitHub Desktop.

Select an option

Save kitten-owner/fdb86231cc5fefcce3b8eaa20ab9b75e to your computer and use it in GitHub Desktop.
#На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
#1) Строится двоичная запись числа N.
#2) Затем справа дописываются два разряда: символы 01, если число N чётное, и 10, если нечётное.
#Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого
#числа R. Укажите минимальное число N, после обработки которого автомат получает число, большее 138.
#В ответе это число запишите в десятичной системе.
def zadach5(N):
R = bin(N)[2:]
if N%2==0:
R = R+"01"
else:
R = R + "10"
return int(R,2)
for i in range(1,100):
if zadach5(i) > 138:
print(i,zadach5(i))
#Автомат обрабатывает натуральное число N (128 <= N <= 255) по следующему алгоритму:
#1) Строится восьмибитная двоичная запись числа N.
#2) Все цифры двоичной записи заменяются на противоположные (0 на 1, 1 на 0).
#3) Полученное число переводится в десятичную запись.
#4) Из исходного числа вычитается полученное, разность выводится на экран.
#Какое число нужно ввести в автомат, чтобы в результате получилось 165?
for i in range(128, 255+1):
n = bin(i)[2:]
m = ""
for u in range(len(n)):
if n[u] == "1":
m += "0"
if n[u] == "0":
m += "1"
q = int(m, 2)
p = i - q
if p == 165:
print(i)
#На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
#1) Строится двоичная запись числа N.
#2) К этой записи дописываются справа ещё два разряда по следующему правилу:
#A. Складываются все цифры двоичной записи числа N и остаток от деления суммы на 2 дописывается в конец числа (справа).
#Б. Над этой записью производятся те же действия – справа дописывается остаток от деления суммы её цифр на 2.
#Укажите минимальное число R которое превышает число 97 и может являться результатом работы данного алгоритма.
for i in range(1, 50):
n = bin(i)[2:]
p = n.count("1")
q = p % 2
n = n + (str(q))
p = n.count("1")
q = p % 2
n = n + (str(q))
r = int(n, 2)
if r > 97:
print(i, n, r)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment