Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Dima TЕсли считать все до 10^20, то надо под хранение результата ~10^19 байт или 10^7 терабайт, думаю мало у кого столько есть. Задача отпадает. Можно попробовать посчитать какой-нибудь диапазон, например 10^20...10^20 + 70 млн., для этого надо посчитать все до 10^10 (625 Мб памяти под хранение). Инициализировать ими решето только для этого диапазона и снять результат. Только тут засада, 64 битная переменная до 1,8*10^19. Можешь порешать задачу: поиск максимально большого простого x64. Думаю за минуту должно посчитаться. Дальше все резко усложняется из-за ограничения разрядности целых переменных. Яж говорил. Primes - коварны. Кажущаяся простота первых результатов - воодушевляет. Но как только - только ты выходишь на очередной уровень размеров (256-2048 бит) - начинают "стрелять" различные технические ограничения. То компиллятор не умеет то железка не тянет то хард диск мал. Ну ладно. Это лирика. Давайте порассуждаем. Есть Эратосфен. Это - серебрянная пуля. Он - стреляет. Он пока эффективнее всяких индусов и прочих Шматкинов-Рабиновичей. Он - реально эффективнее моего pbfa - который я постил лет 4 - 5 назад. И мы реально умеем посчитать все primes за 8 сек до 4 млрд. Но что делать дальше? Нам надо придумать алгоритм репликации всех вычёркиваний на следующее решето от 4 до 8 млрд. на основании того что уже расчитано. Вопрос - как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 10:08 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Марк, а мы разве разобрались с Аткином ? У нас пока только упрощенный алгоритм. Оригинальный алгоритм не реализован ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 10:16 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
maytonНам надо придумать алгоритм репликации всех вычёркиваний на следующее решето от 4 до 8 млрд. на основании того что уже расчитано. Вопрос - как? На самом деле просто, уже писал как (надо два решета 1...sqrt(X) и X...X+70 млн.), вопрос только как код оформить чтобы было универсально и пользоваться удобно. Текущая реализация заточена на то чтобы быть готовой дать от 1 до X. Для больших Х не подходит. Можно сделать поиск ближайшего больше Х, без кэширования результатов, но тогда несколько подряд медленно будут выбираться. Можно запрашивать диапазон X1 ... X2, тогда как-то надо инициализировать этим диапазоном (верхняя граница нужна). Классы не хочу, глобальных переменных тоже, а как при этом все красиво в одну функцию упихать не придумал. В идеале должно также остаться next_prime(X). Думаю пока ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 10:38 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
SashaMercuryМарк, а мы разве разобрались с Аткином ? У нас пока только упрощенный алгоритм. Оригинальный алгоритм не реализован Саш, займись. Даже если не взлетит, то хотя бы им проверим корректность Эратосфена. Для начала надо простейшую корректную реализацию, без оптимизаций, без биткарт (массив bool подойдет), главное чтобы работало, а дальше будем допиливать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 10:59 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Dima TSashaMercuryМарк, а мы разве разобрались с Аткином ? У нас пока только упрощенный алгоритм. Оригинальный алгоритм не реализован Саш, займись. Даже если не взлетит, то хотя бы им проверим корректность Эратосфена. Для начала надо простейшую корректную реализацию, без оптимизаций, без биткарт (массив bool подойдет), главное чтобы работало, а дальше будем допиливать. Через полтора часа начну :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 11:23 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
SashaMercuryЧерез полтора часа начну :) Главное без оптимизаций, чтобы читаемо было. Для начала достаточно чтобы до 1000 считал. У меня вопрос по нему есть: нужны ли ему четные клетки решета? В реализации из википедии я не смог от них избавиться. Поэтому там биткарта в два раза больше места занимает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 11:33 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
SashaMercuryМарк, а мы разве разобрались с Аткином ? У нас пока только упрощенный алгоритм. Оригинальный алгоритм не реализован Если честно для меня оригнальный документ Prime sieves using binary quadratic forms - A.O.L. Atkin , D.J.Bernstein - сложен для понимания. И я пока не знаю как его реализовать. Wiki описывала понятно. Но если это не оригинальный - тогда я временно отложу своё мнение в сторонку. Посмотрю какие будут у вас успехи с этим Шматкины-Бернштейном. Ради интереса поискал сравнение. http://stackoverflow.com/questions/5235865/comparison-of-sieve-of-sundaram-and-sieve-of-atkin-for-generating-a-list-of-prim In theory: The sieve of Sundaram has an arithmetic complexity O(n log n). The basic sieve of Eratosthenes has arithmetic complexity O(n log log n). Optimized variants of the sieve of Eratosthenes have arithmetic complexity O(n). The sieve of Atkin has not only arithmetic but also bit complexity O(n/log log n). A magical sieve where you are given the primes, in order, takes time O(n/log n). In practice, the sieve of Sundaram is so slow that no one uses it, and the sieve of Atkin is slower than optimized Eratosthenes variants (although it's at least competitive). Perhaps one day Atkin or something else will displace Eratosthenes but it's not likely to happen soon. (Also, there's no such thing as magic.) Последний абзац я пробую перевести. Вот что у меня вышло. На практике, решето Сундарама настолько медленно, что никто его не использует, и решето Аткина медленнее, чем оптимизированные варианты Эратосфена (хотя это последнее спорно). Возможно, в один прекрасный день Аткин или какой-либ другой алгоритм будет вытеснять Эратосфена, но это вряд ли произойдет в ближайшее время. Чудес не бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 12:01 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Dima TSashaMercuryЧерез полтора часа начну :) Главное без оптимизаций, чтобы читаемо было. Для начала достаточно чтобы до 1000 считал. У меня вопрос по нему есть: нужны ли ему четные клетки решета? В реализации из википедии я не смог от них избавиться. Поэтому там биткарта в два раза больше места занимает. судя по алгоритму нужны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 12:37 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Начало пока такое Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 13:18 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
смысл примерно такой. Но я где-то ошибся, пока данный код работает неккоретно Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 13:58 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Прошу прощение, это не решает проблему, но всё же Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 14:11 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Ребята, исправил практически. Ещё какая-то мелочь осталась Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 14:22 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Сегодня уже не доделаю( Завтра утром постараюсь закончить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 14:52 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Коллеги исходники в форуме это хорошо. Но может давайте постить больше идеи и результаты? А для сорцов я создам SVN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:11 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Коллеги. Я вам щяс подкину концептуальный код. А вы подумайте... Взлетит не? Не тестил. Интересует не компилляция а теоретическая полнота. Интересует перформанс и возможные оптимизации. Интересует масштабирование и мета-компилляция. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Прошу не придираться к возможным ошибкам. Это более идея чем реализация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 15:26 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
maytonКоллеги. Я вам щяс подкину концептуальный код. А вы подумайте... Взлетит не? Не понял это Код: plaintext 1. раз код концептуальный, пиши без Сишной каши с вычислениями в условиях. Это тоже самое: Код: plaintext 1. 2. Фигня какая-то. А в целом, как понимаю, идея считать остаток от деления счетчиками. ИМХУ может взлететь. maytonКоллеги исходники в форуме это хорошо. Но может давайте постить больше идеи и результаты? А для сорцов я создам SVN. +1 Саш, не замусоривай топик, прячь хотя бы под спойлер. А по хорошему кидай только готовое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 16:32 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Я уберу чуть позже под спойлеры. Никто не против? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 16:37 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Немного отвлеку вас. Нашёл страничку. Онлайн факторизатор. http://ru.numberempire.com/numberfactorizer.php Вот такое вот число Код: plaintext 1. было разложено на множители менее чем за сек. Код: plaintext 1. Вам интересно, как? Мне - да. Мне интересно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 16:40 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Dima TФигня какая-то. А в целом, как понимаю, идея считать остаток от деления счетчиками. ИМХУ может взлететь. Я пытался эмулировать решето без самого решета. По сути конечным автоматом без состояния. Моё решето делает лишние калькуляции от 2 до первого делителя впрочем это не должно влиять на выхлоп. Здесь трудность - оценить насколько грузят CPU верчения круговых счётчиков и сверка на не ноль с отсечениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 16:43 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 16:50 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
maytonВам интересно, как? Мне - да. Мне интересно. Надо возможности мат. библиотек поизучать, думаю там что-то такое задействовано. Типа GMP . Эта либа легко генерит простое число нужного размера, см. mpz_nextprime() maytonЯ пытался эмулировать решето без самого решета. По сути конечным автоматом без состояния. Теоретически сработает, вопрос как по производительности и памяти. Для каждого надо хранить: текущее состояние и до скольки считать. Можно потестить. Назовем "Решето Майтона" :) Нашел косяк в версии 2.0. Увлекся нечетными, забыл что еще четные бывают. next_prime(10) выдает 13 :( это Код: plaintext 1. заменить на это Код: plaintext 1. Позже выложу полную версию. Может еще чего найдется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 17:31 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Хм.... Код: plaintext 1. 2. 3. 4. 5. probabilistic algorithm - это вероятностный алгоритм. Это та шняга которая используется в криптографии для поиска простых чисел для генерации ключа ЕМНИП. У меня пока нет мнения по поводу probabilistic но это явно не та тема, которая мне интересна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 18:51 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
mayton probabilistic algorithm - это вероятностный алгоритм. Это та шняга которая используется в криптографии для поиска простых чисел для генерации ключа ЕМНИП. Для этих целей пользовал. Я для примера, глубоко туда не вникал, может там что еще есть полезное. Решето Майтона не взлетело Рабочий прототип алгоритма Код: plaintext 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. Результатtest 100000 atkin 10 msec mayton 911 msec можно подопиливать, но ИМХУ бесполезно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 19:25 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Интересно а какой "разрядности" этот ключик? Попробуем посчитать. Ну грубо говоря 200 бит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.03.2015, 19:57 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38922878&tid=2017971]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
163ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 276ms |

| 0 / 0 |
