Числа Мерсенна и Ферма — различия между версиями
Isaeva (обсуждение | вклад) |
Isaeva (обсуждение | вклад) |
||
Строка 38: | Строка 38: | ||
'''Операции над числами Мерсенна и Ферма''' | '''Операции над числами Мерсенна и Ферма''' | ||
+ | |||
+ | 1. Если в качестве модулей <math>p_j</math> выбраны числа Мерсенна, т.е. числа вида <math>p_j = 2^{e_j} - 1</math>, для которых значение модуля на единицу меньше очередной степени двойки, это зачастую упрощает выполнение основных арифметических операций, так как выполнять вычисления с числами в таком представлении несколько проще, чем с числами, представленными в обратном коде. | ||
+ | |||
+ | При таком выборе модулей полезно несколько ослабить условие <math>0 \le {\alpha} < p_i</math> и потребовать только чтобы | ||
+ | |||
+ | :<math>0 \le {\alpha}_j < 2^{e_j}, a_i \equiv A \pmod{{e_j}-1} </math>. | ||
+ | |||
+ | Таким образом, значение <math>{\alpha}_j = p_j = 2^{e_j}-1</math> принимается в качестве оптимального вместо <math>{\alpha}_j = 0</math>, поскольку это, с одной стороны, не влияет на справедливость китайской теоремы об остатках, а с другой означает, что math>{\alpha}_j</math> может быть любым math>{\alpha}_j</math>- битовым двоичным числом. При таком допущении, операции сложения и вычитания по модулю выполняются следующим образом: | ||
+ | |||
+ | |||
+ | :<math>{\alpha}_j \oplus {\beta}_j = (({\alpha}_j + {\beta}_j) \pmod{e_j}) + \lfloor ({\alpha}_j + {\beta}_j) \ge 2^{e_j} \rfloor</math>, | ||
+ | |||
+ | :<math>{\alpha}_j \otimes {\beta}_j = ({\alpha}_j \cdot {\beta}_j \pmod{e_j}) \oplus \lfloor ({\alpha}_j \cdot {\beta}_j) / 2^{e_j} \rfloor</math>. |
Версия 10:10, 25 декабря 2014
При рассмотрении отдельных классов простых чисел значительный интерес представляет вопрос о простых числах специального вида, например, числа Мерсенна или числа Ферма.
Определение
Числа Мерсенна — числа вида , где — натуральное число. Названы в честь французского математика Марена Мерсенна.
Иногда числами Мерсенна называют только числа с нечетными или простыми индексами n.
Множества простых чисел в этих последовательностях совпадают, а потому понятие простого числа Мерсенна не зависит от того, как именно определяются числа Мерсенна.
При простых значениях n = p число может оказаться простым, но может быть составным. Например, при мы получаем простые числа Мерсенна: , а при числа - составные.
Свойства чисел Мерсенна
- Если является простым, то число n также простое. Обратное в общем случае неверно, наименьшим контрпримером является .
- Любой делитель числа для простого p имеет вид 2pk+1, где k — натуральное число (следствие малой теоремы Ферма).
Числа Мерсенна получили известность в связи с эффективным тестом простоты Люка — Лемера, благодаря которому простые числа Мерсенна давно удерживают лидерство как самые большие известные простые числа.
Определение
Числа Ферма — числа вида , где n — неотрицательное целое число.
При числа Ферма простые: .
Все числа Мерсенна и Ферма – взаимно простые.
Необходимо отметить, что значения чисел Мерсенна и Ферма быстро растут. Это не позволяет только такими числами в качестве модулей СОК.
Операции над числами Мерсенна и Ферма
1. Если в качестве модулей выбраны числа Мерсенна, т.е. числа вида , для которых значение модуля на единицу меньше очередной степени двойки, это зачастую упрощает выполнение основных арифметических операций, так как выполнять вычисления с числами в таком представлении несколько проще, чем с числами, представленными в обратном коде.
При таком выборе модулей полезно несколько ослабить условие и потребовать только чтобы
- .
Таким образом, значение принимается в качестве оптимального вместо , поскольку это, с одной стороны, не влияет на справедливость китайской теоремы об остатках, а с другой означает, что math>{\alpha}_j</math> может быть любым math>{\alpha}_j</math>- битовым двоичным числом. При таком допущении, операции сложения и вычитания по модулю выполняются следующим образом:
- ,
- .