stringtranslate.com

2,147,483,647

К 1772 году Леонард Эйлер доказал, что 2 147 483 647 является простым числом .

Число 2 147 483 647 является восьмым простым числом Мерсенна , равным 2 31  − 1. Это одно из четырех известных двойных простых чисел Мерсенна . [1]

Простота этого числа была доказана Леонардом Эйлером , который сообщил доказательство в письме Даниилу Бернулли , написанном в 1772 году. [2] Эйлер использовал пробное деление , улучшив метод Пьетро Катальди , так что потребовалось не более 372 делений. [3] Таким образом, оно улучшило предыдущее рекордное простое число 6 700 417, также открытое Эйлером сорока годами ранее. Число 2 147 483 647 оставалось самым большим известным простым числом до 1867 года. [4]

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

Предсказание Барлоу

На момент своего открытия 2 147 483 647 было самым большим известным простым числом . В 1811 году Питер Барлоу , не предвидя будущего интереса к совершенным числам , написал (в «Элементарном исследовании теории чисел »):

Эйлер установил, что 2 31  − 1 = 2147483647 является простым числом; и это наибольшее из известных в настоящее время совершенных чисел, и, следовательно, последнее из приведенных выше совершенных чисел [т. е. 2 30 (2 31  − 1)], которое зависит от него, является наибольшим совершенным числом, известным в настоящее время, и, вероятно, наибольшим, которое когда-либо будет открыто; поскольку они просто любопытны, не будучи полезными, маловероятно, что кто-либо попытается найти что-то большее. [5]

Он повторил это предсказание в своей работе 1814 года « Новый математический и философский словарь» . [6] [7]

На самом деле, большее простое число было открыто в 1855 году Томасом Клаузеном (67,280,421,310,721), хотя доказательство не было предоставлено. Более того, было доказано, что 3,203,431,780,337 является простым числом в 1867 году. [4]

В вычислительной технике

Число 2,147,483,647 (или шестнадцатеричное 7FFFFFFF 16 ) является максимальным положительным значением для 32-битного знакового двоичного целого числа в вычислениях . Следовательно, это максимальное значение для переменных, объявленных как целые числа (например, как int) во многих языках программирования.

Тип данных time_t , используемый в операционных системах, таких как Unix , представляет собой знаковое целое число, подсчитывающее количество секунд с начала эпохи Unix ( полночь UTC 1 января 1970 года), и часто реализуется как 32-битное целое число. [8] Самое позднее время, которое может быть представлено в этой форме, это 03:14:07 UTC во вторник, 19 января 2038 года (что соответствует 2 147 483 647 секундам с начала эпохи). Это означает, что системы, использующие 32-битный time_tтип, подвержены проблеме 2038 года . [9]

1 января 2022 года была обнаружена ошибка в системах Microsoft Exchange , из-за которой доставка электронной почты невозможна. Внутренний сканер вредоносных программ (включенный по умолчанию с 2013 года) использовал дату и время как знаковое 32-битное целое число. В течение нового года это число изменится до 2 201 010 001 (первые две цифры будут представлять год), что превысит максимальное значение для этого типа данных. [10]

В видеоиграх

Число 2 147 483 647 часто становится жестким пределом для различных статистических данных в видеоиграх, таких как очки или деньги, если они представлены 32-битными целыми числами со знаком (а не числами с плавающей точкой , двойной точностью или произвольной точностью ). [11] [12] Превышение этого предела законными способами или путем модификации или взлома игры приводит к множеству различных результатов, вызванных переполнением целых чисел . [13] Наиболее распространенным результатом является «переход» числа в отрицательные числа. Другим потенциальным результатом является сбой игры , что означает, что не было реализовано отказоустойчивости в случае, если значение превышает 32-битный предел со знаком — как правило, если базовый движок имеет неопределенное поведение вместо поведения переполнения целых чисел. Известным примером в видеоиграх является Old School RuneScape и Grand Theft Auto V , где число используется как максимальное количество монет (или любого другого предмета), которое игрок может держать одновременно с помощью обычных методов, известное как «максимальный кэш-стек». [14] [15] В подобных случаях, когда вместо знакового 32-битного целого числа используется беззнаковое , предел может быть увеличен до 4 294 967 295. [11] Другим известным примером является жесткий лимит Minecraft для путешествий . Игра вылетает при попытке путешествия за эту точку, и игровой рендеринг останавливается примерно в 147 блоках после этой точки. [16]

Ссылки

  1. ^ Weisstein, Eric W. "Double Mersenne Number". MathWorld . Wolfram Research . Получено 29 января 2018 г. .
  2. ^ Данэм, Уильям (1999). Эйлер: Мастер всех нас . Вашингтон, округ Колумбия: Математическая ассоциация Америки. стр. 4. ISBN 978-0-88385-328-3.
  3. ^ Гаучи, Уолтер (1994). Математика вычислений, 1943–1993: Полвека вычислительной математики . Труды симпозиумов по прикладной математике. Т. 48. Провиденс, Род-Айленд: Американское математическое общество . стр. 486. ISBN 978-0-8218-0291-5.
  4. ^ ab Caldwell, Chris (8 декабря 2009 г.). «Самое большое известное простое число по годам: краткая история». The Prime Pages . University of Tennessee at Martin . Получено 29 января 2018 г.
  5. ^ Барлоу, Питер (1811). Элементарное исследование теории чисел. Лондон: J. Johnson & Co., стр. 43. величайший.
  6. ^ Барлоу, Питер (1814). Новый математический и философский словарь: включающий объяснение терминов и принципов чистой и смешанной математики и таких разделов натуральной философии, которые поддаются математическому исследованию. Лондон: Г. и С. Робинсон.
  7. ^ Шэнкс, Дэниел (2001). Решенные и нерешенные проблемы теории чисел (4-е изд.). Провиденс, Род-Айленд: Американское математическое общество. стр. 495. ISBN 978-0-8218-2824-3.
  8. ^ "The Open Group Base Specifications Issue 6 IEEE Std 1003.1, 2004 Edition (определение эпохи)". IEEE и The Open Group . The Open Group . 2004. Архивировано из оригинала 19 декабря 2008 года . Получено 7 марта 2008 года .
  9. ^ "The Year-2038 Bug". Архивировано из оригинала 18 марта 2009 года . Получено 9 апреля 2009 года .
  10. ^ Абрамс, Лоуренс. «Ошибка Microsoft Exchange 2022 года в FIP-FS нарушает доставку электронной почты». Bleeping Computer . Получено 2 января 2022 г.
  11. ^ ab Lever, Nik (6 августа 2012 г.). Директор MX 2004 Games: Разработка игр с директором. Тейлор и Фрэнсис. ISBN 978-1-136-14525-4.
  12. Автор (19 сентября 2018 г.). «Final Fantasy Exploit обучает 32-битной целочисленной математике». Hackaday . Получено 25 сентября 2022 г. .
  13. ^ «32-битные целые числа и почему старые компьютеры имеют значение». www.vice.com . 12 апреля 2015 г. . Получено 25 сентября 2022 г. .
  14. ^ "Монеты". Runescape Official Wiki .
  15. ^ Вуд, Остин (12 июля 2018 г.). «Old School Runescape отключен, так как миллиарды золота появляются из ниоткуда». PC Gamer . Получено 25 сентября 2022 г. . целесообразно проверить, что расчет не превышает максимальный предел целых чисел языка игры (2,1 миллиарда). К сожалению, логика, использованная для этого расчета, была неверной, и при выполнении на стопках других предметов (не на самом мешочке) результатом было преобразование стопки в 2,1 млрд монет.
  16. ^ "Java Edition hard limits". Minecraft Wiki . Получено 6 августа 2024 г.

Внешние ссылки