Какова идея сделать x mod 1000000007?

Во многих задачах программирования (например, в некоторых задачах проекта Эйлера) нас просят сообщить ответ как остаток после деления ответа на 1 000 000 007.

Почему не любой другой номер?

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


person Soham Chowdhury    schedule 25.09.2012    source источник
comment
Почему x mod any_number? очевидно, это зависит от того, что вы пытаетесь сделать.   -  person Zdeslav Vojkovic    schedule 25.09.2012
comment
Если ваш вопрос не касается программного использования оператора mod (на любом языке), рассмотрите возможность задать его на странице Mathematics.   -  person pankar    schedule 25.09.2012
comment
Я не вижу здесь вопроса программирования. Голосование за закрытие.   -  person High Performance Mark    schedule 25.09.2012
comment
Что-то вроде этого   -  person Soham Chowdhury    schedule 25.09.2012
comment
Я думаю, что этот вопрос интересен. Не понимаю, почему его закрыли...   -  person Emanuele Paolini    schedule 26.08.2014


Ответы (1)


Позвольте мне сыграть телепата. 1000...7 — простые числа, а 1000000007 — наибольшее из них, умещающееся в 32-битное целое число. Поскольку простые числа используются для вычисления хеша (по нахождение остатка от деления на простое число), 1000000007 подходит для вычисления 32-битного хэша.

person Dmitry Fedorkov    schedule 25.09.2012
comment
Но какова цель этой операции? - person Soham Chowdhury; 25.09.2012
comment
@soham-chowdhury, у хэш-функции много назначений. См. en.wikipedia.org/wiki/Hash_function. - person Dmitry Fedorkov; 25.09.2012
comment
Это ни в коем случае не самое большое простое число, которое поместилось бы в 32-битное целое число со знаком! В конце концов, это начнется с 2. Однако это наименьшее десятизначное простое число. - person AakashM; 25.09.2012
comment
@AakashM, конечно. На самом деле самый большой - 2 ^ 31-1 (для целого числа со знаком). Любые предложения по использованию наименьшего 10-значного простого числа? P. S. Требую значок телепата! :) - person Dmitry Fedorkov; 25.09.2012
comment
Я думаю, что соревнования могут использовать его по целому ряду причин: простые числа являются более естественными кандидатами для выполнения модульной арифметики; использование большого простого числа заставляет коды думать; первое простое число с n цифрами — очевидный выбор для «простого числа с n цифрами» :) - person AakashM; 25.09.2012