Last active
June 23, 2021 11:20
-
-
Save kitten-owner/fdb86231cc5fefcce3b8eaa20ab9b75e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #На вход алгоритма подаётся натуральное число 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