Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Убрал кастинг в твоём тесте. Быстрее стало. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 17:09 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
maytonУбрал кастинг в твоём тесте. Быстрее стало. Сейчас твои результаты пропорциональны моим. Похоже это твой компилятор "соптимизировал". У меня в MSVC так вообще не компилируется. Пробовал (float) и (double) - скорость не меняется. затестил так, скорость таже Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 17:20 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
По моему ... float на уровне калькуляций кроме экономии разрядной сетки не даёт вообще ничего. Не пробовал просмотрель ассеблерный выход для float/double на предмет разницы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 17:26 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Dima TУ меня в MSVC так вообще не компилируется. Не заметил что у тебя double* primeDouble затестил так, у меня никаких изменений. затести так Код: plaintext 1. 2. преобразование из int в double не может занимать столько же времени как вычисление корня. Явно глюк компилятора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 17:27 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
maytonНе пробовал просмотрель ассеблерный выход для float/double на предмет разницы? Нет разницы. Отладчиком прошелся, значение передается в Сишный рантайм, а там проверки валидности и fsqrt. Затестил оба, нет разницы в скорости. float еще и неточно посчитал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 17:36 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Флоат втопку. И пепел в море утопить. Я закоммитил 1-й вариант своей тулзы. Работает она медленно. Зато сходу выдаёт итератор primes. Делай Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 17:39 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 17:40 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
maytonЯ уже придумал как. Начальное приближение можно брать с предыдущей итерации.Ну тогда эта функция вообще не нужна, достаточно проверить, пора ли увеличить значение "с предыдущей итерации" на единицу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 17:49 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Это и есть алгоритм Брезенхейма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 17:49 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Правда он создавался для рисования растровых кривых эллипсов и линий. Но на курсе Графического моделирования нам рассказывали о параболе. Следовательно я делаю вывод что есть и такая имплементация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 17:51 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
maytonЯ закоммитил 1-й вариант своей тулзы. Работает она медленно. Зато сходу выдаёт итератор primes. Обновил. Чтоб не тормозила - поставь предел поменьше. 10-100 млн. чтоб максимум в 5 сек укладывалась. Вектор быстрая штука, тестил с ним и без него - разница 20-30 мс на расчете до миллиарда. Добавлю тоже себе вариант с вектором. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 17:53 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Хотя конечно смотря что тут подразумевалось под итерацией... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 17:53 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonЯ закоммитил 1-й вариант своей тулзы. Работает она медленно. Зато сходу выдаёт итератор primes. Обновил. Чтоб не тормозила - поставь предел поменьше. 10-100 млн. чтоб максимум в 5 сек укладывалась. Вектор быстрая штука, тестил с ним и без него - разница 20-30 мс на расчете до миллиарда. Добавлю тоже себе вариант с вектором. Не очень понял о каком пределе ты пишешь. И ... это опенсорц. Закоммить свои изменения в мой файл. И я вобщем-то не буду против если это не крашит приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 17:55 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
ребята, вы ведь понимаете, что топик не может заканчиваться не на простом числе страниц? ;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 18:37 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Я нарисовал табличку для тестов и для оценки плотности распределения primes. Selection from 2 to..Primes detectedAll to primes ratio10025 0.251000 168 0.16810000 1 229 0.1229100000 9 592 0.095921000000 78 498 0.07849810000000 664 579 0.0664579100000000 5 761 455 0.057614551000000000 50 847 534 0.050847534 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 18:45 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
maytonНе очень понял о каком пределе ты пишешь. И ... это опенсорц. Понятно что могу поправить. Я к тому что какой смысл полминуты считать, все-равно долго. Топик с того и начался что я не мог дождаться пока мой перебор насчитается :) egorychребята, вы ведь понимаете, что топик не может заканчиваться не на простом числе страниц? ;)) Верно подмечено, теперь цель 11-я, после 13-й туго будет, присоединяйся Но тут у нас есть оптимизатор - mayton если что имеет права лишнее почистить, т.е. подравнять страницы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 18:53 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Сашик раскурит СВН и я подчищу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 18:58 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Dima TПонятно что могу поправить. Я к тому что какой смысл полминуты считать, все-равно долго. Топик с того и начался что я не мог дождаться пока мой перебор насчитается :) Просто мы решаем разные задачи. Я искал оптимальные способы хранения расчитанных primes на диске чтобы факоризировать сверх-длинные целые. А ты хотел чтобы Эратосфен до 2 млрд считался за несколько секунд. Но это другая задача. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 19:01 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
maytonЯ нарисовал табличку для тестов и для оценки плотности распределения primes. Ты формулу распределения давал n/ln(n) Чем дальше, тем формула точнее предсказывает. На лярде по формуле 48254942, на 5% не совпало. Табличка полезна для контроля точности вычислений. Если совпало, то остается проверить что все найденные простые (взаимно поделив друг н друга) и можно утверждать что генератор корректно работает. По хорошему какой-то экспресс-тест надо изобрести, т.к. делить не быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 19:02 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Формула - асимтотична. На малых величинах она вообще вихляется чудовищно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 19:04 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Но она полезна в другом. У меня был план - хранить расчитанные primes в бинарных файлах специально оптимизированных по размеру (каждое число укладывалось в несколько бит). И индексировать для последовательного от min до max итератора по файлу. Но эта задея до сих пор у меня не взлетела именно из-за капризного характера самих primes. Их невозможно оценить по стат-показателям. Они - постоянно плывут. Дельта между primes плывёт. Плывёт разрядность. Причём постоянно в сторону усложнения архитектур. Пожалуй n/ln(n) это единственное что стационарно. Хоть какая-то точка отсчёта в этом океане хаоса. Вобщем старик Ландау хихикает в своём гробу глядя на мои потуги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 19:08 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
maytonПросто мы решаем разные задачи. Я искал оптимальные способы хранения расчитанных primes на диске чтобы факоризировать сверх-длинные целые. Готовь диски, всё будет. max_prime(uint64_t x) посчитаем. Точнее уже есть заготовка, просто не доделал, поэтому не выложил. Сначала с Сашей отвлекся на Аткина (не зря, получили ориентир по скорости), потом с наведением порядка и заливкой разбирался. Я привык решать вопросы последовательно. Начали с начала - иду той же последовательностью. Начинал с Эратосфена, тут причесал - выложил. Самое вкусное оставлено на десерт. Тут еще мысль с оптимизацией шага цикла недоделана. maytonА ты хотел чтобы Эратосфен до 2 млрд считался за несколько секунд. Но это другая задача. Он будет считаться за 100 мс. Порвем Аткина. Есть мысли. Потерпи :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 19:15 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
mayton, откомпилировал твой исходник, с ходу не получилось, MSVC 2008 не понял. Пришлось поправить Код: plaintext 1. 2. Вывод в консоль это жесть. Завешивает RDP-терминал наглухо. Ладно хоть до миллиона указал, не долго считалось :) Статистика ожидаемая, пытаюсь с ней боротьсяKey[3] = 7 %, hits = 49999 Key[5] = 5 %, hits = 33331 Key[7] = 4 %, hits = 26660 Key[11] = 3 %, hits = 22846 Key[13] = 3 %, hits = 20754 Key[17] = 2 %, hits = 19148 Key[19] = 2 %, hits = 17999 Key[23] = 2 %, hits = 17039 Key[29] = 2 %, hits = 16271 Key[31] = 2 %, hits = 15669 Key[37] = 2 %, hits = 15154 Key[41] = 2 %, hits = 14692 Key[43] = 2 %, hits = 14290 Key[47] = 2 %, hits = 13935 Key[53] = 2 %, hits = 13584 Key[59] = 1 %, hits = 13230 Key[61] = 1 %, hits = 12904 Key[67] = 1 %, hits = 12630 Key[71] = 1 %, hits = 12321 Key[73] = 1 %, hits = 12052 Key[79] = 1 %, hits = 11823 Key[83] = 1 %, hits = 11533 Key[89] = 1 %, hits = 11283 Key[97] = 1 %, hits = 11004 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 20:11 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
Обновись снова. Я не знал что ты будешь компилировать с _DEBUG ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 21:06 |
|
||
|
Генератор простых чисел (до 10^9 за 5 сек)
|
|||
|---|---|---|---|
|
#18+
maytonПросто мы решаем разные задачи. Зафиксировал недоделанную next_prime64(). Она рабочая, но не оптимизированная под последовательности, не x64, считает только до 2^32. Но как считает: Код: plaintext 1. результатprime 4200000037 time 0 Смотри nextprime.cpp С разрядностью разбираюсь. Остальная оптимизация позже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.04.2015, 21:06 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38925603&tid=2017971]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 17ms |
| total: | 266ms |

| 0 / 0 |
