|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Ещё раз рассмотрим тест Миллера-Рабина. Из вики: «Тест Миллера — Рабина – вероятностный полиномиальный тест простоты, позволяет эффективно определить, является ли данное число составным. Однако, с его помощью нельзя строго доказать простоту числа. Тем не менее, тест Миллера — Рабина часто используется в криптографии для получения больших случайных простых чисел.» В тесте Миллера-Рабина имеют место два условия для числа n, связанные с определением степени числа a по mod (n). Число a определяется как случайное число из отрезка (2, n-2). Показатели степени формируются из чисел d и r, где r берется из отрезка (1, s), а d и r определяются формулой , где d – нечётно. Теперь предлагается в условиях теста Миллера-Рабина уйти от использования случайных чисел и перейти на построение эвристического алгоритма. В тесте Миллера-Рабина имеет место две выборки: - случайного числа из отрезка (2, n-2), - перебор чисел из отрезка (1, s). Эвристический алгоритм будет строиться с использованием чисел из отрезков (2, n-2) и (1, s), которые выбираются по определённому закону. Данный закон будет определён после анализа всех возможных вариантов степени числа a по mod (n) для небольших чисел с последующим распространением полученного закона на все последующие числа ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 06:28 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
В сообщении 21958523 были показаны первые результаты анализа всех возможных вариантов степени числа a по mod (n) по первому условию теста Миллера-Рабина для небольших чисел. Анализ возможных вариантов степени числа a по mod (n) по первому условию теста Миллера-Рабина был проведен после выполнения небольшой программы 21959374 . На основании этих анализов были построены две программы, которые: - сначала определяется простое число обычным делением на возможные множители, а затем полученное простое число проверяется с помощью полученного эвристического алгоритма; - сначала определяется простое число с помощью полученного эвристического алгоритма, а затем полученное возможное простое число проверяется с помощью обычным делением на возможные множители. Данные программы проверяли числа от 5 до 250 000 000, и результаты двух программ совпали. Полученный алгоритм позволил определить только половину простых чисел из всего перечня простых чисел до 250 000 000, что совпадает с 21958523 . ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 06:55 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Как видно из сообщения 21958523 , для половины простых чисел при применении первого условия теста Миллера-Рабина остатки по модулю будут либо 1, либо (n – 1). Эвристический алгоритм по первому условию теста Миллера-Рабина будет заключаться в определении последовательности n-3 чисел Р, начиная с числа а = 2: в которой будет только либо 1, либо (n – 1). Для каждого числа рассматривались остатки по модулю для основания степени а, начиная с 2, и до 10 (так удобнее). Это удовлетворяет условию теста Миллера-Рабина для выбора случайных чисел на отрезке (2, n-2). Если исследуемое число меньше 13, то вместо 10 берётся число n-2. Анализ результатов тестовой программы 21959374 показал, что у большинства составных чисел, которые «прошли» тест Ферма, отличие остатков по модулю от 1 или (n – 1), начинается с а <= 5. На диапазоне от 5 до 250 000 000 были найдено несколько составных числа, прошедшие тест Ферма, у которых отличие остатков по модулю от 1 или (n – 1) начинается с а = 6, а для числа 25326001 уже при а = 7 получилось такое отличие. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 08:22 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Теперь можно сформулировать эвристический алгоритм для первого условия теста Миллера-Рабина: Пусть n – нечетное число и , где d – нечётно. Выбирается последовательность чисел а от 2 до 10. Для каждого числа а из этой последовательности определяются числа P на основании формулы Если для всех чисел Р остатки по модулю равны либо 1, либо (n – 1), то число n будет простым числом. Число 10 взято с запасом ( нет превышения 7). Пока подтверждено только одно число 25326001 при а = 7. Можно увеличить число 10. Но для этого нужны проверки для чисел, больших 250 000 000. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 09:18 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy Usov, это Спарта Математика! Забудьте, наконец, все эти эвристики. Если утверждение строго доказано, то это теорема. Если утверждение не доказано и не опровергнуто, то это гипотеза. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 10:06 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Aleksandr SharahovGennadiy Usov, это Спарта Математика! Забудьте, наконец, все эти эвристики. Если утверждение строго доказано, то это теорема. Если утверждение не доказано и не опровергнуто, то это гипотеза.Aleksandr Sharahov, а как Вы не заметили математику в эвристическом алгоритме? В алгоритме присутствует известная всем формула Миллера — Рабина! И доказанная У теста Миллера-Рабина свой порядок поиска чисел для этой формулы. И у меня свой порядок поиска чисел для этой формулы, более оптимальный. И всё... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 11:00 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Как известно, для теста Миллера-Рабина рекомендуется брать r раундов для оценки остатков по модулю, где r = log (n) Для очень больших чисел количество раундов будет то же большое. В эвристическом алгоритме количество раундов 9 (пока). Поэтому, при поиске половины простых чисел используется в несколько раз меньше количество раундов. Таким образом, эвристический алгоритм будет работать быстрее при поиске простых чисел, чем первое условие теста Миллера-Рабина. И самое главное, эвристический алгоритм для первого условия теста Миллера –Рабина является достаточным! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 11:09 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy Usov, Если вы добавили что-то новое к известным теоремам, то, конечно, сможете сформулировать это новое в виде утверждения, т.е. в виде гипотезы или теоремы. Именно это имеет смысл обсуждать, а не "более оптимальные эвристики". ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 11:14 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Немного из вики: Гипотеза – предположение или догадка; утверждение, требующее доказательств. Эвристика - отрасль знания, научная область, изучающая специфику творческой деятельности. Под эвристикой понимают совокупность приёмов и методов, облегчающих и упрощающих решение познавательных, конструктивных, практических задач. У меня не гипотеза, у меня эвристика. В тесте Миллера-Рабина много путей расчета первого условия, при этом применяются раунды, что-бы оценить результаты поиска нужных параметров для выполнения этого условия. Я применяю эвристический алгоритм для первого условия теста Миллера-Рабина, упрощающий поиск нужных параметров для выполнения этого условия. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 11:29 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Было рассмотрено второе условие теста Миллера-Рабина. Для этого условия была аналогично применена программа по определению всех возможных вариантов степени числа a по mod (n) по первому условию теста Миллера-Рабина для небольших чисел. Здесь уже два параметра: s и a. Был проведён анализ этих вариантов. В результате анализа вариантов степеней была подтверждена необходимость объединения двух условий теста Миллера-Рабина в одно условие, а именно, во второе условие для теста Миллера-Рабина. С помощью этого условия и с помощью упрощающего поиска (эвристический алгоритм) нужных параметров для выполнения этого условия можно будет определять большинство простых чисел (или все). Для проведения тестовых работ применяется программа одновременного тестирования числа на наличие делителей и на выполнение второго условия для теста Миллера-Рабина. Если результаты по наличию составных чисел (или наличию простых чисел) совпадут, то эвристический алгоритм для определения простых чисел можно будет строить «на базе» второго условия для теста Миллера-Рабина. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.09.2019, 13:14 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Посмотрел числа Прота – где k – нечётное положительное число. Оказалось, что числами Прота будут все нечётные числа. Однако, почему-то не все нечётные числа были включены в числа Прота. Наверное, из-за формулы числа Прота: Можно сделать следующую таблицу: - все нечётные числа чередуются через 2 числа от 2^0 + 1 - все числа с (s = 1) чередуются через 4 числа от 2^1+1 - все числа с (s = 2) чередуются через 8 чисел от 2^2+1 - все числа с (s = 3) чередуются через 16 чисел от 2^3+1 - все числа с (s = 4) чередуются через 32 чисел от 2^4+1, и т.д., пока не определяться все нечётные числа. Предварительные расчеты показали, что для простых чисел Прота число k будет простым числом. Кстати, уже ранее рассматривались числа Прота 21933488 ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 19:16 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovПосмотрел числа Прота – где k – нечётное положительное число. Оказалось, что числами Прота будут все нечётные числа. Однако, почему-то не все нечётные числа были включены в числа Прота. Надо быть внимательнее и не забыть условие k < 2 s ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 19:42 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneНадо быть внимательнее и не забыть условие k < 2 s Я это условие видел, и, естественно, хочу обсудить это условие. Почему нужно это условие? Из-за формулы? Ведь, если нет этого условия, "покрываются" все нечётные числа. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 19:57 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Просто, именно такие числа Прота "проверяет" на простоту тест Миллера-Рабина, причем проверяет числа при любых k и n. То есть, удобнее числа представлять в виде числа Прота. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2019, 21:05 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
В сообщении 21966343 говорилось о том, что можно составить подмножества как нечётных чисел, так и простых чисел, в зависимости от величины числа s 21962235 . Результат определения числа s для всех простых чисел, начиная с 3, до некоторого числа N (ограничено временем работы ПК) показал, что количество простых чисел с (s = 1) составляет около 50% от всех простых чисел. Далее, - для чисел с (s = 2) количество простых чисел составляет около 25% от всех простых чисел; - для чисел с (s = 3) количество простых чисел составляет около 12,5% от всех простых чисел; - для чисел с (s = 4) количество простых чисел составляет около 6,25% от всех простых чисел; и т.д. То есть, применение достаточного эвристического алгоритма по первому условию теста Миллера-Рабина 21962217 позволяет быть уверенными в том, что определяемые по алгоритму числа будут простыми, и таких простых чисел будет около 50% от всех простых чисел на диапазоне (подмножество простых чисел для s = 1). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2019, 16:53 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Анализ проведённых вычислений показал, что эвристический алгоритм для первого условия теста Миллера-Рабина справедлив для всех тех чисел n, у которых s = 1 (около 50% всех простых чисел). Позднее будет показано, что этот алгоритм справедлив и для ряда чисел, у которых s > 1. Тогда можно немного изменить формулировку этого эвристического алгоритма для первого условия теста Миллера-Рабина 21962235 . Пусть n – нечетное число и имеется формула , где d – нечётное число. Тогда для тех чисел n, у которых s = 1, выбирается последовательность чисел а от 2 до А. Для каждого числа а из этой последовательности определяются числа P на основании формулы Если для всех полученных чисел Р остатки по модулю равны либо 1, либо (n – 1), то число n будет простым числом. Число А выбирается равное 10, с запасом – пока подтверждено только одно число 25326001 при а = 7. Можно увеличить число 10. Но для этого нужны проверки для чисел, больших 250 000 000. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 13:17 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
В качестве применения эвристического алгоритма можно рассмотреть определение простых чисел Мерсенна. Для чисел Мерсенна имеем s= 1. Применение эвристического алгоритма для первого условия теста Миллера-Рабина позволило определить все простые числа Мерсенна Мр (пока до р < 25000) 21958707 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 15:36 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Теперь рассмотрим числа n, у которых s = 2. Оказалось, что для данного варианта подходит формула эвристического алгоритма для первого условия теста Миллера-Рабина (s = 1). Таким образом, появляется единая формула эвристического алгоритма для всего теста Миллера-Рабина. Однако, для случая, когда рассматриваются числа n, у которых s = 2, необходимо некоторое дополнение: если среди последовательности из Р чисел (последовательность чисел а от 2 до А) нет ни одного числа (n – 1), то необходимо повторить работу с формулой эвристического алгоритма при (s – 2). Таким образом, эвристический алгоритм теста Миллера-Рабина для чисел n, у которых s = 2, будет выглядеть следующим образом: Пусть n – нечетное число и имеется формула , где d – нечётно. Тогда для чисел n, у которых s = 2, выбираем последовательность чисел а от 2 до А. Для каждого числа а из этой последовательности определяются числа P на основании формулы Если для всех чисел Р остатки по модулю равны либо 1, либо (n – 1), и при этом существует хоть одно из чисел Р, которое равно (n – 1), то число n будет простым числом. Если среди этой последовательности Р нет чисел, равных (n – 1), то необходим ещё одно определение последовательности чисел Р для чисел а от 2 до А по следующей формуле Если для всех чисел Р новой последовательности остатки по модулю равны либо 1, либо (n – 1), то число n будет простым числом. Поскольку имеется эвристический алгоритм для теста Миллера-Рабина для чисел n, у которых s = 1 или 2, то этот алгоритм позволяет определять уже около 75% простых чисел. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 19:49 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonОн ещё с ребе и Миллером не закончил.Кажется, закончил… И теперь можно обобщить предыдущие исследования и ответить на вопрос о едином эвристическом алгоритме, достаточном, для определения простых чисел. Ранее был получен эвристический алгоритм для теста Миллера-Рабина для чисел n, у которых s = 1 или 2. Были проведены исследования о распространении этого алгоритма на любое число s. В результате можно сказать: получен единый достаточный эвристический алгоритм для теста Миллера-Рабина, который определяет наличие простоты для любого целого положительного числа. Формулировка единого эвристического, достаточного, алгоритма для теста Миллера-Рабина будет следующая: Пусть n – нечетное число и имеется формула , где d – нечётно. Тогда для этого числа n выбирается последовательность чисел а от 2 до А. Для каждого числа а из этой последовательности определяются числа P на основании формулы Если для всех чисел Р остатки по модулю равны либо 1, либо (n – 1), и при этом, только для s > 1, существует хоть одно из чисел Р, которое равно (n – 1), то число n будет простым числом. Если среди этой последовательности Р для s >2 нет чисел, равных (n – 1), то необходим цикл по s2 по определению последовательностей чисел Р для чисел а от 2 до А по следующей формуле где s2 меняется от (s - 2) до 0. Цикл заканчивается следующим образом: - если для всех чисел Р новой последовательности (для s2 = 0) остатки по модулю равны либо 1, либо (n – 1), то число n будет простым числом; - если для всех чисел Р новой последовательности (для s2 > 0) остатки по модулю равны либо 1, либо (n – 1), и при этом существует хоть одно из чисел Р, которое равно (n – 1), то число n будет простым числом; - если одно из чисел Р новой последовательности имеет остатки по модулю, не равные ни 1, ни (n – 1), то число n будет составным. Число А выбирается равное 10, с запасом – пока подтверждено только одно число 25326001 при а = 7. Можно увеличить число 10. Но для этого нужны проверки для чисел, больших 250 000 000. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 20:37 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
А хде исходники на Питоне? Мы тут народ - недоверчивый. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2019, 21:10 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonА хде исходники на Питоне? Мы тут народ - недоверчивый.Заранее прошу меня извинить за стиль программы. Лет 30 не программировал на серьезном языке, только на EXCEL. Была подготовлена программа на Python, в которой решались следующие задачи: - рассматривались все нечётные числа, начиная с 5, далее блоками по 50 000 000; - каждое число проверялось на простоту; - для каждого числа определялось число s; - устанавливался предел по выбору чисел а; - формируется цикл по s; - определяется максимальное число max_a2_1, когда находится число, отличное от 1 или (n – 1); - определяется максимальное число количества раудов по s - max_a2_2; - найденное простое число проверяется на делимость; - отвергнутое число проверяется на делимость; - поскольку много простых чисел, то печатается только их количество на очередном диапазоне чисел со всеми оценочными числами; - в конце печатается количество найденных простых чисел; - печатаются все случаи, если они встретятся, когда программа, либо пропускает простые числа, либо определяет составные числа как простые. По отдельным случаям s программа «доходила» до 250 000 000. По всем s программа пока дошла до 68 200 187. Найдено 1 017 273 простых числа. Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 06:35 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Можно существенно убыстрить работу программы 21969065 . Для этого вводятся дополнительно два цикла: 1. Предварительная проверка числа на делимость, например, до 180 (с учётом корня из числа). 2. Применение теста Ферма к числу. После этого проверка числа на делимость проводится уже с тех 181(с учётом корня из числа). Здесь нужно проводить исследования при выборе этого числа 180: до какого делителя числа лучше применять сначала делители, а уже потом тест Ферма. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 09:03 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovОшибся. Вместо После этого проверка числа на делимость проводится уже с тех 181(с учётом корня из числа). Нужно После этого проверка числа на делимость (с учётом корня из числа). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 09:22 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
У меня - другое число. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 09:29 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonУ меня - другое число.Верно. Забыл приплюсовать 2989855 из другого блока по 50 000 000. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 09:33 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Говоришь загадками. Какой блок? Сколько у тебя получилось? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 09:36 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonГоворишь загадками. Какой блок? Сколько у тебя получилось?Мне удобно работать блоками по 50 000 000 чисел. Это видно по программе. Следующий блок от 50 000 005 и ещё 50 000 000 чисел. И т.д. В первом блоке определилось 3 001 132 простых чисел. От 50 000 005 (начало второго блока) до 68 200 187 найдено 1 017 273 простых числа. Итого на диапазоне от 5 до 68 200 187 было найдено 4 018 405 простых чисел. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 13:24 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Итого 4018407 минус 2 числа (2 и 3) получается 4 018 405 Теперь поговорим об оптимизациях. Вырожденный Миллер Рабин превращается в метод грубой силы? Или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 15:20 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonТеперь поговорим об оптимизациях. Вырожденный Миллер Рабин превращается в метод грубой силы? Или нет?Тест Миллера-Рабина (сами формулы) остаётся в силе. Просто меняется последовательность поиска параметров для формул теста Миллера-Рабина. В эвристическом алгоритме: Для 50 % чисел достаточно для проверки только 9 раундов (автоматически - может быть меньше) расчета по формулам теста Миллера-Рабина. Для других 25 % чисел достаточно для проверки только 9 раундов (автоматически - может быть меньше) расчета по формулам теста Миллера-Рабина, а также иногда имеет место 2-й этап (автоматически) - ещё 9 раундов (автоматически - может быть меньше) . И т.д. По тесту Миллера-Рабина: количество раундов равно log( p ). И считать по двум формулам, И то - то ли простое число, то ли нет. Разница есть? Это для начала оптимизации... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 15:38 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Ещё одно наблюдение при тестировании программы. Предварительное определение множителей чисел (метод грубой силы до определённого множителя) позволяет уменьшить количество применяемых циклов для величины s2 21968895 , что помогает уменьшить среднее время при определении простоты для каждого из этих чисел. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.09.2019, 21:07 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Решил проверить программу на числах 2^1024. Для этого поменял немного заставку программы - смотрел 5000 чисел после 2^1024: Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Получилось: 2019-09-13-06.04.01 -643 -blok-a- 643 -s- 1 -1081 -blok-a- 1081 -s- 3 -2113 -blok-a- 2113 -s- 6 -2715 -blok-a- 2715 -s- 1 -3711 -blok-a- 3711 -s- 1 -N blok- 5 2019-09-13-06.04.09 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2019, 06:12 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2019, 16:41 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Сколько времени он у тебя работал? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2019, 17:15 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonСколько времени он у тебя работал?Эвристический алгоритм для формул теста Миллера-Рабина окончательно "сформировался" дня три назад. До этого были пробные тесты для s = 1, для s = 2, для s = 3. После этого был пробный тест для всех s. Поскольку ПК - старенький, то прогон проводился для отдельных s до 250 000 00, а для всех s - до 68 000 000. Стараюсь запускать программу тогда, когда нахожусь рядом. Поскольку для небольших n всё проходит, то наступает "эвристика". Можно распространять на большие числа. В частности, был прогон для чисел около 2^1024. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2019, 17:47 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Надо оценить асимптоматику. Не вычислить. А именно оценить. Для этого надо сделать штук 5 запусков С линейно меняющимся параметром И засечь с точностью до секунд время. После этого посмотреть в Экселе график И прикинуть что это. Полином? Экспонента? Etc. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2019, 19:00 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonНадо оценить асимптоматику. Не вычислить. А именно оценить. Для этого надо сделать штук 5 запусков С линейно меняющимся параметром И засечь с точностью до секунд время. После этого посмотреть в Экселе график И прикинуть что это. Полином? Экспонента? Etc.Ваши предложения по диапазонам? Нужно ли предварительное деление? Нужен ли предварительный тест Ферма? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2019, 19:02 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Выше ты делил по 50 лимонов. Вот пускай так и будет. По Ферма не понял. Мы ведь один алгоритм обсуждаем? Или несколько? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2019, 20:03 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Основные параметры эвристического алгоритма: - число значений s2; - число раундов при одном s2, после которого узнаём, что число составное ( остаток не равен ни 1, ни (n - 1)) - число значений s2, после которых определяется простое число. По каждому значению можно определить мax или min на некотором интервале чисел (у меня либо 200000, либо 1000000). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2019, 20:05 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonВыше ты делил по 50 лимонов. Вот пускай так и будет. По Ферма не понял. Мы ведь один алгоритм обсуждаем? Или несколько?Ферма по любому быстрее определяет множество чисел, среди которых все простые числа. Ведь тест Ферма - это один раунд. Тест Миллера-Рабина - это несколько раундов. Причём, это по всем числам: и составным, и простым. Мне видится следующий подход: тест Ферма ограничивает количество чисел, среди которых все простые числа, а тест Миллера-Рабина (с эвристическим алгоритмом или с другим алгоритмом) "зачищает" полученные числа, выбирая из них только простые числа. Это моё видение процесса поиска простых чисел, при этом ещё в начале процесса поиска - деление на небольшие множители. Можно рассмотреть вопрос применения одного эвристического алгоритма для формул теста Миллера-Рабина, и сравнить результат применения алгоритма с результатами теста Ферма. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2019, 20:17 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Сейчас у меня заканчилась работа программы для второго диапазона: от 50 000 005 до 100 000 005. На этом диапазоне получено 2760321 простых чисел. Программа не ошиблась - среди полученных простых чисел нет составных чисел. Вначале программы идёт проверка на множители до 643 (так решил), далее тест Ферма, далее алгоритм. И даже в таком виде диапазон из 1 000 000 чисел рядом с числом 100 000 000 программа "проходит" за 3 минуты. Применение множителей и Ферма, как я уже говорил ранее, позволило уменьшить количество изменений значений s2 для одного числа до 4 (ранее были случаи 7 ). Основное значение количества раундов (а1) при одном значении s2, когда выявляется составное число, в основном - значение 3, но есть случаи, когда встречается значение 5, очень редко 7. (обращаю внимание - значения нечётные) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2019, 20:31 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Вот ты мастак все усложнять. Я хотел посмотреть имеет ли смысл изучать твой Питонский исходник. И хотел посмотреть его отклик. Знаешь как в радиоэлектронике. Подали входной сигнал. Встали осцилографом на выход. Посмотрели. Поменяли сигнал и т д. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2019, 20:36 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Убрал все добавления, оставил один эвристический алгоритм. Программа считает. На 2 000 000 чисел 148932 простых. Время работы 1,5 минуты. Программа продолжает работу... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2019, 21:02 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Нужно хотя-бы 5 точек на плоскости чтоб мы построили график зависимости времени от параметра алгоритма. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2019, 22:32 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Геннадий? Куда-то пропал. Или построение 5 измерений так долго? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2019, 14:05 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonГеннадий? Куда-то пропал. Или построение 5 измерений так долго?Не пропал. Продолжаю считать. Уже прошёл (с остановками) число 153 000 000. Есть интересное число 133800661, разбирался с ним. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2019, 14:14 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Так долго? Ладно побей на интервалы поменьше. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2019, 15:37 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonТак долго? Ладно побей на интервалы поменьше.В начале на диапазон в 1 000 000 чисел уходило 1,5 минуты. На отметке 175 000 000 уходит уже 2,5 минуты ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2019, 15:43 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Ну дык... цифры есть? 4-5 штук. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2019, 15:45 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonНу дык... цифры есть? 4-5 штук.Сейчас основные цифры, которые печатаются после мини диапазона (1 000 000), это: - на каком раунде (а1) выявляется составное число (максимальное по мини диапазону); - сколько может быть значений s2 (максимум на мини диапазоне) - дополнительные 9 раундов на каждое значение. На текущий момент max a1 - очень редко 7, один раз - 11, а для s2 - почти всегда 4. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2019, 16:14 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Прошел 250 000 000. В конце этого диапазона время обработки мини диапазона увеличилась до 3 мин. 09 сек. На текущий момент max a1 - очень редко 7, а для s2 - почти всегда 4, редко 5,6, один раз 8. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2019, 19:29 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Кто из вас на хабр пишет вот это? https://habr.com/ru/post/466887/ https://habr.com/ru/post/467203/ https://habr.com/ru/post/467463/ ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 06:42 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneКто из вас на хабр пишет вот это? https://habr.com/ru/post/466887/ https://habr.com/ru/post/467203/ https://habr.com/ru/post/467463/ Это хорошо или это плохо? Но не я. Хотя было бы в дальнейшем интересно прочитать. Уж очень много лирики! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 06:57 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Почему кто-то из нас? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 08:57 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonПочему кто-то из нас?Теперь на нас всё будут списывать. Как в том анекдоте: чуть что, так .... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 09:50 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
это не мы, там нет слова "'эвристический" ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 09:51 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Наш вклад в теорию чисел пока слишком ничтожен. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 12:49 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonПочему кто-то из нас?Много общего с этой с соседними темами. А лирики и правда много. И не очень строго математически. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 14:57 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Прошел 350 000 000. В конце этого диапазона время обработки мини диапазона увеличилась до 3 мин. 42 сек. На текущий момент max a1 - очень редко 7, а для s2 - почти всегда 4, редко 5.[/quot] ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 15:19 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Озвучьте уже, плз, для постороннего. Обсуждаемый предмет, имеет строгое доказательство? Например сокращение вычислений лишь предполагается или свершившийся факт? Обсуждаемые алгоритмы сравниваются на одинаковом диапазоне? Статус достоверности/правдоподобности алгоритмов одинаков? чей статус весомее? Насколько значим этот диапазон? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 19:05 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
exp98Озвучьте уже, плз, для постороннего. Обсуждаемый предмет, имеет строгое доказательство? Например сокращение вычислений лишь предполагается или свершившийся факт? Обсуждаемые алгоритмы сравниваются на одинаковом диапазоне? Статус достоверности/правдоподобности алгоритмов одинаков? чей статус весомее? Насколько значим этот диапазон?1. Насчет доказательства: (из вики) "Эвристический алгоритм (эвристика) — алгоритм решения задачи, включающий практический метод, не являющийся гарантированно точным или оптимальным, но достаточный для решения поставленной задачи." 2. Эвристический алгоритм предполагает уменьшение количества вычислений. 3. Эвристический алгоритм проверяется, начиная с 1, с помощью делителей. Диапазоны появились, так как программа считает долго. Поэтому проверка идёт диапазонами. 4. "Статус достоверности/правдоподобности алгоритмов одинаков? чей статус весомее?" - это о чём? Алгоритм один. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 19:21 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Прошел 400 000 000. В конце этого диапазона время обработки мини диапазона увеличилась до 4 мин. 53 сек. На текущий момент max a1 - очень редко 7, а для s2 - почти всегда 4, редко 5, 6. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 19:24 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Ты попутно веди учот количеству найденных простых. Если где-то проскочит ложное значени то мы сможем сравнить с PBFA и найти его. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 19:33 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy Usov, и никаких упоминаний родительского алгоритма? т.е. новый сам по себе, и ни с чем не сравнивается? поставленной задачи - и какова она, постановка? Вы и в суде тоже будуте на свистипедию сыслаться? гаишнику тоже на неё пенять? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 19:47 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovДиапазоны появились, так как программа считает долго. Поэтому проверка идёт диапазонами. попробую другими словами: Различаются ли множества чисел, пригодных к тестированию, для сравниваемых алгоритмов? (я не спрашиваю про процент прохождения теста) 4. "Статус достоверности/правдоподобности алгоритмов одинаков? чей статус весомее?" - это о чём? Алгоритм один. Это об онтологическом статусе вашего и "сравниваемого(мых)" алгоритма. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 19:55 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
exp98Gennadiy UsovДиапазоны появились, так как программа считает долго. Поэтому проверка идёт диапазонами. попробую другими словами: Различаются ли множества чисел, пригодных к тестированию, для сравниваемых алгоритмов? (я не спрашиваю про процент прохождения теста) 4. "Статус достоверности/правдоподобности алгоритмов одинаков? чей статус весомее?" - это о чём? Алгоритм один. Это об онтологическом статусе вашего и "сравниваемого(мых)" алгоритма.Алгоритм проверяется на всех нечётных числах, начиная с 1. Каждое нечётное число проверяется на делители и на эвристический алгоритм. Пока нет случаев, когда число, прошедшее алгоритм, имело делители. Пока нет случая, когда число, имеющее делителей, прошло алгоритм. Существующие алгоритмы - вероятностные, у меня - эвристический алгоритм, без использования вероятности. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 20:10 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Вам надо скорее патентовать его в просчитанном диапазоне. А то ведь на хабру глянет пара вдумчивых глаз, придёт сюда, и скажет: "Ага!" И бабла у неё будет больше, и возможностей, и выч-х мощностей. Патентовать - подольше будет, чем считать до ярда, а вот статейку тиснуть можно быстрее. Так что, не упускай из виду. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 21:00 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovПока нет случаев, когда число, прошедшее алгоритм, имело делители. Пока нет случая, когда число, имеющее делителей, прошло алгоритм. Осталось понять, были ли случаи, когда число, прошедшее алгоритм, не имело делителей, когда число, имеющее делителей, не прошло алгоритм, когда число, не прошедшее алгоритм, имело делителей, когда число, не имеющее делителей, прошло алгоритм, когда число, не прошедшее алгоритм, не имело делителей, когда число, не имеющее делителей, не прошло алгоритм. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2019, 21:27 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Замечено, что время расчета на мини диапазоне может меняться среднее время. Например, вечером, при завершении диапазона 400 000 000 время работы на мини диапазоне было около 4 мин. 53 сек. 2019-09-15-18.46.09 -perep- 397000099 2381160 23578929 0 5 4 2019-09-15-18.50.58 -perep- 398000101 2431740 24080651 0 2 4 2019-09-15-18.55.52 -perep- 399000103 2482096 24582290 0 3 4 2019-09-15-19.00.45 Сейчас утро, обрабатывается следующий диапазон, и на мини диапазоне время работы уже 3 мин 50 сек. 2019-09-16-06.46.29 -perep- 402000009 100834 1003457 0 3 4 2019-09-16-06.50.16 -perep- 403000011 151317 1505094 0 2 4 2019-09-16-06.54.03 -perep- 404000013 201794 2006786 0 3 4 2019-09-16-06.57.50 Может быть, компьютер старенький, или ещё что-нибудь ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2019, 07:15 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Винда чем-либо занята, диск фрагментирован, какое-нить свопирование на диск не постоянно ... (анти)вирус ... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2019, 17:22 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
exp98, он пишет на Питоне. Это не очень быстрый язык. Но в нашем топике нужна не абсолютная быстрота а оценка асимптоматики. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2019, 17:23 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Прошел 500 000 000. 019-09-16-17.38.35 -perep- 496000097 2303201 23076481 0 3 4 2019-09-16-17.44.39 -perep- 497000099 2353085 23578171 0 3 4 2019-09-16-17.50.43 -perep- 498000101 2403048 24079773 0 3 4 2019-09-16-17.57.19 -perep- 499000103 2452945 24581438 0 5 4 2019-09-16-18.03.52 В конце этого диапазона время обработки мини диапазона увеличилась до 6 мин. 33 сек. На текущий момент max a1 - очень редко 7, есть один раз 11. а для s2 - почти всегда 4, редко 5, есть один раз 7. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2019, 18:42 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Прошел 750 000 000. 2019-09-18-15.20.45 -perep- 748000101 2352519 24078107 0 3 4 2019-09-18-15.25.43 -perep- 749000103 2401212 24579746 0 3 3 2019-09-18-15.30.49 -N blok- 2450249 3 4 В конце этого диапазона время обработки мини диапазона составляет 5 мин. 06 сек. На текущий момент max a1 - очень редко 7. а для s2 - почти всегда 4, редко 5, есть один раз 6. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 16:25 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Ну дык. График хде? Хде график-та? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 17:12 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonНу дык. График хде? Хде график-та?График чего от чего? Программа выдаёт основные параметры алгоритма по мини диапазонам: время работы мини диапазона величина а1 величина s2 количество простых чисел ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 18:06 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
mayton, это называется: "Я под вашу дудку не пляшу." ... |
|||
:
Нравится:
Не нравится:
|
|||
18.09.2019, 18:51 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#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 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonGennadiy UsovРазница между и очень мала. Разница где-то на 50-м знаке. Это надо обязательно учесть?Да. В этом проблема больших чисал. Эта малая разница встанет в знаменатель и даст нам приближенное количество простых на самом проблемном интревале. На малом криптографическом пороге. На 2^512 степени. А я уверен что у тебя в коде есть слабое место. И эту слабость можно проверить через такую приближённую оценку.Но у нас нет точной формулы количества простых чисел на интервале. Только оценка количества. Так что, там допуск, здесь допуск... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 19:35 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Нам нужно сравить твой алгоритм с чем-то эталонным. Самое простое сравнение на малых числах - это гонять решето и метод грубой силы. Для толстых чисел я пока придумал просто учет количества. Если он не прокатит - я попробую метод isProbablePrime. Поскольку твой метод считает точное количество - мы можем делать взаимные сверки. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 19:40 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonНам нужно сравить твой алгоритм с чем-то эталонным. Самое простое сравнение на малых числах - это гонять решето и метод грубой силы. Для толстых чисел я пока придумал просто учет количества. Если он не прокатит - я попробую метод isProbablePrime. Поскольку твой метод считает точное количество - мы можем делать взаимные сверки.Метод грубой сила или что-то подобное "заканчивается" где-то далеко от 2^1024. Один известный мне "калькулятор - определение простых чисел" работает только до 2^420. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 19:52 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
По поводу толстых натуральных логарифмов я создам отдельный топик. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2019, 19:57 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2019, 12:11 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Хотел ещё уточнить. Вы писали, что эталонный мюллер работает со скор-ю ln(n) или что-то подобное. Но ведь это теоретическая оценка? Мне непонятно, может на практике он работает как получится? и может очень часто получается гораздо быстрее, нет? у вас чевой-то говорилось про раунды, про то, про сё. Может в большинстве случаев всё как у вас? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2019, 19:00 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
exp98Хотел ещё уточнить. Вы писали, что эталонный мюллер работает со скор-ю ln(n) или что-то подобное. Но ведь это теоретическая оценка? Мне непонятно, может на практике он работает как получится? и может очень часто получается гораздо быстрее, нет? у вас чевой-то говорилось про раунды, про то, про сё. Может в большинстве случаев всё как у вас?В тесте Миллера-Рабина упор идёт на вероятность. Он не знает, что делать с получаемыми числами: у многих составных чисел по разным a и s иногда "выскакивают" нужные для простых чисел значения остатков по модулю. А раз есть вероятность, то надо быть уверенным: чем больше нужных чисел, тем большая уверенность. Появился log(n) для полной уверенности. Часть составных чисел быстро "вылетают" - там нет нужных для простых чисел величин. А у другой части составных чисел "большое засилье" таких величин. У меня простая система, без вероятностей, с определённым количеством раундов, проверенная уже на числах от 5 до 930 000 000. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2019, 19:32 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Прошел число 1 000 000 000. -perep- 998000131 3045476 31524295 0 5 3 2019-09-21-11.58.37 -perep- 999000133 3093917 32024662 0 3 3 2019-09-21-12.04.52 -N blok- 3141866 3 3 В конце этого диапазона время обработки мини диапазона составляет 6 мин. 15 сек. На текущий момент max a1 - очень редко 7, иногда 11,13. а для s2 - почти всегда 4, редко 5, есть один раз 7 и 8. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2019, 13:23 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Добавил колонку average speed. Range Primes Found Primes (theoretical) Elapsed time Average Speed (primes/sec)3 - 50 000 000 3 001 132 2 820 471 8,38 358 130350_000_000 - 400_000_000 2 532 800 2 404 426 9,59 264 108750_000_000 - 800_000_000 2 442 998 2 330 675 10,06 242 8421_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 3 4632^500 +1 - 2^500 + 1 + 200 000 576 3,21 1792^1024 +1 - 2^1024 +1 + 200 000 281 21,59 13 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 00:26 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonДобавил колонку average speed. Range Primes Found Primes (theoretical) Elapsed time Average Speed (primes/sec)3 - 50 000 000 3 001 132 2 820 471 8,38 358 130350_000_000 - 400_000_000 2 532 800 2 404 426 9,59 264 108750_000_000 - 800_000_000 2 442 998 2 330 675 10,06 242 8421_500_000_000 - 1_550_000_000 2 364 554 2 252 774 11,04 2^200 +1 - 2^200 + 1 + 1 000 000 7134 2,06 3 4632^500 +1 - 2^500 + 1 + 200 000 576 3,21 1792^1024 +1 - 2^1024 +1 + 200 000 281 21,59 13 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2019, 10:08 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Добавил 100 тысяч на диапазоне 2048 бит. Вот данные для проверки. Две таблички надо соединить. Но уже поздно. Я засыпаю. Range Primes Found(Usoff) Primes Found(JDK::BigInteger) Primes (theoretical) Elapsed time(s) Average Speed (primes/sec)2^200 +1 - 2^200 + 1 + 1 000 0007135611892^500 +1 - 2^500 + 1 + 200 00057722882^1024 +1 - 2^1024 + 1 + 200 0002828352^2048 +1 - 2^2048 + 1 + 100 00079272 Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 00:50 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Здесь я выскакиваю за range. Код: java 1. 2. 3. 4.
Последний инкремент - лишний. Поэтому от всех результатов можно вычесть 1. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 09:28 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Поскольку появилась новая строка в таблице, то решил ещё раз эту строку пересчитать (не помню, чтобы считал диапазон на 100000) 2^2048 +1 - 2^2048 + 1 + 100 000 Определено 78 простых чисел. Программа считала с 2019-09-30-11.35.28 по 2019-09-30-13.14.28 ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 13:19 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Это мы протестили генерацию простых на крипто-диапазоне. 2^2048 e.t.c. В принципе Рабин-Миллер+Люка и создавались для этого. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 13:40 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonЭто мы протестили генерацию простых на крипто-диапазоне. 2^2048 e.t.c. В принципе Рабин-Миллер+Люка и создавались для этого.Так это прекрасное сообщение! Мы расходимся в одном числе! (79 и 78) Прекрасно! ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 14:12 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Яж говорю. Я допустил ошибку. Самое последнее простое число превышает правую границу. Поэтому надо делать мину 1 ко всем моим результатам. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 14:45 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Но не обольщайся. Миллер-Рабит хоть и шумит но имеет шанс поймать составное. Тоесть несколько запусков Миллера - выровняют картинку. У тебя-же 100% детерминизм. Невыявленная ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 14:56 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonНо не обольщайся. Миллер-Рабит хоть и шумит но имеет шанс поймать составное. Тоесть несколько запусков Миллера - выровняют картинку. У тебя-же 100% детерминизм. Невыявленная ошибка.Или строгая формула (алгоритм) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 15:13 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovmaytonНо не обольщайся. Миллер-Рабит хоть и шумит но имеет шанс поймать составное. Тоесть несколько запусков Миллера - выровняют картинку. У тебя-же 100% детерминизм. Невыявленная ошибка.Или строгая формула (алгоритм) Рано хвастаешся. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 17:05 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Почему Primes (theoretical) до сих пор не заполнено? Может это тоже теперь эвристика для всех последующих диапазонов. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 17:34 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Ребята я все не успеваю. Заполните плиз табличку. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 18:06 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Это любой же может. Ну дык ведь я теперь девочка для набивки, с длинными ноготочками. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
....... и так далее )) Можно даже не считать уже Достаточно делить и умножать предыдущее. Но вы пока это посчитайте ... а я потом ещё оценок подкину. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 22:06 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Опровержение) RangePrimes(theoretical)2^200+1млн71612^500+200тыр5752^1024+200тыр2812^2048+100тыр702^4096+500тыр1762^4096+1млн3522^8192+500тыр882^8192+1млн176 Модератор: Поправил ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2019, 22:10 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Я говорю табличку заполните. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 11:28 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
mayton, я первым это сказал. И потом, кто больше всех заинтересован в пиаре этой темы, того пусть и тапки. Имхо, отчёты и презентации - занятие для благородных особ, а я - золушка, мне бы вечером принц приехал на серебрянном коне. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 14:38 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Усов - твой принц. Его ответственность что-то доказывать. Наша позиция - позиция критиков. Мы - опровергаем. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 15:14 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonУсов - твой принц. Его ответственность что-то доказывать. Наша позиция - позиция критиков. Мы - опровергаем.Что конкретно опровергаете? А то много чего есть на форуме. Много чего и вашего (от слова - мы). ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 15:17 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Не скажу. Иш ты какой хитрый. Вот скажу - тогда побежишь исправлять. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 15:25 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Раз ничего нет, значит, и исправлять нечего Строгое математическое доказательство ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2019, 15:30 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Ну я-то скорее скептик, чем критик. И скажу крылатыми словами: Такой принц нам не нужен! Gennadiy UsovРаз ничего нет, значит, и исправлять нечего Строгое математическое доказательствоХотелось бы верить ... да только в суде так строго бывает: на "Нэт!" и суда нет(цэ) Нет, а ну-ка, погоди, что значит "ничего нет"? т.е. все ку-ка-ре-ку - лажа? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2019, 22:32 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Интересная ситуация получается Есть эвристический алгоритм для определения всех простых чисел. Есть упрощения алгоритма для определения всех чисел Мерсенна и их окружения. Есть упрощение алгоритма для быстрого поиска 50% простых чисел. Конечно, с учётом возможностей ПК. И вдруг:maytonНаша позиция - позиция критиков. Мы - опровергаем.ДалееGennadiy UsovЧто конкретно опровергаете?И итогmaytonНе скажу. Иш ты какой хитрый. Вот скажу - тогда побежишь исправлять.А это вообще ни в какие ворота не лезетexp98Ну я-то скорее скептик, чем критик. И скажу крылатыми словами: Такой принц нам не нужен! Gennadiy UsovРаз ничего нет, значит, и исправлять нечего Строгое математическое доказательствоХотелось бы верить ... да только в суде так строго бывает: на "Нэт!" и суда нет(цэ) Нет, а ну-ка, погоди, что значит "ничего нет"? т.е. все ку-ка-ре-ку - лажа?А где логика с математикой? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 05:53 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonРебята я все не успеваю. Заполните плиз табличку.Кстати, mayton, а как поживает табличка? "Завяла"? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 06:07 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Усов. Алгоритм чего ты разработал? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 08:32 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 09:40 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonУсов. Алгоритм чего ты разработал?Справка из начала сообщения 21985510 : Есть эвристический алгоритм для определения всех простых чисел. Есть упрощение алгоритма для определения всех чисел Мерсенна и их окружения. Есть упрощение алгоритма для быстрого поиска 50% простых чисел. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 10:03 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Шикарно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 10:03 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Всё уже придумано до нас. Усов, если вы думаете, что придумали что-то новое, то вы ошибаетесь, все это уже известно, просто вы плохо искали. Придумал я как-то раз, как как можно добавить в сообщение контрольных битов, чтобы можно было не только обнаружить, что один из битов сообщения по дороге изменился, но и узнать какой именно, и исправить его. А оказалось, что Хэмминг придумал то же самое еще 50 лет назад. Или вот тесты простоты и факторизация. Что делает тест Миллера-Рабина? Он фактически пытается убедиться в том, что порядок мультипликативной группы вычетов по модулю P делит P-1. По теореме о структуре конечной абелевой группы порядок любого элемента группы делит порядок группы. И если мы находим элемент, порядок которого не делит P-1 - значит число составное. А можно, используя делители P-1, доказать простоту числа , не перебирая делители самого P. И есть метод факторизации - p-1 метод Полларда - предполагая, что N=P*Q, пытаемся, перебрав все возможные делители P-1, получить единицу по модулю P. Повторюсь, всё это базируется на мультипликативной группе вычетов по модулю P. А если взять другую группу? Возьмем например матрицы 2х2. Умножение матриц не коммутативно, плохо, группа не абелева. Но можно выбрать коммутативную подгруппу. Например, для матриц вида Код: plaintext 1. 2.
Код: plaintext 1. 2.
Ну вот у нас есть абелева группа решений уравнения Пелля. А давайте рассмотрим их по модулю простого числа P, и поинтересуемся порядком этой группы. Оказывается, что если n квадратичный вычет по модулю P, то порядок этой группы равен P-1, а если n квадратичный невычет, то порядок равен P+1. Первый случай неинтересен, такая группа изоморфна мультипликативной группе вычетов по модулю P. А вот случай невычета можно рассмотреть поподробнее. Тут можно построить тест простоты по аналогии с Ферма: найдем n такое, что символ Якоби (n/P) был равен -1 и решение уравнения Пелля для этого n. Возведем это решение в степень P+1 по модулю P. Убедимся, что получили тривиальное решение (1,0). Или даже аналог Миллера-Рабина: представим P+1 в виде 2 s d, d нечетно. Возводим начальное решение в степень d, и убеждаемся, что либо сразу получили (1,0), либо, после не более s возведений в квадрат, (-1,0). И вот придумал я значит эту конструкцию, проверил, что работает, а потом посмотрел повнимательней - а оказалось, что Люка это уже больше ста лет назад придумал. Только описано оно у него немножко по другому - через последовательности Люка . Последовательности Люка определяются как линейные рекуррентные последовательности V n и U n , параметризованные парой коэффициентов P, Q. Но можно получить матричное представление: считаем дискриминант характеристического многочлена D = P*P - 4Q и подставляем в матрицу Код: plaintext 1.
И P+1 метод факторизации также можно описать через степени решений уравнения Пелля вместо последовательностей Люка. Так что всё придумано до нас... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 10:30 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneВсё уже придумано до нас. Усов, если вы думаете, что придумали что-то новое, то вы ошибаетесь, все это уже известно, просто вы плохо искали. ..... Так что всё придумано до нас...Вы ещё забыли указать, что: и квадратный корень до меня придумали, и модульное исчисление до меня придумали, и тест Миллера-Рабина до меня придумали. И много других формул. И непонятно, каким образом все идеи и методы, что Вы перечислили в сообщении, помогают определять простые числа. Это инструменты для решения проблемы определения простых чисел. А теперь у меня к Вам вопросы: 1. А где написано, что числа Мерсенна определяет ещё какой-нибуть тест, кроме теста Люка-Лемера, да ещё с сопоставимой скоростью ? 2. Где написано, что можно БЕЗ ВЕРОЯТНОСТИ определять ВСЕ простые числа (с учётом мощности ПК)? 3. Где написано, что можно за менее 4-х раундов для каждого числа определять 50% ВСЕХ простых чисел (с учётом мощности ПК)? Говорите конкретно, а не пересказывайте всю высшую математику. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 10:49 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
И главное, кто определял простые числа в окрестности чисел Мерсенна? Плюс 4, плюс 8, плюс 12 и т.д. А эвристический алгоритм определяет такие числа. То есть, кроме последовательности простых чисел Мерсенна Mn = 2^n - 1 эвристический алгоритм определяет простые числа Mnk = 2^n - 1 + k, k = 4, 8, 12, 16, 20, ... Это тоже уже было? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 11:17 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy Usov1. А где написано, что числа Мерсенна определяет ещё какой-нибуть тест, кроме теста Люка-Лемера, да ещё с сопоставимой скоростью ? 2. Где написано, что можно БЕЗ ВЕРОЯТНОСТИ определять ВСЕ простые числа (с учётом мощности ПК)? 3. Где написано, что можно за менее 4-х раундов для каждого числа определять 50% ВСЕХ простых чисел (с учётом мощности ПК)? 1. Тест Люка-Лемера для простоты проверки 2 p -1 требует p-1 возведений в квадрат. Возведение в степень 2 p-1 -1 потребует p-2 возведений в квадрат плюс p-2 умножений, что минимум в два раза медленнее, а с учетом того, что возведение в квадрат быстрее, чем умножение произвольных чисел, более чем в два раза медленнее. Для поиска максимальных известных простых чисел это весьма существенно - там каждое число на обычном компьютере проверяется несколько месяцев. 2. Для математиков, пока вы строго математически не ДОКАЗАЛИ, что ваш алгоритм действительно это определяет, он не имеет никакого значения. А с практической точки зрения, для криптографических целей комбинация одного раунда Миллера-Рабина с тестом Люка достаточна. 3. Опять же, для математиков 50% простых - совсем не интересно. Либо вы доказываете теорему, которая выполняется для всех простых, либо это никому не нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 12:02 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Barlone3. Опять же, для математиков 50% простых - совсем не интересно. Либо вы доказываете теорему, которая выполняется для всех простых, либо это никому не нужно.Как сказать... Согласно тесту Миллера-Рабина для очень больших чисел N количество раундов при поиске простого числа составляет около log(N). Допустим, нужно быстро найти несколько простых чисел на диапазоне очень больших чисел. И для этого диапазона находится 50% простых чисел всего за 4 раунда. Это никому не нужно? Например, найти быстро очередное (не следующее) простое число. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 12:23 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Barlone2. Для математиков, пока вы строго математически не ДОКАЗАЛИ, что ваш алгоритм действительно это определяет, он не имеет никакого значения.А эвристический алгоритм и не надо доказывать по определению. То что, алгоритм работает, доказано проведёнными расчётами на диапазоне чисел от 5 до 1 000 000 000. Программа приведена на топике. Далее, согласно эвристике, алгоритм можно распространить на большие числа. Barlone А с практической точки зрения, для криптографических целей комбинация одного раунда Миллера-Рабина с тестом Люка достаточна. Данное утверждение не совсем верно. Данные тесты - вероятностные. Следовательно, есть вероятность сразу "попасть", а есть вероятность "промахнуться" с одного раза. Что выбираете? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 12:31 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Вот на этих числах свой алгоритм проверьте: https://oeis.org/A074773 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 12:34 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Вот еще хорошее число: 3825123056546413051 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 12:37 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Barlone1. Тест Люка-Лемера для простоты проверки 2 p -1 требует p-1 возведений в квадрат. Возведение в степень 2 p-1 -1 потребует p-2 возведений в квадрат плюс p-2 умножений, что минимум в два раза медленнее, а с учетом того, что возведение в квадрат быстрее, чем умножение произвольных чисел, более чем в два раза медленнее. Для поиска максимальных известных простых чисел это весьма существенно - там каждое число на обычном компьютере проверяется несколько месяцев.Сошлюсь на эвристику (практика - это сила) ... Взял из вики описание теста Люка-Лемера и написал программу на Питоне. Взял эвристический алгоритм (одно уравнение) и написал программу на Питоне. Обе программы определяли простые числа Мерсенна Mn для n < 20000. Дальше - программа очень медленно работала. Результаты работы программ совпали: по простым числам и почти по времени (несколько процентов). При отдельном прогоне конкретного простого числа иногда эвристический алгоритм чуточку обгонял тест по времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 12:50 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovСошлюсь на эвристику (практика - это сила) ...... но не доказательство. Любое число подтверждений в конкретных частных случаях не позволяет доказать гипотезу, зато единственное опровержение требует отвергнуть гипотезу. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 12:55 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovВзял из вики описание теста Люка-Лемера и написал программу на Питоне. На питоне? Да, хороший вариант для измерения скорости :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:00 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneВот еще хорошее число: 3825123056546413051Программа оценила число: 2019-10-03-13.00.20 -число- 3825123056546413053 -Нет простых чисел- 0 2019-10-03-13.00.20 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:01 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovПрограмма оценила число: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:04 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneGennadiy UsovВзял из вики описание теста Люка-Лемера и написал программу на Питоне. На питоне? Да, хороший вариант для измерения скорости :)Но сравнивались две прогроммы на Питоне. Я же не говорю о времени работы программ. Я говорю об одинаковых условиях для двух программ: старенький ПК, Питон. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:06 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
А насчет практики - есть такое число Скьюза . Это про гипотезу, что количество простых чисел, не превосходящих n, меньше чем интегральный логарифм li(n). Она выполняется до 10 316 , а потом перестает выполняться... Вы свой алгоритм хотя бы до 10 316 проверяли? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:08 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovЯ говорю об одинаковых условиях для двух программ: старенький ПК, Питон.И что? Вот я в детстве иногда лепил из пластилина. Кое-что из моих "творений" даже стояло дома на видном месте. И что? Кому и зачем всё это может быть интересно? P.S. "Всё" - не столько мои излияния, сколько ваши "труды". Уж не обижайтесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:10 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Basil A. SidorovGennadiy UsovПрограмма оценила число: Код: plaintext 1. 2. 3.
что среди представленных чисел (одно число в перечне) 0 простых чисел. (слово "нет" - лишнее, убираю) 2019-10-03-13.09.54 -число- 3825123056546413053 -простых чисел- 0 2019-10-03-13.09.54 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:11 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovBarloneпропущено... На питоне? Да, хороший вариант для измерения скорости :)Но сравнивались две прогроммы на Питоне. Я же не говорю о времени работы программ. Я говорю об одинаковых условиях для двух программ: старенький ПК, Питон.Не, просто питон известен своей тормознутостью... Хотя, вы в степень то наверное встроенной функцией возводили? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:11 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovBasil A. Sidorovпропущено... Этот загадочный ответ сообщает, что число простое или как?Программа "приняла" число и "сказала", что среди представленных чисел (одно число в перечне) 0 простых чисел. (слово "нет" - лишнее, убираю) 2019-10-03-13.09.54 -число- 3825123056546413053 -простых чисел- 0 2019-10-03-13.09.54Эй, у меня последняя цифра была 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:15 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovПрограмма "приняла" число и "сказала", что среди представленных чисел (одно число в перечне) 0 простых чисел. (слово "нет" - лишнее, убираю)"Ясвасхудею". А выдать что-то вроде: Код: plaintext 1. 2.
Ну или учитывая, что простые числа, типа, "редкие", по мере проверки просто печать список "эвристически простых", а по итогу выдать общую статистику? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:16 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovBarloneВот еще хорошее число: 3825123056546413051Программа оценила число: 2019-10-03-13.00.20 -число- 3825123056546413053 -Нет простых чисел- 0 2019-10-03-13.00.20не то число ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:16 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneGennadiy Usovпропущено... Программа оценила число: 2019-10-03-13.00.20 -число- 3825123056546413053 -Нет простых чисел- 0 2019-10-03-13.00.20не то числоРазобрался. У меня цикл по нечётным числам с шагом 2 на диапазоне, я назначил число и ограничил на +1, а цикл (на то он и цикл) прибавляет и сравнивает с ограничителем. А печать идёт после выхода из цикла. Внутри цикла составные числа программе не нужны, поэтому эти числа там не печатаются. Исправил (отнял 2): 2019-10-03-13.19.53 -число- 3825123056546413051 -простых чисел- 0 2019-10-03-13.19.53 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:26 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneА насчет практики - есть такое число Скьюза . Это про гипотезу, что количество простых чисел, не превосходящих n, меньше чем интегральный логарифм li(n). Она выполняется до 10 316 , а потом перестает выполняться... Вы свой алгоритм хотя бы до 10 316 проверяли?На топике считал для некоторой таблички числа порядка 2^2048. На диапазоне 2^1024 количество простых чисел на диапазоне совпало с расчётом mayton. А вопрос один - с чем сравнивать, как проверять. Делители "будут очень долго считать"... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:34 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovBarloneпропущено... не то числоРазобрался. У меня цикл по нечётным числам с шагом 2 на диапазоне, я назначил число и ограничил на +1, а цикл (на то он и цикл) прибавляет и сравнивает с ограничителем. А печать идёт после выхода из цикла. Внутри цикла составные числа программе не нужны, поэтому эти числа там не печатаются. Исправил (отнял 2): 2019-10-03-13.19.53 -число- 3825123056546413051 -простых чисел- 0 2019-10-03-13.19.53Не сходится с тем, что вы про свой алгоритм рассказываете... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:42 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Basil A. SidorovGennadiy UsovПрограмма "приняла" число и "сказала", что среди представленных чисел (одно число в перечне) 0 простых чисел. (слово "нет" - лишнее, убираю)"Ясвасхудею". А выдать что-то вроде: Код: plaintext 1. 2.
Ну или учитывая, что простые числа, типа, "редкие", по мере проверки просто печать список "эвристически простых", а по итогу выдать общую статистику?Согласен. Поскольку задают вопросы, нужно привести программу в порядок: красиво оформить выходные данные. Хотя программы должно быть две (дубляж): для диапазона и для отдельного числа. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:45 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneGennadiy UsovРазобрался. У меня цикл по нечётным числам с шагом 2 на диапазоне, я назначил число и ограничил на +1, а цикл (на то он и цикл) прибавляет и сравнивает с ограничителем. А печать идёт после выхода из цикла. Внутри цикла составные числа программе не нужны, поэтому эти числа там не печатаются. Исправил (отнял 2): 2019-10-03-13.19.53 -число- 3825123056546413051 -простых чисел- 0 2019-10-03-13.19.53Не сходится с тем, что вы про свой алгоритм рассказываете...И где расхождение? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:47 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
n = 3825123056546413051 n-1 = 2 1 *1912561528273206525 a (n-1)/2 mod n равно 1 или n-1 для всех a от 2 до 36... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 13:51 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Barlonen = 3825123056546413051 n-1 = 2 1 *1912561528273206525 a (n-1)/2 mod n равно 1 или n-1 для всех a от 2 до 36...Хороший пример! У меня записано: "Число А выбирается равное 10, с запасом – пока подтверждено только одно число 25326001 при а = 7. Можно увеличить число 10. Но для этого нужны проверки для чисел, больших 250 000 000." Просто увеличиваем А до 15 простых чисел! То есть до 47. И смотрим дальше. Ещё есть примеры? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 14:58 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 15:33 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Насчет простых чисел поторопился... У числа 3825123056546413051 log (n) = 42... Поэтому ставим А = 42 и рассматриваем все числа от 2 до 42. Число 36 - попадает. Ещё раз уточнил старые расчёты. Для тестовых расчётов log (1 000 000 001) = 20. Мне встречались числа 11, 13, 15. Поэтому, A = log (n). И в тесте Миллера-Рабина log (n). Однако ушли от вероятности. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 15:36 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovНасчет простых чисел поторопился... У числа 3825123056546413051 log (n) = 42... Поэтому ставим А = 42 и рассматриваем все числа от 2 до 42. Число 36 - попадает. Ещё раз уточнил старые расчёты. Для тестовых расчётов log (1 000 000 001) = 20. Мне встречались числа 11, 13, 15. Поэтому, A = log (n). И в тесте Миллера-Рабина log (n). Однако ушли от вероятности. Эх, опять промахнулись... 3317044064679887385961981 - вот тут уже 43 надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 15:41 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
А насчет простых то как раз всё правильно: понятно, что если a m mod n = 1 и b m mod n = 1 то и (ab) m mod n = 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 15:44 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84.
Вот вам тест простоты на питоне, вызывать isprime(n) - проверяйте, ищите контрпримеры. Это как раз Люка. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 15:46 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Точнее, один раунд Ферма Соловея-Штрассена плюс Люка ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 15:53 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Поторопился, если подсунуть квадрат очень большого числа, math.sqrt вычисляется с ошибкой, и в цикле поиска квадратичного невычета зависает... Поправил. Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 16:10 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
С куском отладочного кода в конце :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 16:13 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneЭх, опять промахнулись... 3317044064679887385961981 - вот тут уже 43 надо.А вот и нет! Здесь s = 2. При s = 1 одни 1 и (n - 1) до 42. А при s = 0 при 2 сразу составное! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 16:23 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneПоторопился, если подсунуть квадрат очень большого числа, math.sqrt вычисляется с ошибкой, и в цикле поиска квадратичного невычета зависает... Поправил.Спасибо! А если пройтись по всем нечётным, где s = 1, и считать 1 и (n - 1) до "выбывания"? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 16:32 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneGennadiy UsovВзял из вики описание теста Люка-Лемера и написал программу на Питоне. На питоне? Да, хороший вариант для измерения скорости :) В нашем случае это норм вариант. Тут-же принципиальная возможность изучается. Перформанс - второе дело. Тем более что для Питона есть библиотеки поддержки длинных. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 16:45 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovBarloneЭх, опять промахнулись... 3317044064679887385961981 - вот тут уже 43 надо.А вот и нет! Здесь s = 2. При s = 1 одни 1 и (n - 1) до 42. А при s = 0 при 2 сразу составное!Не понял, это как? Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 17:26 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Будем категоризировать числа на "простые", "составные" и "неизвестные"? Это было-бы честно в данном топике. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 17:30 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Что-то у меня сомнения, не наврал ли я в спешке где-то в алгоритме... Надо перепроверить еще раз ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 17:39 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneGennadiy UsovЗдесь s = 2. При s = 1 одни 1 и (n - 1) до 42. А при s = 0 при 2 сразу составное!Не понял, это как? Код: plaintext 1. 2. 3. 4. 5.
(0, 806966215798523717614900L, 2) (0, 1L, 3) (0, 3317044064679887385961980L, 4) (0, 1L, 5) (0, 806966215798523717614900L, 6) (0, 806966215798523717614900L, 7) (0, 2510077848881363668347081L, 8) Уже при основании степени 2 видно, что остаток не равен ни 1, ни (n - 1). А раз этот остаток не равен, то исходное число - составное. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 17:50 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovBarloneпропущено... Не понял, это как? Код: plaintext 1. 2. 3. 4. 5.
(0, 806966215798523717614900L, 2) (0, 1L, 3) (0, 3317044064679887385961980L, 4) (0, 1L, 5) (0, 806966215798523717614900L, 6) (0, 806966215798523717614900L, 7) (0, 2510077848881363668347081L, 8) Уже при основании степени 2 видно, что остаток не равен ни 1, ни (n - 1). А раз этот остаток не равен, то исходное число - составное.Чего? 13 - 1 = 2 2 *3 Берем основание 2, 2 3 = 8, это не 1 и не 12 по модулю 13. 13 - составное число? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 19:39 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneЧто-то у меня сомнения, не наврал ли я в спешке где-то в алгоритме... Надо перепроверить еще разРазобрался. Небольшая неточность, которая не влияет на результат проверки. Неканонично получилось, результат возведения в степень поделен пополам, но и сравнивается с единицей, а не с 2. Вобщем, можно не исправлять. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 19:51 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneЧего? 13 - 1 = 2 2 *3 Берем основание 2, 2 3 = 8, это не 1 и не 12 по модулю 13. 13 - составное число?Уговорил. Будет 56. Тем более, что log = 56. Я забыл, что по алгоритму сначала (s - 1), а потом (s - 2) и т.д. А не наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 19:55 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneBarloneЧто-то у меня сомнения, не наврал ли я в спешке где-то в алгоритме... Надо перепроверить еще разРазобрался. Небольшая неточность, которая не влияет на результат проверки. Неканонично получилось, результат возведения в степень поделен пополам, но и сравнивается с единицей, а не с 2. Вобщем, можно не исправлять.Да, а вот с квадратным корнем надо что-то сделать. 2^1023 еще лезет, а 2^1024 говорит "OverflowError: int too large to convert to float" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 19:59 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Ну теперь вот так: Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99.
Ищем простые от 2^1024 - нашлись 2^1024 + (643, 1081, 2113, 2715, 3711) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 20:12 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneBarloneпропущено... Разобрался. Небольшая неточность, которая не влияет на результат проверки. Неканонично получилось, результат возведения в степень поделен пополам, но и сравнивается с единицей, а не с 2. Вобщем, можно не исправлять.Да, а вот с квадратным корнем надо что-то сделать. 2^1023 еще лезет, а 2^1024 говорит "OverflowError: int too large to convert to float"У меня то же самое. Либо без корня (я не использую корень на больших числах), либо "делить" на части и перемножать. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 20:45 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneИщем простые от 2^1024 - нашлись 2^1024 + (643, 1081, 2113, 2715, 3711)Ещё 5335, 5793, 5947, 7015, 7447, 7935, 8953, 8995, 9855. 1 мин. 48 сек. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 20:50 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovBarloneИщем простые от 2^1024 - нашлись 2^1024 + (643, 1081, 2113, 2715, 3711)Ещё 5335, 5793, 5947, 7015, 7447, 7935, 8953, 8995, 9855. 1 мин. 48 сек.У меня секунд за 15 те же. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 21:19 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Наконец послушали специалиста. Вы уж там разбирайтесь, но так скоропалительно, а то быстро 30 страниц набежит типа "о-опс, ошибка", "блин, снова ошибся", "ёлы-палы, поспешил" ... ну вы помните. И мой вопрос затеряется, и никто не ответит(( А вопрос у меня сбоку от ваших проблем. Почему остановились на 2^2k ? и диапазон 100тыс хиленький. Мог бы кто-нибудь найти кол-во простых в след-х дипаз-х (для сравнения с оценкой, к-рую я давал 2-3 дня назад): Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
Попутно интересно отработать модные теперь эвристики для погрешности оценки. Это чтобы не вычислять типа 1/(Ln x - 2) для больших x и т.п. Интересно посмотреть насколько относительная погрешность апроксимируется величиной sqrt(1/f(x)), где f(x) есть кол-во простых в диапазоне. И тогда абсолютная погрешность sqrt(f(x)). Вообще я догадываюсь, что далеко не всегда так будет, но на нашем скудном материале даже различие 70 и 79 примерно на границе такой погрешности (прикидывал на бумажке, без калькулятора). А тоя смотрю, как после p=1024 относит-я погр-ть скакнула в 1000 раз для p=2K(2024) Ну и сами диапазоны в будущем хочется подлиннее. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2019, 21:27 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
exp98, чтобы такие диапазоны обсчитывать, надо бы с питона на что-то более быстрое перейти. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 05:14 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneGennadiy UsovЕщё 5335, 5793, 5947, 7015, 7447, 7935, 8953, 8995, 9855. 1 мин. 48 сек.У меня секунд за 15 те же.С предварительным делением на малые множители или нет? И ПК у меня старенький. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 05:59 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
exp98Наконец послушали специалиста. Почему остановились на 2^2k ? и диапазон 100тыс хиленький. Попутно интересно отработать модные теперь эвристики для погрешности оценки. Это чтобы не вычислять типа 1/(Ln x - 2) для больших x и т.п. Интересно посмотреть насколько относительная погрешность апроксимируется величиной sqrt(1/f(x)), где f(x) есть кол-во простых в диапазоне. И тогда абсолютная погрешность sqrt(f(x)). Вообще я догадываюсь, что далеко не всегда так будет, но на нашем скудном материале даже различие 70 и 79 примерно на границе такой погрешности (прикидывал на бумажке, без калькулятора). А тоя смотрю, как после p=1024 относит-я погр-ть скакнула в 1000 раз для p=2K(2024) Ну и сами диапазоны в будущем хочется подлиннее.Что нам даёт погрешность от "специалиста"? Вот и sqrt после p=1024 не работает, и "скакнула" скорость после p=1024. И всё. Есть формула количества, а есть расчёты. Уточняем формулу или уточняем расчёты? У одного 70, у другого 79, а что у "специалиста" - неизвестно. И что это даёт? Наверное не формулу, а что-то другое ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 06:28 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Barloneexp98, чтобы такие диапазоны обсчитывать, надо бы с питона на что-то более быстрое перейти.Обсчитали, и что это даст? Будем прыгать и радоваться, что посчитали около 2^(какое-то)? Кого сейчас этим удивишь, когда существуют мощные компьютеры. Другое дело, если создаётся удобный математический аппарат, который убыстряет процесс определения простых чисел. При этом формируется достаточность. Чтобы сравнивать алгоритмы, надо считать не время, а считать раунды. Ведь формулы везде одинаковы, что у нас, что в Африке. Только каждый их по разному применяет Раунды не зависят ни от языка, ни от ПК. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 06:39 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy Usov Чтобы сравнивать алгоритмы, надо считать не время, а считать раунды. Почти правильно. Я добавлю что надо считать не время а некие элементарные мат-операции которые надо выполнить чтобы достичь результата. И оценить как эти операции растут от объема данных. Обычно - нелинейно. И есть также заблуждение о том что умножение занимает единицу времени. Для длинных целых чисел умножений зависит квадратично от разрядной сетки числа. Это тоже надо учитывать. Как - не знаю но надо. Если всё правильно оценить - получим асимптоматику. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 11:16 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy Usov Чтобы сравнивать алгоритмы, надо считать не время, а считать раунды. "Сколько времени придётся ждать?" - это я понимаю. "Сколько раундов будет сделано?" - не понимаю, да и какая мне разница??? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 11:22 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovЧто нам даёт погрешность от "специалиста"? ... Уточняем формулу или уточняем расчёты?Вам - ничего, мне - удовольствие. Каждый косит свой газон. Да вы и свои рассчёты не торопились ещё недавно уточнять, что изменилось вдруг? Не принц, конечно, но что есть,то есть, за сколько мне вам отдаться? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 11:44 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Basil A. Sidorov, я не вдаюсь в подробности, видимо это некая агрегированная прмежуточная величина алгоритма. Возможно пропорциональная вычислительной сложности этого модуля. Щас речь не о пользователях. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 11:47 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Basil A. SidorovGennadiy Usov Чтобы сравнивать алгоритмы, надо считать не время, а считать раунды. "Сколько времени придётся ждать?" - это я понимаю. "Сколько раундов будет сделано?" - не понимаю, да и какая мне разница???Почитайте про тест Миллера-Рабина https://ru.wikipedia.org/wiki/Тест_Миллера_—_Рабина Там всё написано про раунды. Главная трудность работы тестов простоты - это количество раундов. Этим количеством увеличивают вероятность получения нужного числа случайным образом. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 15:06 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovГлавная трудность работы тестов простоты - это количество раундов. Этим количеством увеличивают вероятность получения нужного числа случайным образом.Я читал. Вопрос был другой. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 15:11 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
А вот интересная задача (по поводу определения раундов) import math a1= math.sqrt(1000000000000000000000001)//1 a2 = math.sqrt(1000000000000000000000000000000000000000000001)//1 print (a1, a2) И печать результатов: (1000000000000.0, 3.1622776601683792e+22) Вот почему одно число целое, а другое число вещественное? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 15:59 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Что-то у меня на диапазоне 200000 с 2 2048 нашлось 151 число. Черт возьми, надо было их вывести, а не просто посчитать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 16:09 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovА вот интересная задача (по поводу определения раундов) import math a1= math.sqrt(1000000000000000000000001)//1 a2 = math.sqrt(1000000000000000000000000000000000000000000001)//1 print (a1, a2) И печать результатов: (1000000000000.0, 3.1622776601683792e+22) Вот почему одно число целое, а другое число вещественное?А черт его знает, надо в исходники питона смотреть. Вот вам целочисленный корень: Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 16:12 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Спасибо! Сейчас попробую ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 16:16 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovА вот интересная задача (по поводу определения раундов) import math a1= math.sqrt(1000000000000000000000001)//1 a2 = math.sqrt(1000000000000000000000000000000000000000000001)//1 print (a1, a2) И печать результатов: (1000000000000.0, 3.1622776601683792e+22) Вот почему одно число целое, а другое число вещественное?А вообще-то первое тоже вещественное - там же в конце ".0". Просто во втором нечетное количество ноликов, и в 52 бита (точность мантиссы в double) оно не лезет, поэтому в экспоненциальной форме ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 16:25 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneЧто-то у меня на диапазоне 200000 с 2 2048 нашлось 151 число. Черт возьми, надо было их вывести, а не просто посчитать.Перепроверил, на 60 раундов Соловея-Штрассена, все простые: 2 2048 +... (981,1617,3063,3211,4143,7405,9843,10665,10725,11097,11467,13137,13333,15703,17001, 17787,18523,21397,24963,25405,26697,26935,30475,31627,34005,34431,35281,35763,36535, 37653,38841,39825,42637,43965,44281,45303,46303,46995,49957,54613,54873,57325,62847, 65377,65545,67701,67953,68415,68535,68941,69493,69543,72207,75775,76413,76647,77797, 78003,81081,81093,81795,83335,83593,84397,84463,89023,89835,89965,90127,90147,90993, 93795,94593,97455,97707,98077,99867,99945,100431,105435,107025,107385,107851,109197, 111343,115911,115941,116667,117601,123327,124381,125523,129051,130453,130551,130773, 131203,131301,131877,132915,133221,133651,134085,135751,135771,136383,136711,137443, 141901,147783,148455,150997,152751,153097,153817,155013,155191,156027,156057,157543, 160747,162385,162747,162891,164191,166843,167001,172603,173373,174157,175503,176563, 180081,182811,183397,184021,184167,186235,187017,187803,192091,192883,193107,193635, 193831,194205,195321,196261,197587,198213,199425) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 18:11 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Надо базу вести. Типа "Простые числа по версии Соловея-Штрассена". Потом еще базу. Простые по версии Усова. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2019, 18:14 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Прогнал через свой вариант теста все числа до 2 32 . Количество найденных простых совпало с количеством простых, полученных решетом. Также сравнил список до 2 24 . Ничего лишнего, ничего не пропущено. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2019, 07:06 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Попробовал перейти на раунды. Пусть раунд - это обращение к основной формуле: pow(a1, t2, p). Все остальные операторы не так затратны по времени, особенно для больших чисел. Тогда: -проверка чисел от- 5 -до - 1000005 -количество простых чисел- 78497 -количество раундов - 3482972 -минимальное количество раундов для числа - 1 -количество минимальных раундов - 421362 -максимальное количество раундов для числа - 39 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2019, 11:19 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Далее, ещё интереснее. Пусть ограничитель для проверки числа 39 раундов. Для чисел после 2**1024-1 в количестве 10000 получается следующая картинка: 2019-10-05-12.59.02 -количество простых чисел- 14 -количество раундов - 1733 -минимальное количество раундов для числа - 1 -количество минимальных раундов - 1185 -максимальное количество раундов для числа - 39 -количество максимальных раундов - 546 -остаток- 2 2019-10-05-12.59.27 То есть, программа либо сразу сообщает, что число составное, либо все 39 раундов для простого числа. И всего 2 раунда на более сложную проверку. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2019, 13:11 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Небольшое уточнение. В предыдущем сообщении представлена распечатка работы программы, когда имеются делители до 100. Та же программа, в которой нет делителей, выдаёт следующий результат: -количество простых чисел- 14 -количество раундов - 5520 -минимальное количество раундов для числа - 1 -количество минимальных раундов - 4986 -максимальное количество раундов для числа - 38 -количество максимальных раундов - 532 -остаток- 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2019, 20:26 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Интересно. Во главе угла криптографии стоит операция деления. как некий бастион который ограничивает перформанс криптоанализа. Что-бы мы не делали а эта операция в стеке - принципиально не оптимизируема. Я думал о машинной реализации. Судя по описаниям она принципиально не отличается от классического деления в столбик с той разницей что работает двоичная логика вычитаний. И я подумал - а какую собсвенно пользу можно извлечь из результата деления. В классическом варианте любая операция машинного деления на самом деле делает больше. Она фиксирует остаток. Кроме того если мы используем делители достаточно длинные по разрядной сетке но имеющие вид последовательности простых то делители не будут сильно отличаться. Фактически от шага к шагу меняются младшие разряды делителя. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2019, 22:10 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Ещё пример работы программы: Пусть ограничитель для проверки числа 39 раундов. Для чисел после 2**2048-1 в количестве 10000 получается следующая картинка: -количество простых чисел- 7 -количество раундов - 5261 -минимальное количество раундов для числа - 1 -количество минимальных раундов - 4993 -максимальное количество раундов для числа - 38 -количество максимальных раундов - 266 -остаток- 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2019, 06:26 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Далеко не для каждого составного числа найдется "свидетель простоты" по Рабину-Миллеру, то есть основание, по которому это число будет псевдопростым. На самом деле, такие составные числа, для которых существует хотя бы один свидетель простоты, довольно редки. Но уж если один свидетель простоты существует для некоего составного числа, то их (свидетелей) для этого числа обязательно будет несколько: все они будут корнями какой-то степени из единицы по модулю одного из делителей этого составного числа. Вот именно потому, что свидетели простоты по Миллеру-Рабину всегда появляются пачками, выгоднее не гонять кучу раундов, а использовать другой, независимый тест Люка, который опирается не на мультипликативную группу вычетов, а на другую группу. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2019, 17:59 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneДалеко не для каждого составного числа найдется "свидетель простоты" по Рабину-Миллеру, то есть основание, по которому это число будет псевдопростым. На самом деле, такие составные числа, для которых существует хотя бы один свидетель простоты, довольно редки. Но уж если один свидетель простоты существует для некоего составного числа, то их (свидетелей) для этого числа обязательно будет несколько: все они будут корнями какой-то степени из единицы по модулю одного из делителей этого составного числа. Вот именно потому, что свидетели простоты по Миллеру-Рабину всегда появляются пачками, выгоднее не гонять кучу раундов, а использовать другой, независимый тест Люка, который опирается не на мультипликативную группу вычетов, а на другую группу.Тест Люка тоже выполняет серию раундов (основание степени, степень, модуль). Почему нельзя посчитать количество этих раундов для различных чисел? Тест Люка вероятностный, следовательно, получаются псевдопростые числа. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2019, 18:15 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Конечно тест Люка вероятностный. Я вообще не про то. Вот есть списки сильных псевдопростых чисел по разным основаниям. Так вот, далеко не каждое число попадет хотя бы в один такой список. Ну то есть, можно перебрать например все составные нечетные числа n от 15 до 9999, и для каждого перебрать все основания от 2 до n-2 и провести тест Миллера-Рабина. Получить список составных чисел, являющихся псевдопростыми хотя бы по одному основанию. Потом получить аналогичный список для теста Люка - то есть провести тест по всем вариантам параметров, которые могут использоваться для этого теста, и выписать псевдопростые по Люка хотя бы по одному варианту параметров. А потом проверить, есть ли в этих двух списках совпадения. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2019, 19:49 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneКонечно тест Люка вероятностный. Я вообще не про то. ... можно перебрать например все составные нечетные числа n от 15 до 9999, и для каждого перебрать все основания от 2 до n-2 и провести тест Миллера-Рабина. Получить список составных чисел, являющихся псевдопростыми хотя бы по одному основанию. Потом получить аналогичный список для теста Люка - то есть провести тест по всем вариантам параметров, которые могут использоваться для этого теста, и выписать псевдопростые по Люка хотя бы по одному варианту параметров. А потом проверить, есть ли в этих двух списках совпадения. Есть два варианта: совпадают и не совпадают. А что дальше? Надо говорить об этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2019, 20:00 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy UsovBarloneКонечно тест Люка вероятностный. Я вообще не про то. ... можно перебрать например все составные нечетные числа n от 15 до 9999, и для каждого перебрать все основания от 2 до n-2 и провести тест Миллера-Рабина. Получить список составных чисел, являющихся псевдопростыми хотя бы по одному основанию. Потом получить аналогичный список для теста Люка - то есть провести тест по всем вариантам параметров, которые могут использоваться для этого теста, и выписать псевдопростые по Люка хотя бы по одному варианту параметров. А потом проверить, есть ли в этих двух списках совпадения. Есть два варианта: совпадают и не совпадают. А что дальше? Надо говорить об этом.Есть гипотеза, что совпадений не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2019, 20:44 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneGennadiy Usov Есть два варианта: совпадают и не совпадают. А что дальше? Надо говорить об этом.Есть гипотеза, что совпадений не будет.Кто бы сомневался. Если не совпадает, то что делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2019, 20:57 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
BarloneЧто-то у меня на диапазоне 200000 с 2 2048 нашлось 151 число. А ты мне отвечал, что долго считать. За это личное спасибо. Может всё же сочтёшь кол-во персонально для меня ещё диапазончик 2^4096 +500000, предварительная оценка [ 176,05 + - 13,268 ] ?? Вроде не намного и дольше считать, раз в 5-6 ... я думаю. Мне только кол-во. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2019, 14:53 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
maytonGennadiy Usov, я несколько раз обращался к тебе с просьбой собрать отклик твоего кода через равные промежутки интервалов. Я хотел построить график. И по нему оценить асимптоматику. Это важно. Важные даже не числа а форма графика. Парабола. Экспонента. Или x в степени x как некая ссылка на комбинаторную сложность. Но мне показалось что данные у тебя беспорядочны и их мало и я отбросил эту затею.Насколько я помню, последними таблицами были 21976531 и 21982245 . В последнем сообщении была фраза:maytonДобавил 100 тысяч на диапазоне 2048 бит. Вот данные для проверки. Две таблички надо соединить. Но уже поздно. Я засыпаю.А далее - maytonЯ говорю табличку заполните.В табличках есть параметры: диапазон, количество простых чисел и время работы программы на диапазоне. Спрашивается: каких параметров не хватает? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.10.2019, 13:27 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Barlone Gennadiy UsovBarloneИщем простые от 2^1024 - нашлись 2^1024 + (643, 1081, 2113, 2715, 3711) 1 мин. 48 сек.У меня секунд за 15 те же.На каждом ПК и на каждом языке программирования свои скорости. В работе 22011445 рассматривался эвристический алгоритм для определения простых чисел в окрестности чисел Mn = 2^n – 1. Кроме того, была проведена оценка размера таких окрестностей с точки зрения отсутствия возможности получения составных чисел при работе эвристического алгоритма. Поэтому для чисел 2^1024-1 и 2^2048-1 размер такой окрестности будет составлять намного больше, чем 10000 чисел. Следовательно, в этой окрестности при рассмотрении очередного числа достаточно одно вычисление вида «pow». Допустим, это "рабочий диапазон". Для чисел 2^1024-1 и 2^2048-1 рабочий диапазон имеет место как со знаком +, так и со знаком -. Исследования на ПК для диапазона из 10000 чисел показали, что: для знака + эвристический алгоритм работает на 4% медленнее оператора pow. для знака - эвристический алгоритм работает на 3% быстрее оператора pow. Вне рабочего диапазона (например, очень далеко от чисел 2^1024-1 и 2^2048-1), по всей видимости, необходимо несколько проверок вида «pow». ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2019, 16:40 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy Usov Следовательно, в этой окрестности при рассмотрении очередного числа достаточно одно вычисление вида «pow». Допустим, это "рабочий диапазон". ... Вне рабочего диапазона (например, очень далеко от чисел 2^1024-1 и 2^2048-1), по всей видимости, необходимо несколько проверок вида «pow». Поэтому, если нужно быстро найти простые числа, то можно их найти в так называемом "рабочем диапазоне" от числа Мерсенна. И для этого достаточно одно обращение к pow3. Вне "рабочего диапазона" потребуется уже несколько обращений к pow3, или несколько обращений к операторам pow с другим основанием степени. При этом напоминаю, что для чисел Mnk, у которых k кратно 4, "рабочий диапазон" будет намного больше, чем для остальных чисел Mnk. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.11.2019, 09:42 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Прошу тебя, друг Аркадий Геннадий, не говори красиво!(цэ): Gennadiy Usov Кроме того, была проведена оценка размера таких окрестностей с точки зрения отсутствия возможности получения составных чисел при работе эвристического алгоритма. Почти ничего не понял в ваших словах, но благодаря следущей строчке: Gennadiy Usov Поэтому для чисел 2^1024-1 и 2^2048-1 размер такой окрестности будет составлять намного больше, чем 10000 чисел. Наоборот, если исходить из прикида, что на дальности 1млн от 2^2K кол-во простых можно оценить как наиболее вероятный интервал 72тыс +- 268, то тогда уже на дальности 3620 весьма вероятно 1 простое. А на дальности 10тыс их весьма вероятно 5. Соответственно, ведя отсчёт от 2^K, в 10тыс поместится простых 11-12 штук. Кстати другим способом на дальности 10тыс от 2^K их оценивается 14.4 +- 4. К сож, теорвер не позволяет мне оценить точнее малые кол-ва (точнее конечно будет не на бумажке). Я это всё к тому, что как-то не понятна фраза про "намного больше, чем 10000". ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2019, 00:09 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
exp98 Фразу "отсутствия возможности получения составных" интерпретировал как диапазон, гарантирующий (с хорошей долей вероятности) наличие хоть 1 простого. Оценивал на бумажке. Почему-то у меня не получается "намного больше, чем 10000". где эвристический алгоритм определяет сколько угодно чисел, которые будут простыми числами, причём ни одно из определённых чисел не будет составным числом. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2019, 07:52 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
авторРабочий диапазон есть диапазон чисел, где эвристический алгоритм определяет сколько угодно чисел, которые будут простыми числами, причём ни одно из определённых чисел не будет составным числом. Видите, даже попытка разъяснить боле-мене конкретный вопрос, всё равно приводит к двусмысленности. Писать по-русски ведь тоже ещё уметь надо. Тем более технический текст. Обычно почему-то полагается, что читатель проделал к этому моменту тот же самый мыслительный путь, и важно, что остановился на том же самом месте, что и писатель. И тогда целиком воспроизводится ситуация анекдота: "Да пошла ты наф со своим утюгом!" Однако практически всегда это не так. Но такой писатель никогда не оценивает со стороны, как писанина будет воспринята. Это не только ваша особенность, большинство прогеров так же пишут. То же самое относится к вашей самооценке правильности собственной программы, сам сделал, сам написал и ку-ка-ре-ку. А вы все верьте. Я уже не говорю о спец. подборе слов для выражения мысли ... Как же меня задрали за всю жизнь эти "постановщики задач", приходят и начаинают с "прерваного места". И вы ещё тут ... вот почти и не читаю, но только прочту, блин ... А попытка одной фразой ответиь на неск. вопросов ?.. Вашу двусмысленность наверное (я лищь предполагаю) можно было бы ликвидировать. Но "сколько угодно чисел", да ещё "которые будут простыми" ... наверное это бесконечность, да? впихнутая в конечный диапазон! Как вариант: РД есть диапазон чисел, в к-ром ЭАGUОПЧ безошибочно определяет любое составное число как составное. И всё равно остаётся необъяснённым вопрос, не пропускает ли ЭА при этом ПЧ, ошибочно принимая их за составное? (о том, что некто некогда как-то где-то это проверял, я наслышан) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2019, 17:36 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
exp98 авторРабочий диапазон есть диапазон чисел, где эвристический алгоритм определяет сколько угодно чисел, которые будут простыми числами, причём ни одно из определённых чисел не будет составным числом. безошибочно определяет любое составное число как составное.Наверное, так будет проще для читателя. Хотя, любой тест простоты определяет простоту чисел, то есть, "отсекает" составные числа. exp98 И всё равно остаётся необъяснённым вопрос, не пропускает ли ЭА при этом ПЧ, ошибочно принимая их за составное? (о том, что некто некогда как-то где-то это проверял, я наслышан) Поэтому на моём ПК получается проверить только до 2^32-1 +k. А дальше - эвристика... Хотите верьте, хотите нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2019, 18:18 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
exp98 авторРабочий диапазон есть диапазон чисел, где эвристический алгоритм определяет сколько угодно чисел, которые будут простыми числами, причём ни одно из определённых чисел не будет составным числом. Писать по-русски ведь тоже ещё уметь надо. Тем более технический текст. Обычно почему-то полагается, что читатель проделал к этому моменту тот же самый мыслительный путь, и важно, что остановился на том же самом месте, что и писатель. И тогда целиком воспроизводится ситуация анекдота: "Да пошла ты наф со своим утюгом!" Я не знал этот анекдот. Погуглил. Шикарно. Точно-точно отражает ситуацию. Я-бы подарил Геннадию четырехтомник Дональда Кнута. Не знаю. Так просто. Мне кажется что стиль изложения очень похож на топик. Не помню касался он простых чисел или нет но по алгоритмизации там дофига чего есть. И по анализу complexity. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.11.2019, 19:13 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2019, 06:30 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Осталось добавить сюда, так ведь эвристика, и теорему Ферма. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2019, 06:46 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
В сообщении 22015600 говорится о наличии в окрестности 2^n "рабочих диапазонов" чисел, при проверки которых на простоту достаточно одного вычисления оператора pow3. Было интересно узнать, а есть ли ещё такие "рабочие диапазоны"? Оказалось, что есть. Исследования показали, что "рабочие диапазоны" имеют место вокруг чисел вида: 2^n +- 2^(n-1) +- 2^(n-2) +- 2^(n-3) +- 2^(n-4) +-... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2019, 11:32 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy Usov ...Исследования показали, что "рабочие диапазоны" имеют место вокруг чисел вида: 2^n +- 2^(n-1) +- 2^(n-2) +- 2^(n-3) +- 2^(n-4) +-... Или я опять не так понял? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2019, 14:15 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
Gennadiy Usov Поэтому на моём ПК получается проверить только до 2^32-1 +k. А дальше - эвристика... Хотите верьте, хотите нет. 2) Науку совершенно не колышит, каким путём проверять? Казалось бы, Ф. такой весь был авторитет из себя, даже свою Большую теорему "доказал"(набросал) на полях книги (к-рую непредусмотрительно потом вернул в библиотеку). Нет, вишь ты, надо было добрую сотню-другую лет её потом всем кагалом доказывать, чтобы убедиться. Да и то лишь при помощи компа прикончили. Тогда кажется автор тоже оповестил, что доказал. Но ... пришлось исправлять. Правда там речь о строгом доказательстве, ну так ведь он и не прятал свою программу, наоборот - отдал на проверку. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2019, 14:33 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
exp98 Gennadiy Usov ...Исследования показали, что "рабочие диапазоны" имеют место вокруг чисел вида: 2^n +- 2^(n-1) +- 2^(n-2) +- 2^(n-3) +- 2^(n-4) +-... Или я опять не так понял? 2^n + 2^(n-1) = 3 * 2^(n-1) 2^n + 2^(n-1) + 2^(n-2) = 7 * 2^(n-2) 2^n + 2^(n-1) - 2^(n-2) = 5 * 2^(n-2) 2^n + 2^(n-1) + 2^(n-2) + 2^(n-3) = 15 * 2^(n-3) 2^n + 2^(n-1) - 2^(n-2) + 2^(n-3) = 11 * 2^(n-3) и т.д. получаются числа вида k * 2^n ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2019, 14:57 |
|
Эвристический алгоритм (формула, тест простоты) для определения простых чисел
|
|||
---|---|---|---|
#18+
exp98 Gennadiy Usov Поэтому на моём ПК получается проверить только до 2^32-1 +k. А дальше - эвристика... Хотите верьте, хотите нет. А в настоящее время проверяется несколько веток : m * 2^n-1 +k exp98 2) Науку совершенно не колышит, каким путём проверять? Казалось бы, Ф. такой весь был авторитет из себя, даже свою Большую теорему "доказал"(набросал) на полях книги (к-рую непредусмотрительно потом вернул в библиотеку). Нет, вишь ты, надо было добрую сотню-другую лет её потом всем кагалом доказывать, чтобы убедиться. Да и то лишь при помощи компа прикончили. Тогда кажется автор тоже оповестил, что доказал. Но ... пришлось исправлять. Правда там речь о строгом доказательстве, ну так ведь он и не прятал свою программу, наоборот - отдал на проверку. если есть интерес ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2019, 15:12 |
|
|
start [/forum/topic.php?all=1&fid=16&tid=1339873]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
124ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
184ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 364ms |
0 / 0 |