Как перевести число в четверичную систему счисления на Python?

Системы счисления — это основа любой компьютерной науки. Умение переводить числа между разными системами счисления облегчает решение многих задач в программировании и компьютерных науках. Четверичная система счисления используется реже, но имеет свои применения в узких областях, таких как сокровища в игре или специальные виды кодирования. В этой статье мы рассмотрим, как перевести число из десятичной системы в четверичную на языке программирования Python.

Основы систем счисления

Двоичная система

Двоичная система счисления — самая основная и известная среди программистов. Она использует всего два символа: 0 и 1. Основной принцип работы заключается в том, что каждая последующая цифра двоичного числа представляет собой степень двойки. Например, число 101 в двоичной системе обозначает (1 \cdot 2^2 + 0 \cdot 2^1 + 1 \cdot 2^0 = 5) в десятичной системе.

Четверичная система

Четверичная система счисления использует четыре символа: 0, 1, 2 и 3. Эта система также основана на степенях, но на этот раз степеней четырёх. Например, число 123 в четверичной системе обозначает (1 \cdot 4^2 + 2 \cdot 4^1 + 3 \cdot 4^0 = 27) в десятичной системе. Четверичную систему можно применять в компьютерных алгоритмах и некоторых специализированных областях, таких как шифрование.

Примеры чисел в различных системах

Давайте рассмотрим, как одно и то же число выглядит в разных системах счисления:

  • Десятичная система: 10
  • Двоичная система: 1010
  • Четверичная система: 22

Алгоритм перевода числа в четверичную систему счисления

Для перевода числа из десятичной системы в четверичную нужно последовательно делить число на 4 и записывать остатки от деления, начиная с самого первого деления до тех пор, пока результат очередного деления не станет меньше 4. Затем прочитать остатки в обратном порядке.

Реализация на Python

Функция перевода числа

Ниже представлен пример Python функции для перевода числа из десятичной системы в четверичную с использованием типизации данных и комментариев:

def to_quaternary(n: int) -> str:
    """
    Переводит десятичное число в четверичную систему счисления.

    :param n: Десятичное число
    :return: Число в четверичной системе в виде строки
    """
    if n == 0:
        return '0'
    result = ''
    while n > 0:
        result = str(n % 4) + result
        n //= 4
    return result

Тестирование функции

Для проверки правильности работы функции можно использовать следующие тесты:

assert to_quaternary(10) == '22'
assert to_quaternary(0) == '0'
assert to_quaternary(15) == '33'

Примеры использования

Взаимодействие с пользователем

Создадим небольшой скрипт, который взаимодействует с пользователем, предлагая ввести число с клавиатуры и выводя его четверичное представление:

if __name__ == '__main__':
    number = int(input('Введите число: '))
    print(f'Четверичное представление: {to_quaternary(number)}')

Интеграция с другими модулями

Например, можно использовать библиотеку matplotlib для визуализации числа в четверичной системе. Можем построить график частоты появления каждой цифры в множествах чисел до 1000:

import matplotlib.pyplot as plt

def visualize_quaternary_distribution():
    counts = [0, 0, 0, 0]
    for i in range(1001):
        quaternary = to_quaternary(i)
        for digit in quaternary:
            counts[int(digit)] += 1

    labels = [str(x) for x in range(4)]
    plt.bar(labels, counts)
    plt.xlabel('Четверичные цифры')
    plt.ylabel('Частота')
    plt.title('Частота появления каждого числа в четверичной системе для чисел от 0 до 1000')
    plt.show()

if __name__ == '__main__':
    visualize_quaternary_distribution()

Заключение

Мы рассмотрели основные идеи и примеры перевода десятичных чисел в четверичную систему счисления. Понимание различных систем счисления важно для всех программистов. Эти знания облегчают разработку алгоритмов и решение нестандартных задач. Рекомендуем продолжить изучение других систем счисления и их применения на практике.


Добавить комментарий