|
|
||||||
Сколько их, простых10.01.2011, 05:19. Показов 10548. Ответов 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
|
|||||||
|
9908 / 3928 / 742
Регистрация: 11.10.2011
Сообщений: 5,908
|
||||||
| 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
11274 / 4760 / 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 | |
|
Помогаю со студенческими работами здесь
40
Выяснить сколько простых чисел находится в интервале
Определить, сколько простых чисел было введено Сколько простых чисел взаимно простые с 42 между 30 и 70
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|