powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Эвристический алгоритм (формула, тест простоты) для определения простых чисел
25 сообщений из 233, страница 4 из 10
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39863524
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я чуть позже построю тот-же график для своего pbfa. Ожидаю что там будет полином.
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39863562
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашел время понять, что такое - асимптоматика.

Но здесь трудно оценить процесс вычисления, поскольку используются процедуры Питона.

Если рассматривать результаты вычислений по времени, то они очень отличаются:
утром ПК считает быстро, а вечером медленнее.

Если в среднем, то для мини диапазона на 500 000 нечётных чисел на проверку уходит 4 - 5 минут уже довольно давно.

А в этом диапазоне числа, разные с точки зрения параметра s.
У 50% s = 1, у 25% s = 2 и т.д.
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39863571
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня было 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
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39863662
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В предыдущем сообщении асимптоматика эвристического алгоритма считается с учётом проверки чисел на делители.
Это ошибочно.

Поэтому для асимптоматики были проведены расчёты эвристического алгоритма без учёта проверки на делители.

В результате:
на диапазоне от 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 простое число)
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39863700
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ результате:
на диапазоне от 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 сек.

По этим диапазонам мы сверим с моим алгоритмом. Количество штук.
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39863702
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на диапазоне от 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.
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39863718
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
exp98Вам надо скорее патентовать его в просчитанном диапазоне.
А то ведь на хабру глянет пара вдумчивых глаз, придёт сюда, и скажет: "Ага!" И бабла у неё будет больше, и возможностей, и выч-х мощностей.
Патентовать - подольше будет, чем считать до ярда, а вот статейку тиснуть можно быстрее.
Так что, не упускай из виду. http://sci-article.ru/articles_current.php

Кажется, получилось "тиснуть" статью в журнал.
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39863751
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy Usov, рано еще писать статьи. Надо баги поискать.
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39863755
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonGennadiy Usov, рано еще писать статьи. Надо баги поискать.В статье описан эвристический алгоритм.
Программа не рассматривается, есть только ссылка на неё.

В статье указаны некоторые исходные данные для программы, но они указаны для чисел до 700 000 000.
Если в программе для больших чисел что-то изменится,
то поменяются исходные данные, но уже в новой возможной публикации.
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39863892
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давно бы так. А то прикидывался шлангом, дескать, писать не умею и не знаю как.
Вопрос от дилетанта. Последнее предложение
авторВ большинстве случаев на отрезке (1, 750 000 000) простое число находится через 15 раундов. число 15 точно не опечатка? будь я в редакции, попросил бы гистограмму распределения кол-ва раундов.
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39863894
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ах ,забыл. Повторю старый вопрос. На месте редакции также попросил бы сравнение со стариной Мюллером по кол-ву раундов, коль скоро взялись Мюллера оптимизировать.
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39863926
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 - составное.
В этом случае количество раундов будет намного меньше.
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39863994
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39864039
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нарисовал теоретическую табличку. 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
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39864067
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Следующие уточнения:

1. Лучше для Range ввести 2 колонки, может быть придётся вычитать.
2. 2-я и 3-я колонки - эти цифры посчитаны алгоритмом, почему они в разных колонках?
3. Что будем заносить в колонку Elapsed time?
Время всего диапазона или мини диапазона.
У меня иногда "глючит" время - приходится выключать ПК (наверное, охлаждаться).
4. О какой формуле с логарифмом идёт речь?
5. В коде - число за точкой это ....?
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39864072
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy Usov2. 2-я и 3-я колонки - эти цифры посчитаны алгоритмом, почему они в разных колонках?
3. Что будем заносить в колонку Elapsed time?

Заполни пожалуйста пустые колонки. Мне просто очень лень рыскать во всех текстах и собирать.

Elapsed Time - потраченное время работы алгоритма.
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39864079
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39864080
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 820 471 - это приближённая величина. Я ее взял по формуле плотности простых чисел. А ты впиши туда фактическую.

Сколько нашел твой алгоритм. Это как-бы такая проверка.
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39864094
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39864107
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По натуральному логарифму.

Я осилил посчитать.



Деление посчитаю в больших десятичных. А вот как учесть плюс 1 миллион?
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39864154
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonПо натуральному логарифму.
Я осилил посчитать.

Деление посчитаю в больших десятичных. А вот как учесть плюс 1 миллион?Через о(малое)...
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39864157
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не понял.
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39864159
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут у вас диалог 2-х посвящённых.
Когда закончите, свистните.
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39864178
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gennadiy UsovmaytonПо натуральному логарифму.
Я осилил посчитать.

Деление посчитаю в больших десятичных. А вот как учесть плюс 1 миллион?Через о(малое)...Разница между и очень мала.

Разница где-то на 50-м знаке. Это надо обязательно учесть?
...
Рейтинг: 0 / 0
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
    #39864181
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gennadiy UsovGennadiy Usovпропущено...
Через о(малое)...Разница между и очень мала.

Разница где-то на 50-м знаке. Это надо обязательно учесть?
Да. В этом проблема больших чисал. Эта малая разница встанет в знаменатель и даст нам приближенное
количество простых на самом проблемном интревале. На малом криптографическом пороге. На 2^512 степени.
А я уверен что у тебя в коде есть слабое место. И эту слабость можно проверить через такую приближённую
оценку.
...
Рейтинг: 0 / 0
25 сообщений из 233, страница 4 из 10
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Эвристический алгоритм (формула, тест простоты) для определения простых чисел
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]