|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Я чуть позже построю тот-же график для своего pbfa. Ожидаю что там будет полином. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 18:55 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Нашел время понять, что такое - асимптоматика. Но здесь трудно оценить процесс вычисления, поскольку используются процедуры Питона. Если рассматривать результаты вычислений по времени, то они очень отличаются: утром ПК считает быстро, а вечером медленнее. Если в среднем, то для мини диапазона на 500 000 нечётных чисел на проверку уходит 4 - 5 минут уже довольно давно. А в этом диапазоне числа, разные с точки зрения параметра s. У 50% s = 1, у 25% s = 2 и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 19:58 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
У меня было 15 диапазонов по 50 000 000. Я взял в каждом диапазоне 1-й мини диапазон по 1 000 000 и посмотрел на время его выполнения. Получилось (мин.сек.): 0.21, 1.36, 2.24, 2.34, 2.56, 3.11, 3.58, 3.53, 3.46, 5.41, 4.10, 4.27, 4.46, 4.42, 5.34 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 20:18 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
В предыдущем сообщении асимптоматика эвристического алгоритма считается с учётом проверки чисел на делители. Это ошибочно. Поэтому для асимптоматики были проведены расчёты эвристического алгоритма без учёта проверки на делители. В результате: на диапазоне от 5 до 50 000 000 время проверки мини диапазона из 1 000 000 чисел составляет 9 сек. на диапазоне от 350 000 000 до 400 000 000 время проверки мини диапазона из 1 000 000 чисел составляет 12 сек. на диапазоне от 700 000 000 до 750 000 000 время проверки мини диапазона из 1 000 000 чисел составляет 13 сек. на диапазоне от 1 500 000 000 до 1 550 000 000 время проверки мини диапазона из 1 000 000 чисел составляет 13 сек. на диапазоне от 2^200 +1 до 2^200 +1 + 50 000 000 время проверки мини диапазона из 1 000 000 чисел составляет 2 мин. 06 сек. (найдено на мини диапазоне 7134 простых числа) на диапазоне от 2^500 +1 до 2^500 +1 + 400 000 время проверки мини диапазона уже из 200 000 чисел составляет 3 мин. 21 сек. (найдено на мини диапазоне 576 простых числа) на диапазоне от 2^1024 +1 до 2^1024 +1 + 400 000 время проверки мини диапазона уже из 200 000 чисел составляет 21 мин. 59 сек. (найдено на мини диапазоне 281 простое число) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 07:20 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
авторВ результате: на диапазоне от 5 до 50 000 000 время проверки мини диапазона из 1 000 000 чисел составляет 9 сек. на диапазоне от 350 000 000 до 400 000 000 время проверки мини диапазона из 1 000 000 чисел составляет 12 сек. на диапазоне от 700 000 000 до 750 000 000 время проверки мини диапазона из 1 000 000 чисел составляет 13 сек. на диапазоне от 1 500 000 000 до 1 550 000 000 время проверки мини диапазона из 1 000 000 чисел составляет 13 сек. По этим диапазонам мы сверим с моим алгоритмом. Количество штук. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 09:13 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
на диапазоне от 2^200 +1 до 2^200 +1 + 50 000 000 время проверки мини диапазона из 1 000 000 чисел составляет 2 мин. 06 сек. (найдено на мини диапазоне 7134 простых числа) на диапазоне от 2^500 +1 до 2^500 +1 + 400 000 время проверки мини диапазона уже из 200 000 чисел составляет 3 мин. 21 сек. (найдено на мини диапазоне 576 простых числа) на диапазоне от 2^1024 +1 до 2^1024 +1 + 400 000 время проверки мини диапазона уже из 200 000 чисел составляет 21 мин. 59 сек. (найдено на мини диапазоне 281 простое число) На этих диапазонах я могу сверить с BigInteger::isProbablePrime и полученое тобой значение должно быть порядка моего. Если найдем различия - можно будет говорить что либо у тебя ошибка. Либо мы нашли ложно-позитивное срабатываение isProbablePrime. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 09:16 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
exp98Вам надо скорее патентовать его в просчитанном диапазоне. А то ведь на хабру глянет пара вдумчивых глаз, придёт сюда, и скажет: "Ага!" И бабла у неё будет больше, и возможностей, и выч-х мощностей. Патентовать - подольше будет, чем считать до ярда, а вот статейку тиснуть можно быстрее. Так что, не упускай из виду. http://sci-article.ru/articles_current.php Кажется, получилось "тиснуть" статью в журнал. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 09:37 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy Usov, рано еще писать статьи. Надо баги поискать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 10:09 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonGennadiy Usov, рано еще писать статьи. Надо баги поискать.В статье описан эвристический алгоритм. Программа не рассматривается, есть только ссылка на неё. В статье указаны некоторые исходные данные для программы, но они указаны для чисел до 700 000 000. Если в программе для больших чисел что-то изменится, то поменяются исходные данные, но уже в новой возможной публикации. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 10:18 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Давно бы так. А то прикидывался шлангом, дескать, писать не умею и не знаю как. Вопрос от дилетанта. Последнее предложение авторВ большинстве случаев на отрезке (1, 750 000 000) простое число находится через 15 раундов. число 15 точно не опечатка? будь я в редакции, попросил бы гистограмму распределения кол-ва раундов. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 12:50 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Ах ,забыл. Повторю старый вопрос. На месте редакции также попросил бы сравнение со стариной Мюллером по кол-ву раундов, коль скоро взялись Мюллера оптимизировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 12:52 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
exp98Ах ,забыл. Повторю старый вопрос. На месте редакции также попросил бы сравнение со стариной Мюллером по кол-ву раундов, коль скоро взялись Мюллера оптимизировать.Спасибо за вопрос! Отвечаю: По тесту Мюллера-Рабина количество раундов оптимально около log (n). При этом, если два условия теста не выполняются, то число - составное. В этом случае количество раундов будет намного меньше. По эвристическому алгоритму: - для s = 1 (50% всех нечётных чисел) количество раундов А (пока 10 - 15, дальше покажут проверки). - для s > 1 количество раундов может быть А * s. Исследования до 1 000 000 000 показали, что количество раундов не превышает А * 8. При этом, если при некоторой комбинации a (основание степени) и s2 (0=< s2 < s) определяется остаток по модулю, отличный от 1 и от (n - 1), то число n - составное. В этом случае количество раундов будет намного меньше. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 13:27 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonавторВ результате: на диапазоне от 5 до 50 000 000 время проверки мини диапазона из 1 000 000 чисел составляет 9 сек. на диапазоне от 350 000 000 до 400 000 000 время проверки мини диапазона из 1 000 000 чисел составляет 12 сек. на диапазоне от 750 000 000 до 800 000 000 время проверки мини диапазона из 1 000 000 чисел составляет 13 сек. на диапазоне от 1 500 000 000 до 1 550 000 000 время проверки мини диапазона из 1 000 000 чисел составляет 13 сек.По этим диапазонам мы сверим с моим алгоритмом. Количество штук.В первом случае - 3001132, во втором - 2532800, в третьем - 2442998 (я изменил диапазон), в четвертом - 2364554 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 14:42 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Нарисовал теоретическую табличку. Primes theoretical взял по формуле. Range Primes Found Primes (theoretical) Elapsed time 3 - 50 000 000 2 820 471 350_000_000 - 400_000_000 2 404 426 700_000_000 - 750_000_000 2 330 675 1_500_000_000 - 1_550_000_000 2 252 774 2^200 +1 - 2^200 + 1 + 50 000 000 7134 2^500 +1 - 2^500 + 1 + 400 000 576 2^1024 +1 - 2^1024 +1 + 400 000 281 Здесь надо в формулу с логарифмом поставить вещественное число (double) для толстых чисел. Вида 2^N + .... Математики. Помогайте. scala> def primesInterval(a : Double, b : Double) : Double = b / Math.log(b) - a / Math.log(a) primesInterval: (a: Double, b: Double)Double scala> scala> primesInterval(3.0 , 50_000_000) res23: Double = 2820468.5898528607 scala> primesInterval(350_000_000 , 400_000_000) res24: Double = 2404426.330841452 scala> scala> scala> primesInterval(700_000_000 , 750_000_000) res25: Double = 2330675.484381996 scala> primesInterval(700_000_000 , 750_000_000) res26: Double = 2330675.484381996 scala> primesInterval(1_500_000_000 , 1_550_000_000) res27: Double = 2252774.7513875216 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 15:31 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Следующие уточнения: 1. Лучше для Range ввести 2 колонки, может быть придётся вычитать. 2. 2-я и 3-я колонки - эти цифры посчитаны алгоритмом, почему они в разных колонках? 3. Что будем заносить в колонку Elapsed time? Время всего диапазона или мини диапазона. У меня иногда "глючит" время - приходится выключать ПК (наверное, охлаждаться). 4. О какой формуле с логарифмом идёт речь? 5. В коде - число за точкой это ....? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 16:19 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy Usov2. 2-я и 3-я колонки - эти цифры посчитаны алгоритмом, почему они в разных колонках? 3. Что будем заносить в колонку Elapsed time? Заполни пожалуйста пустые колонки. Мне просто очень лень рыскать во всех текстах и собирать. Elapsed Time - потраченное время работы алгоритма. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 16:31 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonНарисовал теоретическую табличку. Primes theoretical взял по формуле. Range Primes Found Primes (theoretical) Elapsed time 3 - 50 000 000 2 820 471 8,38 350_000_000 - 400_000_000 2 404 426 9,59 750_000_000 - 800_000_000 2 330 675 10,06 1_500_000_000 - 1_550_000_000 2 252 774 надо пересчитать2^200 +1 - 2^200 + 1 + 1 000 000 7134 2,06 2^500 +1 - 2^500 + 1 + 200 000 576 3,21 2^1024 +1 - 2^1024 +1 + 200 000 281 21,59 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 16:48 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
2 820 471 - это приближённая величина. Я ее взял по формуле плотности простых чисел. А ты впиши туда фактическую. Сколько нашел твой алгоритм. Это как-бы такая проверка. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 16:51 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonНарисовал теоретическую табличку. Primes theoretical взял по формуле. Range Primes Found Primes (theoretical) Elapsed time 3 - 50 000 000 3 001 132 2 820 471 8,38 350_000_000 - 400_000_000 2 532 800 2 404 426 9,59 750_000_000 - 800_000_000 2 442 998 2 330 675 10,06 1_500_000_000 - 1_550_000_000 2 364 554 2 252 774 надо пересчитать2^200 +1 - 2^200 + 1 + 1 000 000 7134 2,06 2^500 +1 - 2^500 + 1 + 200 000 576 3,21 2^1024 +1 - 2^1024 +1 + 200 000 281 21,59 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 17:04 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
По натуральному логарифму. Я осилил посчитать. Деление посчитаю в больших десятичных. А вот как учесть плюс 1 миллион? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 17:19 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonПо натуральному логарифму. Я осилил посчитать. Деление посчитаю в больших десятичных. А вот как учесть плюс 1 миллион?Через о(малое)... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 18:25 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Не понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 18:28 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Тут у вас диалог 2-х посвящённых. Когда закончите, свистните. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 18:29 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovmaytonПо натуральному логарифму. Я осилил посчитать. Деление посчитаю в больших десятичных. А вот как учесть плюс 1 миллион?Через о(малое)...Разница между и очень мала. Разница где-то на 50-м знаке. Это надо обязательно учесть? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 19:01 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovGennadiy Usovпропущено... Через о(малое)...Разница между и очень мала. Разница где-то на 50-м знаке. Это надо обязательно учесть? Да. В этом проблема больших чисал. Эта малая разница встанет в знаменатель и даст нам приближенное количество простых на самом проблемном интревале. На малом криптографическом пороге. На 2^512 степени. А я уверен что у тебя в коде есть слабое место. И эту слабость можно проверить через такую приближённую оценку. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 19:19 |
|
|
start [/forum/topic.php?fid=16&msg=39864080&tid=1339873]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
179ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 234ms |
total: | 528ms |
0 / 0 |