Открыть сервис

Целое число в математике и программировании

Целое число — в математике множество чисел, не имеющих дробной части и включающее натуральные числа, числа, противоположные им по знаку, и ноль. Множество целых чисел обозначается символом \(\mathbb{Z}\) (от немецкого Zahlen — «числа») и является расширением множества натуральных чисел и подмножеством множества рациональных чисел.

Определение и свойства

Формально множество целых чисел \(\mathbb{Z}\) определяется как замыкание множества натуральных чисел относительно операций вычитания и сложения. Это означает, что для любых двух целых чисел их сумма, разность и произведение также являются целыми числами. Операция деления в множестве целых чисел, вообще говоря, не замкнута: частное двух целых чисел не всегда является целым числом.

Целые числа образуют коммутативное кольцо с единицей. Они обладают свойством дискретности: между двумя соседними целыми числами (например, между 1 и 2) не существует другого целого числа, однако между любыми двумя различными целыми числами всегда существует бесконечное множество рациональных и иррациональных чисел.

Множество целых чисел является бесконечным, но счётным: все целые числа можно расположить в последовательность (0, 1, −1, 2, −2, 3, −3, ...). Порядок на множестве целых чисел является полным: любое непустое ограниченное снизу подмножество целых чисел имеет наименьший элемент, что лежит в основе принципа математической индукции.

История развития понятия

Понятие целого числа исторически возникло из практических потребностей счёта и измерения. Натуральные числа использовались для подсчёта предметов, однако необходимость описывать долги, убытки и температуры ниже нуля привела к появлению отрицательных чисел.

В древнекитайской математике (примерно II век до н. э.) отрицательные числа использовались при вычислениях с помощью счётных палочек: положительные числа обозначались красными палочками, отрицательные — чёрными. В индийской математике отрицательные числа получили строгое обоснование в работах Брахмагупты (VII век), который сформулировал правила арифметики для отрицательных величин.

В европейской математике отрицательные числа долгое время воспринимались как «ложные» или «абсурдные». Михаэль Штифель в XVI веке называл их «лишёнными смысла», а Джероламо Кардано рассматривал их как «фиктивные». Широкое признание отрицательные числа получили лишь в XVII–XVIII веках благодаря работам Рене Декарта, который ввёл координатную ось с отрицательной частью, и Леонарда Эйлера, систематизировавшего арифметику целых чисел.

Строгое аксиоматическое построение множества целых чисел было выполнено в XIX веке. Немецкий математик Леопольд Кронекер предложил конструкцию, при которой целые числа строятся как классы эквивалентности пар натуральных чисел. Позднее Джузеппе Пеано сформулировал аксиоматику натуральных чисел, на основе которой целые числа определяются как его аддитивное замыкание.

Классификация целых чисел

Целые числа подразделяются на несколько категорий:

  • Положительные целые числа — числа больше нуля (1, 2, 3, ...), совпадающие с множеством натуральных чисел.
  • Отрицательные целые числа — числа меньше нуля (−1, −2, −3, ...).
  • Ноль — число, не являющееся ни положительным, ни отрицательным.

По свойствам делимости целые числа делятся на чётные и нечётные, а также на простые и составные. Простым называется целое число большее единицы, которое имеет ровно два положительных делителя: единицу и само себя. Составным — число, имеющее более двух положительных делителей. Числа 0 и 1 не относятся ни к простым, ни к составным.

Отдельно выделяют целые числа по модулю: абсолютная величина целого числа \(a\) обозначается \(|a|\) и равна самому числу, если оно неотрицательно, и противоположному числу, если оно отрицательно.

Целые числа в программировании

В информатике целые числа представляют собой один из фундаментальных типов данных, используемых для хранения и обработки дискретных величин. В отличие от математического множества \(\mathbb{Z}\), которое бесконечно, машинное представление целых чисел всегда ограничено разрядностью вычислительной системы.

Типы целочисленных данных

В языках программирования целочисленные типы различаются по размеру в байтах и наличию знака:

Тип (пример для C/C++)Размер (типично)Диапазон значений
char1 байтот −128 до 127 (signed) или от 0 до 255 (unsigned)
short2 байтаот −32 768 до 32 767
int4 байтаот −2 147 483 648 до 2 147 483 647
long long8 байтот −9,22 × 10¹⁸ до 9,22 × 10¹⁸

Беззнаковые типы (unsigned) позволяют хранить только неотрицательные числа, удваивая верхнюю границу диапазона за счёт отказа от знакового бита.

Представление в памяти

Отрицательные целые числа в современных компьютерах хранятся в дополнительном коде. В этой системе старший бит числа играет роль знакового, а вычитание сводится к сложению с дополнительным кодом отрицательного числа. Такое представление позволяет выполнять арифметические операции единообразно для положительных и отрицательных значений.

Переполнение

Поскольку разрядность целочисленного типа конечна, результат арифметической операции может выйти за пределы допустимого диапазона. Это явление называется переполнением. В языках низкого уровня (например, в C) переполнение целых чисел со знаком является неопределённым поведением, тогда как в языках высокого уровня (Python, Java, C#) предусмотрены механизмы контроля: Python автоматически расширяет разрядность, а Java при переполнении молча возвращает результат по модулю \(2^n\), где \(n\) — разрядность типа.

Произвольная точность

Для задач, требующих работы с числами, превышающими возможности стандартных типов, применяются библиотеки произвольной точности (big integers). В языках программирования Python тип int автоматически поддерживает произвольную точность, в Java существует класс BigInteger, в C++ — библиотека GMP. Такие реализации хранят число в виде массива цифр в системе счисления с большим основанием и выполняют арифметические операции поразрядно.

Применение целых чисел

Целые числа находят применение практически во всех областях математики и её приложений. В теории чисел изучаются свойства делимости, сравнения по модулю и распределение простых чисел. В криптографии алгоритмы RSA и Эль-Гамаля основаны на свойствах целочисленной арифметики и сложности факторизации больших составных чисел.

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

В программировании целые числа применяются для индексации элементов массивов, счётчиков циклов, представления идентификаторов, кодов символов и битовых масок. Практически любая вычислительная задача на этапе реализации использует целочисленные переменные.

Интересные свойства

Множество целых чисел является счётным, но его мощность равна мощности множества натуральных чисел. При этом целые числа образуют плотное подмножество в множестве действительных чисел: между любыми двумя различными действительными числами всегда найдётся целое число только в том случае, если расстояние между ними не меньше единицы.

Сумма всех целых чисел от 1 до \(n\) вычисляется по формуле \(n(n+1)/2\), известной ещё древнегреческому математику Пифагору. Сумма первых \(n\) нечётных чисел равна \(n^2\), что иллюстрирует связь целых чисел с геометрическими квадратами.

В 1930-х годах немецкий математик Курт Гёдель показал, что любое утверждение арифметики целых чисел, выраженное в формальной системе, либо доказуемо, либо опровержимо, либо неразрешимо в рамках этой системы, что привело к созданию теоремы о неполноте и оказало глубокое влияние на основания математики.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →