Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
И возвращаясь к "простому" факториалу 29.03.05 20:02 Число просмотров: 4310
Автор: Searcher Статус: Незарегистрированный пользователь
|
> А это смотря для каких задач. Если надо одно большое > простое, то нужно их поискать в окресности перебором. Если > надо много/все на интервале, то решетом. В любом случае это > будет быстрее, чем пытаться делить каждое на простые и > проверять остаток. Причем разница колосальна. И возвращаясь к "простому" факториалу, надо будет найти все простые на интервале, и
для больших чисел по решету надо будет пройтись всеми простыми, которые меньше чем корень из
кандидатов. При этом даже если будет отсеяно 9999999 из 1000000, то по этому последнему необходимо будет пройтись всеми простыми, количество которых существенно больше, чем 1000000 на десятки порядков.
Но тем, не менее, если считаешь, что "простой факториал" даст выигрыш, может так оно и есть.
> > Интересно, как получить остальные члены в полиноме для > > увеличения точности. > > Вариант - эмпирически. Подбираем коэффициенты, оценивая > сренеквадратичное отклонение. Другой метод будет более > сложен. > > > И еще, какая понадобится точность для N=10^k, k > знаков, или > > больше чем 10^k? :) > > n-k. Хотим +/-10 - надо -(к-1), хотим +/-100 - надо -(к-2). То есть, приводя для случая rsa-1024~10^308 нам надо получить
308 знаков и 308 членов полинома? Полиномиальная сложность?
> Экстенсивные методы бессмысленно рассматривать, это все > равно что на ассемблере вылизывать код, чтоб добиться > десятикратного ускорения. С одной стороны это не плохо. С > другой стороны если речь идет о времени вычислений 10^600 > лет, то от того что время сократится до 10^599 лет легче не > станет. Да, ты прав. Просто это было ограничение, которое могло бы упростить вычисления.
Да, вылизывать код на АСМе, чтобы выиграть один порядок из 100 - пустая трата времени.
Тем не менее, если рассматривать два ряда
1*2*3*....*100 и
101*102*103*...*200, то 1*100 отличается от 50*51 в 25 раз, в то время как
101*200 отличается от 150*151 в 1.1, что означает, что значение первого ряда от 50^50 будет отличаться
на пару десятков порядков, в то время как значение второго от 150^50 всего на 2.
|
|
|