Моё меню Общее меню Пользователи Правила форума Все прочитано
Вернуться   uForum.uz > ИКТ и телеком > IT-индустрия > Софт > Программирование
Знаете ли Вы, что ...
...до того как открыть новую тему, стоит использовать поиск: такая тема уже может существовать.
<< Предыдущий совет - Случайный совет - Следующий совет >>

Программирование Обсуждаются вопросы мира программирования. Слово программирование отпугивает некоторых... Не бойтесь, заходите учитесь, помогайте, обучайте...


Ответить

 
Опции темы Опции просмотра
Старый 11.05.2011 01:05   #21  
Заблокирован(а)
Аватар для JackDaniels
Оффлайн
Сообщений: 18,519
+ 10,956  12,586/6,453
– 307  539/385

Vatican City State
Интересно было бы поставить задачу по числам Мерсенна, и профит не плохой и задача не тривиальная.
Ответить 
Реклама и уведомления
Старый 12.05.2011 19:34   #22  
uParty Member Known ID Group Ultimate
Аватар для OmoN
Оффлайн
програмщег
Сообщений: 4,971
+ 2,743  5,086/2,116
– 69  99/68

Uzbekistan
Еще одно решение. До 100 000 работает 1,03-1,04 секунды.
PHP код:
function IsPrime(n:integer):boolean;
  var 
r:boolean;
       
i:integer;
begin
 r 
:= true;
 
:= 3;
 while(
<= sqrt(n))do begin
   
if((n mod i) = 0)then begin
     r 
:= false;
     break;
   
end;
   
:= i+2;
 
end;
 
result := r;
end;

procedure FindPrimes(maxNumber:integer);
  var 
iinteger;
       
label lab;
begin
 i 
:= 3;
 
WriteLn('BEGIN');
 
WriteLn('2');
 
WriteLn('3');
 while(
i<=maxNumber)do begin
   
if(i>3)and(i mod 3 0)then goto lab;
   if(
i>5)and(i mod 5 0)then goto lab;
   if(
i>7)and(i mod 7 0)then goto lab;
   if(((
i-1mod 6)*((i+1mod 6) = 0)and(i>3then
     
if(IsPrime(i))then WriteLn(i);
   
lab:
   
:= i+2;
 
end;
 
WriteLn('END');
end
__________________
Ошибки прошлого, мудрость будущего. (с)Д.Тернер.
Ответить 
Старый 12.05.2011 21:52   #23  
Real ID Group Ultimate uParty Member ЕС
Аватар для Evgeniy Sklyarevskiy
Оффлайн
UZINFOCOM
Сотрудник ZiyoNET
AKA:ЕС, barbaris, arbuz
Сообщений: 32,709
+ 10,568  16,236/8,377
– 50  472/298

UzbekistanLiveJournalАккаунт на TwitterFacebook
Цитата:
Сообщение от OmoN Посмотреть сообщение
До 100 000 работает 1,03-1,04 секунды.
И как там Пи? чему равно по новым данным?
Ответить 
Старый 13.05.2011 13:01   #24  
Real ID Group
Аватар для Rooslan Khayrov
Оффлайн
Google
software engineer
AKA:Y combinator
Сообщений: 418
+ 114  374/183
– 6  9/8

Switzerland
Цитата:
Сообщение от Evgeniy Sklyarevskiy Посмотреть сообщение
И напоминаю про Скатерть Улама, у кого есть время машинное!
Да пожалуйста:
https://gist.github.com/970169
Код:
import Data.List
import Graphics.Gloss
import Graphics.Gloss.Data.Point

infixl 6 |+|

(x, y) |+| (x', y') = (x + x', y + y')

spiral = scanl (|+|) (0, 0) steps
    where
        steps = concat $ zipWith replicate sides (iterate r90ccw (1, 0))
        sides = concatMap (replicate 2) $ map fromIntegral [1..]
        r90ccw (x, y) = (-y, x)

primes :: [Int]
primes = 2 : 3 : filter isPrime [5, 7 ..]
    where 
        isPrime n = and [n `mod` i /= 0 |
            i <- takeWhile (\i -> i * i <= n) (tail primes)]

primesMask = merge [1..] primes
    where
        merge (n : nt) ps@(p : pt)
            | n == p    = True : merge nt pt
            | otherwise = False : merge nt ps

side = 600

picture = color black $ pictures $ [translate x y (rectangleSolid 1 1) |
    (x, y) <- takeWhile isVisible $ filteredSpiral]
    where
        filteredSpiral = map fst $ filter snd $ zip spiral primesMask
        isVisible p = pointInBox p (side, side) (-side, -side)

main = displayInWindow "Ulam spiral" windowSize (100, 100) white picture
    where windowSize = (round side, round side)
Алгоритм наивный, не решето, но на помещающихся в экран объёмах и такой справляется.
Ответить 
Старый 13.05.2011 14:34   #25  
Real ID Group Ultimate uParty Member ЕС
Аватар для Evgeniy Sklyarevskiy
Оффлайн
UZINFOCOM
Сотрудник ZiyoNET
AKA:ЕС, barbaris, arbuz
Сообщений: 32,709
+ 10,568  16,236/8,377
– 50  472/298

UzbekistanLiveJournalАккаунт на TwitterFacebook
Цитата:
Сообщение от Rooslan Khayrov Посмотреть сообщение
Да пожалуйста:
Отлично, спасибо!

Теперь осталось объяснить происхождение явно выделенных диагональных отрезков и мы в дамках! :-0)
Ответить 
Старый 13.05.2011 23:13   #26  
Аватар для Наташа
Оффлайн
Сообщений: 1,306
+ 885  788/480
– 0  51/26

Germany
Цитата:
Сообщение от German Stimban Посмотреть сообщение
В ходе урока раскачался и написал код решения с помощью решета Эратосфена на С++. (если интересно, могу вывести). В результате максимально оптимизированный "классический" алгоритм
Да, конечно выкладывайте
Ответить 
Старый 13.05.2011 23:24   #27  
Аватар для Наташа
Оффлайн
Сообщений: 1,306
+ 885  788/480
– 0  51/26

Germany
Цитата:
Сообщение от Evgeniy Sklyarevskiy Посмотреть сообщение
Теперь осталось объяснить происхождение явно выделенных диагональных отрезков и мы в дамках! :-0)
Видимо в прямой зависимости от потраченных в пустую часов и богатства фантазии можно усмотреть так же и вертикальные и горизонтальные линии и даже цветочки и прочее разное...
Ответить 
Старый 14.05.2011 01:09   #28  
Real ID Group Ultimate uParty Member ЕС
Аватар для Evgeniy Sklyarevskiy
Оффлайн
UZINFOCOM
Сотрудник ZiyoNET
AKA:ЕС, barbaris, arbuz
Сообщений: 32,709
+ 10,568  16,236/8,377
– 50  472/298

UzbekistanLiveJournalАккаунт на TwitterFacebook
Цитата:
Сообщение от Наташа Посмотреть сообщение
Видимо в прямой зависимости от потраченных в пустую часов и богатства фантазии можно усмотреть так же и вертикальные и горизонтальные линии и даже цветочки и прочее разное...
Хотите сказать, что диагональные под 45 градусов линии я придумал? Рассмотрите крупно картинку, они там есть! Гарднер объяснял это семейством простых чисел, порождаемых уравнениями вроде x^2 + x + 41 - дает подряд много простых чисел, лежащих на диагонали. Объяснить эту визуализацию каких-то закономерностей пока никто не может.
Ответить 
"+" от:
Реклама и уведомления
Старый 14.05.2011 02:32   #29  
Заблокирован(а)
Аватар для JackDaniels
Оффлайн
Сообщений: 18,519
+ 10,956  12,586/6,453
– 307  539/385

Vatican City State
Цитата:
Сообщение от Evgeniy Sklyarevskiy Посмотреть сообщение
Цитата:
Сообщение от Наташа Посмотреть сообщение
Видимо в прямой зависимости от потраченных в пустую часов и богатства фантазии можно усмотреть так же и вертикальные и горизонтальные линии и даже цветочки и прочее разное...
Хотите сказать, что диагональные под 45 градусов линии я придумал? Рассмотрите крупно картинку, они там есть! Гарднер объяснял это семейством простых чисел, порождаемых уравнениями вроде x^2 + x + 41 - дает подряд много простых чисел, лежащих на диагонали. Объяснить эту визуализацию каких-то закономерностей пока никто не может.
Да, это не просто белый шум, в нем явно прослеживаются четкие диагонали.
Ответить 
Старый 14.05.2011 12:04   #30  
Real ID Group Ultimate uParty Member ЕС
Аватар для Evgeniy Sklyarevskiy
Оффлайн
UZINFOCOM
Сотрудник ZiyoNET
AKA:ЕС, barbaris, arbuz
Сообщений: 32,709
+ 10,568  16,236/8,377
– 50  472/298

UzbekistanLiveJournalАккаунт на TwitterFacebook
Мы на пороге великого открытия, осталось самую малость.... проследить и объяснить :-0)
Ответить 
Ответить
Опции темы
Опции просмотра




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Advertisement System V2.5 By Branden
OOO «Единый интегратор UZINFOCOM»


Новые 24 часа Кто на форуме Новички Поиск Кабинет Все прочитано Вверх