|
|
||||||
Сколько их, простых10.01.2011, 05:19. Показов 10992. Ответов 39
Вот переделал программу от 04.12 2008 года... «по совету друзей»!
Для нескольких млн работа идёт «молча» много секунд... может, кто знает, как отобразить расчётное время выполнения на типичной такой полосе, с движком или цветным заполнителем?
0
|
||||||
| 10.01.2011, 05:19 | |
|
Ответы с готовыми решениями:
39
Сколько простых чисел в диапазоне [a; b]. Нахождение простых, взаимно-простых и парно-простых чисел из указанного диапазона Посчитать, сколько простых чисел в интервале [1; N] |
|
|
|
| 30.01.2014, 21:08 [ТС] | |
|
У меня машина послабее (1 Гб ОЗУ, 2,28 ГГц) — взял для испытания 10 млн; с индикацией 40 секунд, без — 57 (но была включена интернет-видеотрансляция). Отлично!
Кроме того, использовал булев массив (вместо байтового); документ приложен; картинка так, для красоты.
0
|
|
| 30.01.2014, 22:58 | ||||||
Сообщение было отмечено как решение
Решение
По теме топика "Сколько их, простых / VBA" (а не по прогрессбару)
Если немного оптимизировать алгоритм, то можно существенно ускорить программу. Без вывода чисел на лист (все лишнее закомментировал), до 535000100 мой ноутбук считает за 17,3 секунды (до 1 миллиарда - 32,6 секунды) VBA Excel
2
|
||||||
|
|
|
| 31.01.2014, 01:54 [ТС] | |
|
И вот она у меня! Таблица простых чисел! Неожиданный бонус. Спасибо за это m-ch.
0
|
|
| 01.02.2014, 18:34 | |||||||
|
Скачать архив со всеми этими числами можно по ссылке http://yadi.sk/d/TF1fD5IPH7juL Возможно код не самый оптимальный по скорости, т.к. пришлось ждать несколько часов.
1
|
|||||||
|
|
|
| 05.02.2014, 15:47 | |
Сообщение было отмечено как решение
Решение
А теперь собственно по ПРОГРЕССБАРУ.
Прогрессбар теперь замедляет работу не более, чем на 0,8% . Для числа 535 000 100 время работы в Excel : 16.414 сек. Имя ОС Microsoft Windows 7 Профессиональная Версия 6.1.7601 Service Pack 1 Сборка 7601 Офис: Office 2007 Процессор Intel(R) Core(TM) i7 CPU 930 @ 2.80GHz, 2801 МГц, ядер: 4, логических процессоров: 8 Установленная оперативная память (RAM) 4,00 ГБ Для ускорения работы прогрессбара и ограничения количества точек обновления, пришлось сильно изменить основной быстрый алгоритм от M-ch , тот который без побитовых операций. Массив Flag пришлось объявить как Boolean, так как несколько раз под Windows XP вылетало сообщение "Out of Memory". В файле Word это сообщение выскакивает и для числа 535 000 100 и под Windows 7, так что по умолчанию стоит 400 000 000. На более медленных компьютерах и системах количество точек обновления прогрессбара автоматически увеличится.
1
|
|
| 09.02.2014, 21:50 | ||
Сообщение было отмечено как решение
Решение![]() Т.к. "побитный" алгоритм очень медленный и имеет ограничения по количеству чисел, реализовал алгоритм поблочного просеивания решетом Эратосфена. Основные принципы: 1. определяем простые числа до корня из n 2. разбиваем на блоки числа до n и каждый блок просеиваем простыми. Данный алгоритм позволяет существенно увеличить число n, до которого производится расчет. Затрачиваемое время уменьшилось: до 535 000 100 - 10 сек. до 8 млрд. - менее 3х минут (в отличии от 4х часов в предыдущем алгоритме) до 100 млрд. - 42 минуты Думаю, что можно и до 1 трл. посчитать, займет это 8-12 часов (пока лень столько ждать) Заполнение блоков получилось относительно равномерным по времени, поэтому нет необходимости извращаться с прогрессбаром. Прогрессбар в данной реализации практически не тормозит код.
1
|
||
| 10.02.2014, 22:31 | ||
|
Сошлись все значения, кроме п(10^10). У меня получилось 455 052 511. Учитывая, что статья написана в конце 70х - начале 80х, понравилась там фраза - "Так скромно выписанные в ней значения π(x) потребовали тысяч часов трудоёмких вычислений". Мне сегодня для вычисления п(10^10) потребовалось менее 4 минут. Так вот, разница на единицу наводит на мысли, либо у меня не правильный алгоритм (хотя странно, что совпали все другие числа), либо в статье допущена ошибка (опечатка), либо она попала туда при переводе. Если есть желающие, то пересчитайте значение п(10^10) каким либо другим вариантом, либо дайте ссылку на источник, где подтверждаются мои вычисления.
1
|
||
| 10.02.2014, 23:05 | |
|
Сам нашел источник http://www.ismlab.usf.edu/isec... _there.pdf
где подтверждается число 455 052 511 для 10^10
1
|
|
|
|
||||||
| 11.02.2014, 06:46 | ||||||
|
Вот..., функция по созданию простых чисел
самая быстро-работающая, придуманная мной и модератором под ником Апостроф
0
|
||||||
| 11.02.2014, 09:02 | |||||||
|
Набросал за 5 минут функцию, которая базируется на ранее опубликованном алгоритме, работает более чем в 2 раза быстрее для больших n
2
|
|||||||
|
9912 / 3933 / 743
Регистрация: 11.10.2011
Сообщений: 5,916
|
||||||
| 11.02.2014, 11:28 | ||||||
|
Ещё пять копеек (процентов) к производительности
![]()
3
|
||||||
|
|
|
| 24.02.2014, 10:07 | |
|
Файл EratospheneBlock.xls от M-ch с установленным по умолчанию числом 535 000 100 можно использовать как интегральный тест производительности конфигурации компьютера и системы для линейных задач VBA, без распараллеливания процессов (в Net Basic).
Пример для 5-ти машин и систем. Везде Office 2007. 1-ый : Netbook E-machine , Windows XP SP3, процессор Intel Atom N450 1,66ГГц , RAM 1 Гб - 104,125 сек - индекс производительности 1.0 ; 2-ой : ноутбук Toshiba Toshiba Satellite A300 , Windows Vista, процессор Intel Pentium Dual Core T4200 2,0ГГц , RAM 3 Гб - 26,152 сек - индекс производительности 3.98 ( раз быстрее Atom-а) ; 3-ий : стационарный, Windows XP SP3, процессор Intel Core 2 Quard Q6600 2,4ГГц , RAM 4 Гб - 20,672 сек - индекс 5.04 «Atom»-ов ; 4-ий : стационарный, Windows 7, процессор Intel Core i7 930 2,8ГГц , RAM 4 Гб - 15,008 сек - индекс 6.94 Атомов ; 5-ый : ноутбук Asus X550LC-X0074 , Windows 8, процессор Intel Core i7 4500U 1,8 Ггц, RAM 4 Гб - 12,328 сек - индекс 8.45 Атомов.
2
|
|
|
|
|
| 24.02.2014, 10:24 | |
Сообщение было отмечено как решение
Решение
Спасибо, что нашли разные компьютеры, чтобы посчитать скорость
![]() Добавлено через 4 минуты я завидую тому, что у вас столько свободного времени есть
1
|
|
|
|
|
| 31.08.2014, 13:25 | |
|
Прикольно, мне особенно кнопка понравилась, и прогресс-бар
Добавлено через 1 минуту Реализацию, я пока еще не понял ..разбираюсьДобавлено через 4 минуты ..100 секунд на моей машине потребовалось, ..вот
0
|
|
|
es geht mir gut
11275 / 4761 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
|
| 01.09.2014, 06:00 | |
|
1
|
|
| 28.02.2016, 14:21 | |||||||
|
Решил перенести код по подсчету количества простых чисел на FreeBasic, время работы (без изменения кода программы) на моей машине при подсчете до n=535000100 - 4 секунды (VBA - 10 секунд) Кликните здесь для просмотра всего текста
Всего в 2,5 раза быстрее чем VBA, это хуже, чем VB6 win 8.1, i7-3630QM 2.4GHz, RAM 8ГБ FreeBasic позволяет легко реализовать потоки, алгоритм функции также можно разбить на параллельные вычисления. Итого время подсчета для n=535000100 - примерно 1 секунда (что в 10 раз быстрее VBA) Время расчета до 10^9 - 2 секунды до 10^10 - 21 секунда до 10^12 - 42 минуты Функцию реализовал в виде внешней DLL на FreeBasic, которая подключается и используется в VBA (Excel) Исходник и скомпелированная DLL во вложении PS: Конечная цель перевода в DLL - увеличение скорости математических вычислений за счет более быстрого языка (по сравнения с VBA) и параллельных потоков.
1
|
|||||||
|
1 / 1 / 0
Регистрация: 17.09.2017
Сообщений: 1
|
|
| 17.09.2017, 20:28 | |
|
Добрый вечер. Ребят, спасибо за решение на Экселе.. а где бы найти решение этого решета - но полное.. т.е. - мне нужно, к примеру, до 1000.. Эксель строит таблицу от 1 до 1000, затем ищет простые цифры и или зачёркивает по порядку с нарастанием (одна полоса, две , три) - или разными цветами.. и в табличке ПОКАЗАНЫ ВСЕ цифры, а не только простые.. вот как например сделано в Гифке на Вики.. заранее спасибо..
1
|
|
| 17.09.2017, 20:28 | |
|
Выяснить сколько простых чисел находится в интервале
Определить, сколько простых чисел было введено Сколько простых чисел взаимно простые с 42 между 30 и 70
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|