|
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
|
||||||
Эффективный алгоритм поиска простых чисел на С++02.05.2013, 11:41. Показов 15882. Ответов 94
Метки нет (Все метки)
Хотел написать функцию которая вычисляет простое число или сложное, но оно не вычисляется. Цикл который я добавил в функцию не работает. Можете подсказать почему??? Заранее спасибо.
Простое число - которое делится на 1 и на само себя, сложное число-которое делится на 1 и на само себя и на какое-то еще число, 5 -простое число, 10-сложное число. P.S. Вот программа:
0
|
||||||
| 02.05.2013, 11:41 | |
|
Ответы с готовыми решениями:
94
Алгоритм поиска простых чисел Алгоритм поиска n простых чисел
|
|
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
|
|
| 03.05.2013, 18:25 | |
|
0
|
|
|
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,858
|
|
| 03.05.2013, 18:28 | |
|
кстати отличная инфа по этой теме - http://e-maxx.ru/algo/bpsw
там отметьте кроме теста Миллера-Рабина ещё вводится Сильный тест Лукаса-Селфриджа не спроста это, одного теста там не достаточно, как у вас
0
|
|
|
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
|
|
| 03.05.2013, 18:30 | |
|
abit, этот сайт делал наш студент Иванов Максим, я прекрасно ознакомлен со всеми статьями на этом портале.
0
|
|
|
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,858
|
||
| 03.05.2013, 18:46 | ||
|
Ternsip,
тогда ещё лучше, при всём уважении цитирую с сайта
а так - со статьёй согласен, вопросов не имею, если вы опираетесь на это, не доказано на больших числах - ну и ладно, математики всегда хромают - за 500 лет не могут задачу о трёх телах решить, за 100 лет от них даже не решение уравнения Навье - Стокса хотят, а только просят доказать, что оно вообще существуют и миллион долларов дают, а те не могут
0
|
||
|
|
||||||||
| 03.05.2013, 20:27 | ||||||||
|
Я уже приводил выкладки, проверить все делители можно до SQRT(N) - прошу не надо спорить там где это очевидно. (Ещё раз если a*b = c и a < SQRT(c) то b > SQRT(c) а стало быть баланс а и b существует только у корня из числа, далее идёт повторение делителей).На счёт кода - вот пока неоптимизированный вариант (в данный момент усиленно думаю над нижней границей проверки, верней как сделать начало не с 11 а поднимать степень и у начала)
![]() Давайте ещё раз по полочкам
1
|
||||||||
| 03.05.2013, 20:32 | |
|
Не по теме: Я вышел, возможно до завтра и так тема отняла кучу времени, у меня хватает ещё дел...
0
|
|
|
670 / 198 / 29
Регистрация: 10.05.2012
Сообщений: 595
|
|
| 03.05.2013, 20:53 | |
|
-=ЮрА=-, а вот теперь запустите эту программу, не меняя её на тесте 9999999900000001, работает 3 секунды на http://codeforces.com/, когда Рабин пашет за 0 ms
Добавлено через 1 минуту -=ЮрА=-, а вот на этом тесте 909090909090909091 рабин пашет 15 ms Добавлено через 1 минуту -=ЮрА=-, вот ещё тест 0 ms работает 1111111111111111111 на всех этих тестах у вас > 3 секунд Добавлено через 1 минуту -=ЮрА=-, на 1111111111111111111 у вас ваще за 10 секунд перехлестнуло
0
|
|
|
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,858
|
|
| 03.05.2013, 21:37 | |
|
salam,
да бросьте вы, чистый Миллер-Рабин доказано не работает верно и вроде Ternsip с этим не спорит, а вот совместно с Лукаса-Селфриджа - я допустил что это работает, но это тоже не доказано точно и я даже привёл контр-пример - вполне реально замутить нечёткую нейронную сеть (но это дело отдельных исследований, а они судя по статье занимались этим 3 года минимум), которая действительно в независимости от числа N определит простоту числа с некоторой вероятностью, может быть меньше будет вероятность, а может быть больше, всё зависит от реализации, но отдельно одного теста Миллера-Рабина можно потягаться, по быстродействию все шансы выиграть, потому что вряд ли O(log^3(N)) будет быстрее O(1)... относительно обоих тестов - не знаю, надо вникать в проблему
0
|
|
| 03.05.2013, 22:29 | |||||||
0
|
|||||||
|
|
|||||||||||
| 03.05.2013, 23:19 | |||||||||||
|
Внизу коды и сравнительная отработка, для значений до 1Е6 и до 1Е7 включительно
(больший объём проверять для меня с моим 1ядерным ПК 2,7 ГГц слишком долго), буду благодарен за сравнительные тесты на больших порядках скажем до 1Е8-10. В своём коде изъял домножение на 3.2 судя из тестов без него - данное домножение было лишним Мой код Кликните здесь для просмотра всего текста
Код Ternsip Кликните здесь для просмотра всего текста
В заключение ещё раз прошу либо писать по сути, либо не писать вообще, ваши предположения подкрепляйте тестами кодами, скриншотами. Остаётся добавить что судя из отработки на порядке 1Е7 мой код выдал 664579 против 664780 простых чисел у Ternsip (что может косвенно говорить о новых брежах алгоритма по типу отмеченных в посте 53. Хотелось бы узнать точное число простых чисел на промежутке 1 - 1Е7
2
|
|||||||||||
|
|
|||||||||||||
| 04.05.2013, 00:29 | |||||||||||||
|
ЗЫ: Хотя решил для себя проверить код Ternsip, для этого соорудил сэйв результатов от 1Е6 до 1Е7 и разобрал моим алгоритмом (скрин и алгоритмы прилагаю)
Генератор чисел на базе кода Ternsip, Кликните здесь для просмотра всего текста
Код проверки значений Кликните здесь для просмотра всего текста
Как видим даже с увеличенной точностью Список вопросов Кликните здесь для просмотра всего текста
1
|
|||||||||||||
|
870 / 529 / 149
Регистрация: 03.02.2013
Сообщений: 1,858
|
||
| 04.05.2013, 01:18 | ||
|
BumerangSP,
а вот никого я не оскоблял! я вступился за -=ЮрА=-, и скажу почему... вы скомпильте и запустите код, что нам дал Ternsip, вот тут - Эффективный алгоритм поиска простых чисел на С++ я не знаю как у вас, у меня под виртуалкой Win XP SP3 комп с сего кода перегружается, а в Linux сия программа виснет, да выдавая ответ 1 на 5, согласен простое число, 0 на 6 - да не простое, и на 121 - выдаёт 0, но извините сия программа вызывает перегруз виртуалки Win Xp3, я молчу что она намертво виснет под линуксом и приходится её убивать... и что вообще значит этот 0?
1
|
||
|
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,333
|
|
| 06.05.2013, 11:31 | |
|
1
|
|
| 06.05.2013, 12:57 | |
|
0
|
|
|
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,333
|
|
| 06.05.2013, 23:35 | |
|
-=ЮрА=- если этот код, то вот результат
1
|
|
| 06.05.2013, 23:35 | |
|
Реализовать алгоритм поиска простых чисел Cоставить алгоритм поиска N простых чисел Алгоритм поиска целых простых чисел
Алгоритм поиска количества простых чисел в заданном массиве Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет.
Но обычно это 50 лет и более.
Наверное, закисление почвы происходит сезонно в средней. . .
|
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
|
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS
Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
|
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи.
Через несколько переработок от PHP кода к C89 (надеюсь, 89).
Но довольно запутанно получилось. Код для Linux.
Но если убрать time и то, что с ним. . .
|
|
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки
Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
|
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы
Всем привет! Хочу поделиться свежим (и довольно. . .
|
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
|
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения:
- добавлена многоязычность
- добавлено снятие скриншотов
- добавлено поддержание бафов хождения по воде (для жреца, дк и шамана)
- и так, по. . .
|