14.01 Арифметические выражения
Готовиться с нами - ЛЕГКО!
Ошибка.
Попробуйте повторить позже
Сколько значащих нулей содержится в двоичной записи значения выражения: ?
Решение программой
Для подсчёта количества нулей в двоичной записи числа сначала вычисляем значение выражения. Затем переводим результат в двоичную систему с помощью функции bin(). Префикс 0b, который добавляет bin(), убираем срезом [2:]. После этого с помощью метода count() подсчитываем количество символов ’0’ в полученной двоичной строке и выводим результат.
# Исходное выражение s = 2**7 + 2**4 - 9 # Перевод числа в двоичную систему и подсчёт количества нулей # bin(s)[2:] — преобразует число в строку двоичного представления без префикса ’0b’ print(bin(s)[2:].count(’0’))
Ошибка.
Попробуйте повторить позже
Сколько единиц содержится в двоичной записи значения выражения: ?
Решение программой
Для подсчёта количества единиц в двоичной записи числа необходимо написать алгоритм перевода исходного числа в двоичную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую.
# Исходное выражение s = 4**19 + 2**8 + 31 # Строка для хранения двоичной записи числа a = ’’ # Перевод числа из десятичной системы в двоичную while s > 0: # Добавляем последнюю цифру двоичной записи в начало строки a = str(s % 2) + a # Отбрасываем последнюю цифру (целочисленное деление на 2) s //= 2 # Подсчёт и вывод количества единиц в двоичной записи числа print(a.count(’1’)) \textbf{Решение руками:} Представим все числа в виде: $2̂n$ $4̂{19} = 2̂{38}$ $31 = 2̂4 + 2̂3 + 2̂2 + 2̂1 + 2̂0$ Получим: $$ 2̂{38}+2̂8+2̂4+2̂3+2̂2+2̂1+2̂0 = 1\underbrace{000...000}_{29}100011111 $$ Количество единиц: $7$
Ошибка.
Попробуйте повторить позже
Сколько троек содержится в пятеричной записи значения выражения: ?
Решение программой
Для подсчёта количества троек в 5-ричной записи числа необходимо написать алгоритм перевода исходного числа в 5-ричную систему счисления. Для перевода реализуем в программе стандартный алгоритм перевода числа из десятичной системы счисления в другую. Потом подсчитаем количество троек при помощи метода count().
# Исходное выражение s = 25**20 + 4 * 5**11 - 2 # Строка для хранения цифр числа в 5-ричной системе a = ’’ # Перевод числа из десятичной системы в 5-ричную while s > 0: # Добавляем последнюю цифру числа в 5-ричной системе в начало строки a = str(s % 5) + a # Отбрасываем последнюю цифру (целочисленное деление на 5) s //= 5 # Подсчёт и вывод количества цифр ’3’ в 5-ричной записи числа print(a.count(’3’))
Решение руками:
Представим все числа в виде:
Получим:
Вычтем:
Количество троек:
Ошибка.
Попробуйте повторить позже
Сколько значащих нулей содержится в двоичной записи значения выражения: ?
Решение программой
Для подсчёта количества нулей в двоичной записи числа реализуется функция x_10_to_n(x, n), которая переводит число x из десятичной системы в систему счисления с основанием n. В функции на каждом шаге берётся остаток от деления на n (последняя цифра в новой системе), результат сохраняется в список, затем число уменьшается целочисленным делением на n. После завершения цикла цифры переворачиваются, чтобы получить правильный порядок записи.
Таким образом, вызов x_10_to_n(s, 2) формирует список цифр двоичной записи числа s. С помощью метода count(0) подсчитывается количество нулей в этом списке, и результат выводится на экран.
# Функция для перевода числа x из десятичной системы в систему счисления с основанием n def x_10_to_n(x, n): digits = [] # список для хранения цифр числа в новой системе while x > 0: # Добавляем остаток от деления на n (цифру в системе счисления с основанием n) digits.append(x % n) # Отбрасываем последнюю цифру (целочисленное деление на n) x //= n # Разворачиваем список, чтобы цифры шли от старшей к младшей digits.reverse() return digits # Исходное выражение s = 8**2020 + 4**2017 + 26 - 1 # Перевод числа s в двоичную систему и подсчёт количества нулей print(x_10_to_n(s, 2).count(0))
Ошибка.
Попробуйте повторить позже
Сколько единиц содержится в двоичной записи значения выражения: ?
Решение программой
Для подсчёта количества единиц в двоичной записи числа необходимо сначала реализовать стандартный алгоритм перевода числа из десятичной системы в двоичную. На каждом шаге берём последнюю цифру числа (остаток от деления на 2) и проверяем, равна ли она 1. Если да — увеличиваем счётчик. После этого отбрасываем последнюю цифру целочисленным делением на 2. В конце выводим общее количество единиц.
# Исходное выражение a = 2**5 + 2**5 + 2**2 # Переменная для подсчёта количества единиц в двоичной записи числа c = 0 # Перевод числа в двоичную систему и подсчёт единиц while a > 0: # Если последняя цифра числа в двоичной системе равна 1, увеличиваем счётчик if a % 2 == 1: c += 1 # Отбрасываем последнюю цифру (целочисленное деление на 2) a //= 2 # Вывод количества единиц в двоичной записи числа print(c)
Решение руками:
Немного преобразовав выражение, переведём числа в выражении в двоичную систему счисления.
Следовательно, ответ 2.
Ошибка.
Попробуйте повторить позже
Сколько значащих нулей содержится в двоичной записи значения выражения: ?
Решение программой
Для подсчёта количества нулей в двоичной записи числа необходимо сначала реализовать стандартный алгоритм перевода числа из десятичной системы в двоичную. На каждом шаге берём последнюю цифру числа (остаток от деления на 2) и проверяем, равна ли она 0. Если да — увеличиваем счётчик. После этого отбрасываем последнюю цифру целочисленным делением на 2. В конце выводим общее количество нулей.
# Исходное выражение a = 2**7 + 2**4 - 9 # Переменная для подсчёта количества нулей в двоичной записи числа c = 0 # Перевод числа в двоичную систему и подсчёт нулей while a > 0: # Если последняя цифра числа в двоичной системе равна 0, увеличиваем счётчик if a % 2 == 0: c += 1 # Отбрасываем последнюю цифру (целочисленное деление на 2) a //= 2 # Вывод количества нулей в двоичной записи числа print(c)
Ошибка.
Попробуйте повторить позже
Сколько единиц содержится в двоичной записи значения выражения: ?
Решение программой
Для подсчёта количества единиц в двоичной записи числа необходимо сначала реализовать стандартный алгоритм перевода числа из десятичной системы в двоичную. На каждом шаге берём последнюю цифру числа (остаток от деления на 2) и проверяем, равна ли она 1. Если да — увеличиваем счётчик. После этого отбрасываем последнюю цифру целочисленным делением на 2. В конце выводим общее количество единиц.
# Исходное выражение a = 4**19 + 2**8 + 31 # Переменная для подсчёта количества единиц в двоичной записи числа c = 0 # Перевод числа в двоичную систему и подсчёт единиц while a > 0: # Если последняя цифра числа в двоичной системе равна 1, увеличиваем счётчик if a % 2 == 1: c += 1 # Отбрасываем последнюю цифру (целочисленное деление на 2) a //= 2 # Вывод количества единиц в двоичной записи числа print(c)
Решение руками:
Представим все числа в виде:
Получим:
Количество единиц:
Ошибка.
Попробуйте повторить позже
Сколько троек содержится в пятеричной записи значения выражения: ?
Решение программой
Для подсчёта количества цифр 3 в 5-ричной записи числа реализуется функция x_10_to_n(x, n), которая переводит число x из десятичной системы в систему счисления с основанием n. В функции на каждом шаге берётся остаток от деления на n (последняя цифра в новой системе) и добавляется в список digits, после чего число уменьшается целочисленным делением на n. После завершения цикла список переворачивается, чтобы цифры шли в правильном порядке.
Вызов x_10_to_n(s, 5) формирует список цифр 5-ричной записи числа s. С помощью метода count(3) подсчитывается количество цифр 3 в этом списке, и результат выводится на экран.
# Функция для перевода числа x из десятичной системы в систему счисления с основанием n def x_10_to_n(x, n): digits = [] # список для хранения цифр числа в новой системе while x > 0: # Добавляем остаток от деления на n (цифру в системе счисления с основанием n) digits.append(x % n) # Отбрасываем последнюю цифру (целочисленное деление на n) x //= n # Разворачиваем список, чтобы цифры шли от старшей к младшей digits.reverse() return digits # Исходное выражение s = 25**20 + 4 * 5**11 - 2 # Перевод числа s в 5-ричную систему и подсчёт количества цифр ’3’ print(x_10_to_n(s, 5).count(3))
Решение руками:
Представим все числа в виде:
Получим:
Вычтем:
Количество троек:
Ошибка.
Попробуйте повторить позже
Сколько значащих нулей содержится в двоичной записи значения выражения: ?
Решение программой
Для подсчёта количества нулей в двоичной записи числа реализуется функция x_10_to_n(x, n), которая переводит число x из десятичной системы в систему счисления с основанием n. В функции на каждом шаге берётся остаток от деления на n (последняя цифра в новой системе) и добавляется в список digits, после чего число уменьшается целочисленным делением на n. После завершения цикла список переворачивается, чтобы цифры шли в правильном порядке.
Вызов x_10_to_n(s, 2) формирует список цифр двоичной записи числа s. С помощью метода count(0) подсчитывается количество нулей в этом списке, и результат выводится на экран.
# Функция для перевода числа x из десятичной системы в систему счисления с основанием n def x_10_to_n(x, n): digits = [] # список для хранения цифр числа в новой системе while x > 0: # Добавляем остаток от деления на n (цифру в системе счисления с основанием n) digits.append(x % n) # Отбрасываем последнюю цифру (целочисленное деление на n) x //= n # Разворачиваем список, чтобы цифры шли от старшей к младшей digits.reverse() return digits # Исходное выражение s = 8**2020 + 4**2017 + 26 - 1 # Перевод числа s в двоичную систему и подсчёт количества нулей print(x_10_to_n(s, 2).count(0))
Ошибка.
Попробуйте повторить позже
Значение выражения
записали в системе счисления с основанием . Определите количество значащих нулей в записи этого
числа.
Решение программой
Для подсчёта количества нулей в 27-ричной записи числа необходимо сначала реализовать стандартный алгоритм перевода числа из десятичной системы в систему с основанием 27. На каждом шаге берём последнюю цифру числа (остаток от деления на 27) и проверяем, равна ли она 0. Если да — увеличиваем счётчик. После этого отбрасываем последнюю цифру целочисленным делением на 27. В конце переменная c содержит общее количество нулей в 27-ричной записи числа, и результат выводится на экран.
# Исходное выражение k = 6 * 3 ** 1520 + 9 ** 321 + 3 ** 407 - 2022 # Переменная для подсчёта количества цифр ’0’ в 27-ричной системе c = 0 # Перевод числа из десятичной системы в 27-ричную и подсчёт цифр ’0’ while k > 0: # Если последняя цифра числа в 27-ричной системе равна 0, увеличиваем счётчик if k % 27 == 0: c += 1 # Отбрасываем последнюю цифру (целочисленное деление на 27) k //= 27 # Вывод количества цифр ’0’ в 27-ричной записи числа print(c)
Решение руками:
Первым шагом необходмо преобразовать выражение так, чтобы в степень возводилось число 27:
Переведем в систему счисления с основанием и получим:
Ошибка.
Попробуйте повторить позже
Сколько единиц в двоичной записи выражения ?
Решение программой
Для подсчёта количества единиц в двоичной записи числа реализуется стандартный алгоритм перевода числа из десятичной системы в двоичную. На каждом шаге берётся остаток от деления числа на 2 (последняя двоичная цифра) и добавляется в начало строки res, чтобы сохранить правильный порядок цифр. После этого число уменьшается целочисленным делением на 2. В конце с помощью метода count() подсчитывается количество единиц в сформированной двоичной строке, и результат выводится на экран.
# Исходное выражение n = 2 ** 2023 + 2 ** 2022 - 2 ** 1000 # Строка для хранения двоичной записи числа res = ’’ # Перевод числа из десятичной системы в двоичную while n != 0: # Добавляем последнюю цифру двоичной записи в начало строки res = str(n % 2) + res # Отбрасываем последнюю цифру (целочисленное деление на 2) n //= 2 # Подсчёт и вывод количества единиц в двоичной записи числа print(res.count(’1’))
Ошибка.
Попробуйте повторить позже
Напишите программу, которая находит количество троек в -ричной записи числа
. В ответе
напишите искомое значение.
Решение программой
Для подсчёта количества цифр 3 в 7-ричной записи числа необходимо сначала реализовать стандартный алгоритм перевода числа из десятичной системы в 7-ричную. На каждом шаге берётся последняя цифра числа (остаток от деления на 7) и проверяется, равна ли она 3. Если да — увеличиваем счётчик ans. После этого число уменьшается целочисленным делением на 7.В конце переменная ans содержит общее количество цифр 3 в 7-ричной записи числа, и результат выводится на экран.
# Исходное выражение n = 2 ** 1000 + 2 ** 123 - 2 ** 812 + 845 # Переменная для подсчёта количества цифр ’3’ в 7-ричной системе ans = 0 # Перевод числа из десятичной системы в 7-ричную и подсчёт цифр ’3’ while n > 0: # Если последняя цифра числа в 7-ричной системе равна 3, увеличиваем счётчик ans += (n % 7 == 3) # Отбрасываем последнюю цифру (целочисленное деление на 7) n //= 7 # Вывод количества цифр ’3’ в 7-ричной записи числа print(ans)
Ошибка.
Попробуйте повторить позже
Значение выражения записали в системе счисления с основанием 6. Определите, сколько
цифр 0 содержится в этой записи. (В ответе учитываются только значащие нули, например, в записи 1305.004 три
значащих нуля).
Решение программой
Чтобы найти количества нулей в 6-ричной записи числа, домножим каждое слагаемое на 6 в максимальной противоположной отрицательной степени. Далее необходимо реализовать стандартный алгоритм перевода числа из десятичной системы в 6-ричную. На каждом шаге берётся последняя цифра числа (остаток от деления на 6) и добавляется в начало строки s, чтобы сохранить правильный порядок цифр. После этого число уменьшается целочисленным делением на 6. В конце с помощью метода count(’0’) подсчитывается количество нулей в сформированной 6-ричной строке, и результат выводится на экран.
# Исходное выражение, домноженное на 6 в максимальной противоположной отрицательной степени a = (36 ** 7) * (6 ** 14) + 6 ** (19 + 14) - 18 * (6 ** 14) + \ 3 * 6 ** (-10 + 14) + 5 * 6 ** (-14 + 14) # Строка для хранения цифр числа в 6-ричной системе s = ’’ # Перевод числа из десятичной системы в 6-ричную while a > 0: # Добавляем последнюю цифру числа в 6-ричной системе в начало строки s = str(a % 6) + s # Отбрасываем последнюю цифру (целочисленное деление на 6) a //= 6 # Подсчёт и вывод количества цифр ’0’ в 6-ричной записи числа print(s.count(’0’))
Ошибка.
Попробуйте повторить позже
Значение арифметического выражения: — записали в системе счисления с основанием 4. Сколько
цифр «3» содержится в этой записи?
Решение программой:
Для подсчёта количества цифр 3 в 4-ричной записи числа еобходимо сначала реализовать стандартный алгоритм перевода числа из десятичной системы в 4-ричную. На каждом шаге берётся последняя цифра числа (остаток от деления на 4) и проверяется, равна ли она 3. Если да — увеличиваем счётчик c. После этого число уменьшается целочисленным делением на 4. В конце переменная c содержит общее количество цифр 3 в 4-ричной записи числа, и результат выводится на экран.
# Исходное выражение s = 16**22 * 4**8 - 4**4 - 64 # Переменная для подсчёта количества цифр ’3’ в 4-ричной системе c = 0 # Перевод числа из десятичной системы в 4-ричную и подсчёт цифр ’3’ while s > 0: # Если последняя цифра числа в 4-ричной системе равна 3, увеличиваем счётчик if s % 4 == 3: c += 1 # Отбрасываем последнюю цифру (целочисленное деление на 4) s = s // 4 # Вывод количества цифр ’3’ в 4-ричной записи числа print(c)
Решение руками:
Первым шагом необходмо преобразовать выражение так, чтобы в степень возводилось число 4:
Переведем в систему счисления с основанием и получим:
Ошибка.
Попробуйте повторить позже
Значение арифметического выражения:
— записали в системе счисления с основанием 7. Сколько цифр «0» содержится в этой записи?
Решение программой
Для подсчёта количества нулей в 7-ричной записи числа необходимо сначала реализовать стандартный алгоритм перевода числа из десятичной системы в 7-ричную. На каждом шаге берётся последняя цифра числа (остаток от деления на 7) и добавляется в начало строки m. После этого число уменьшается целочисленным делением на 7. В конце с помощью метода count() подсчитывается количество нулей в сформированной 7-ричной строке, и результат выводится на экран.
# Исходное выражение s = 49**12 + 7**10 - 28 # Строка для хранения цифр числа в 7-ричной системе m = ’’ # Перевод числа из десятичной системы в 7-ричную while s > 0: # Добавляем последнюю цифру числа в 7-ричной системе в начало строки m = str(s % 7) + m # Отбрасываем последнюю цифру (целочисленное деление на 7) s = s // 7 # Подсчёт и вывод количества цифр ’0’ в 7-ричной записи числа print(m.count(’0’))
Решение руками:
Представим все числа в виде:
Получим:
Вычтем:
Количество нулей:
Ошибка.
Попробуйте повторить позже
Значение выражения записали в системе счисления с основанием 7. Сколько цифр «6»
содержится в этой записи?
Решение программой
Для подсчёта количества цифр 6 в 7-ричной записи числа необходимо сначала реализовать стандартный алгоритм перевода числа из десятичной системы в 7-ричную. На каждом шаге берётся последняя цифра числа (остаток от деления на 7) и добавляется в начало строки m. После этого число уменьшается целочисленным делением на 7. В конце с помощью метода count() подсчитывается количество цифр 6 в сформированной 7-ричной строке, и результат выводится на экран.
# Исходное выражение s = 6 * 343**6 + 5 * 49**7 - 40 # Строка для хранения цифр числа в 7-ричной системе m = ’’ # Перевод числа из десятичной системы в 7-ричную while s > 0: # Добавляем последнюю цифру числа в 7-ричной системе в начало строки m = str(s % 7) + m # Отбрасываем последнюю цифру (целочисленное деление на 7) s = s // 7 # Подсчёт и вывод количества цифр ’6’ в 7-ричной записи числа print(m.count(’6’))
Ошибка.
Попробуйте повторить позже
Сколько единиц в двоичной записи числа ?
Решение программой
Для подсчёта количества единиц в двоичной записи числа сначала вычисляем значение выражения. Затем переводим число в двоичную систему с помощью функции bin(). Префикс 0b, который добавляет bin(), отбрасываем срезом [2:]. После этого с помощью метода count() подсчитываем количество единиц в двоичной строке и выводим результат.
# Исходное выражение s = 4**2023 + 8**200 - 2**50 - 26 # Перевод числа в двоичную систему и подсчёт количества единиц # bin(s)[2:] — преобразует число в строку двоичного представления без префикса ’0b’ print(bin(s)[2:].count(’1’))
Ошибка.
Попробуйте повторить позже
Сколько единиц содержится в двоичной записи значения выражения
Решение программой
Для подсчёта количества единиц в двоичной записи числа реализуется стандартный алгоритм перевода числа из десятичной системы в двоичную. На каждом шаге берётся остаток от деления числа на 2 (последняя двоичная цифра) и добавляется в конец строки s. После этого число уменьшается целочисленным делением на 2. В конце с помощью метода count() подсчитывается количество единиц в сформированной двоичной строке, и результат выводится на экран.
# Исходное выражение x = 16**1010 + 4**2017 - 2**90 # Строка для хранения двоичной записи числа (цифры добавляются в обратном порядке) s = ’’ # Перевод числа из десятичной системы в двоичную while x != 0: # Добавляем последнюю цифру двоичной записи к строке s += str(x % 2) # Отбрасываем последнюю цифру (целочисленное деление на 2) x //= 2 # Подсчёт и вывод количества единиц в двоичной записи числа print(s.count("1"))
Ошибка.
Попробуйте повторить позже
Значение арифметического выражения: записали в системе счисления с основанием 5. Какова сумма
цифр содержащихся в этой записи? Ответ укажите в десятичной системе.
Решение программой
Для подсчёта суммы цифр числа в 5-ричной системе необходимо сначала реализовать стандартный алгоритм перевода числа из десятичной системы в 5-ричную. На каждом шаге берётся последняя цифра числа (остаток от деления на 5) и добавляется к счётчику r. После этого число уменьшается целочисленным делением на 5. В конце переменная r содержит сумму всех цифр числа в 5-ричной записи, и результат выводится на экран.
# Исходное выражение s = 4 * 25**4 - 5**4 + 14 # Переменная для подсчёта суммы цифр числа в 5-ричной системе r = 0 # Перевод числа из десятичной системы в 5-ричную и подсчёт суммы цифр while s > 0: # Прибавляем последнюю цифру числа в 5-ричной системе (остаток от деления на 5) r += s % 5 # Отбрасываем последнюю цифру (целочисленное деление на 5) s = s // 5 # Вывод суммы цифр числа в 5-ричной системе print(r)
Ошибка.
Попробуйте повторить позже
Значение выражения
записали в восьмеричной системе счисления. Найдите сумму всех разрядов восьмеричной записи этого числа и запишите её в ответе в десятичной системе счисления.
Решение программой
Для подсчёта суммы цифр числа в 8-ричной системе необходимо сначала реализовать стандартный алгоритм перевода числа из десятичной системы в восьмеричную. На каждом шаге берётся последняя цифра числа (остаток от деления на 8) и добавляется к счётчику sm. После этого число уменьшается целочисленным делением на 8. В конце переменная sm содержит сумму всех цифр числа в 8-ричной записи, и результат выводится на экран.
# Исходное выражение s = (2**345 + 8**65 - 4**130) * (8**123 - 2**89 + 4**45) # Переменная для подсчёта суммы цифр числа в 8-ричной системе sm = 0 # Перевод числа из десятичной системы в 8-ричную и подсчёт суммы цифр while s > 0: # Прибавляем последнюю цифру числа в 8-ричной системе (остаток от деления на 8) sm += s % 8 # Отбрасываем последнюю цифру (целочисленное деление на 8) s //= 8 # Вывод суммы цифр числа в 8-ричной системе print(sm)