Login
Поиск простого числа
NEW 08.11.06 18:22
in Antwort scorpi_ 08.11.06 17:55
Каким образом?
-----
За счет префиксного декремента, устанавливающего флаг равенства нулю. Правда для того, чтобы оценка (0.10) была верной там должен быть только развернутый код.
Вместо:
for( unsigned long counter = 1; counter < number; ++counter )
for( unsigned long counter = number; --counter; /* no */ )
И так же со вторым циклом.
-----
За счет префиксного декремента, устанавливающего флаг равенства нулю. Правда для того, чтобы оценка (0.10) была верной там должен быть только развернутый код.
Вместо:
for( unsigned long counter = 1; counter < number; ++counter )
for( unsigned long counter = number; --counter; /* no */ )
И так же со вторым циклом.
NEW 08.11.06 18:27
in Antwort scorpi_ 08.11.06 18:04
NEW 08.11.06 18:51
in Antwort Murr 08.11.06 18:22
Да, можно. Только измеримых результатов не даёт, так как это одна однотактовая команда.
08.11.06 19:40
in Antwort Murr 08.11.06 18:27, Zuletzt geändert 13.11.06 12:54 (scorpi_)
А, я его постинга сразу не заметил... Тогда да, О(n^1,5), первоначальный вариант кстати был конечно же О(n^2), а не в куб.
Короче вот -
Даёт ответ за 15сек, против 0.85 для решета (number =1000000)
Короче вот -
В ответ на:
unsigned long get_prime_by_barmaglot( unsigned long number )
{
if ( number == 1 )
return 2;
std::vector<unsigned long> found_primes( 1, 2 );
found_primes.reserve( number );
unsigned long i = 3;
for( unsigned long counter = number - 1; counter; i += 2 )
{
for( unsigned long j = 0; j < found_primes.size(); ++j )
if ( i < found_primes[j] * found_primes[j] || i % found_primes[j] == 0 )
break;
found_primes.push_back( i );
--counter;
}
return i - 2;
}
Даёт ответ за 15сек, против 0.85 для решета (number =1000000)
NEW 08.11.06 20:06
in Antwort scorpi_ 08.11.06 18:51, Zuletzt geändert 08.11.06 20:09 (Murr)
так как это одна однотактовая команда.
-----
На базовом i8086, DEC и ИБМ360 в одну команду укладываться не удавалось...
-----
На базовом i8086, DEC и ИБМ360 в одну команду укладываться не удавалось...

NEW 09.11.06 09:54
in Antwort scorpi_ 08.11.06 18:04
Лень мне вникать во всё написанное. Ты опроверг утверждение про четыре порядка для простых до 32 тысяч? Если вдруг да (весьма сомнительно
) -- вечером как будет время напишу и проверю сам.
Что касается
то "сижу" я на таком (http://www.rzg.mpg.de/computing/IBM_P5/hardware.html), от чего знающему человеку впору захлебнуться слюнями
.

Что касается
В ответ на:
всё ещё на 8086 сидишь? Бедненьий...
всё ещё на 8086 сидишь? Бедненьий...
то "сижу" я на таком (http://www.rzg.mpg.de/computing/IBM_P5/hardware.html), от чего знающему человеку впору захлебнуться слюнями


NEW 09.11.06 10:38
in Antwort barmaglot 09.11.06 09:54