![]() |
|
![]() ![]() ![]() |
|
Mura-vey |
|
|||
Unregistered |
program Ishem_prostie_chisla_v_sotne;
uses crt; var a,b : array [1..100] of byte; p : byte; i,n,z : byte; label l,l2; begin ClrScr; a[1]:=3; b[1]:=3; i:=3; n:=0; l: p:=0; for z := 1 to n do begin b[z]:=b[z]-1; if b[z] = 0 then begin b[z]:=a[z]; p := 1; {goto l2;} end; end; if p<>1 then begin n:=n+1; a[n]:=i; b[n]:=i; write(a[n],' '); end; l2: i:=i + 2; {write(i,' ');} if i<=100 then goto l; {for i := 1 to 24 do begin write(a[i],' '); end;} write(n); end. Я долго коптил, и нашёл закономерность "размножения" простых чисел. (кто не верит пусть компилит!!!!) Я прошу помощи перевода етого кода на асм, при этом надо сделать возможность бесконечного увеличения массива. заранее сенкс |
|||
|
||||
podval |
|
|||
![]() Где я? Кто я? ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3094 Регистрация: 25.3.2002 Где: СПб Репутация: 18 Всего: 62 |
И чем конкретно этот метод новый?
|
|||
|
||||
Kefir |
|
|||
Unregistered |
Я вообще особо не рублю на Дельфи/Паскале, но... вообще на кой чёрт тебе искать эти числа? ведь можно просто брать число, проверять простое оно или нет, потом, если оно простое кидать его в файл или куда надо. на С++ что то в роде:
int num_to_check = 1000; for(int a = 0; a<num_to_check; a++) if(Prostoje4islo(a)==TRUE) printf("%i\n", a); Ф-ция Prostoje4islo проверяет простое ли число и, если да, то printf выводит это число на экран. Не верю, что на Паскали/Дельфи так нельзя сделать. |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
2 Kefir - можно конечно, но проблема с простыми числами остаётся весьма острой, код автора тоже не поможет. Например видоизменим задачу - надо найти все простые числа в интервале от 10^20 до 10^22... Желательно за разумный интервал времени...
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Dapo |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 417 Регистрация: 18.4.2002 Репутация: нет Всего: 1 |
"Я долго коптил, и нашёл закономерность "размножения" простых чисел. "
Смелое утверждение :-). Если ты действительно сформулировал закон распределения простых чисел, тогда тебе нужно премию, как минимум, Филдса выдать. Кстати, кажется на Vingrade в каком-то разделе форума кто-то статью выдал, что какие-то ученые составили алгоритм получения простого числа, но чего-то я больше нигде подобной информации не читал. Для тех кто не в курсе (мало ли как бывает) простые числа - число которые деляться только на 1 и на себя (1,2,3,5,7,11,13,17 и т.д. (только вот как так? :-) ) ). |
|||
|
||||
Kefir |
|
|||
Unregistered |
2 Vit:
Это примерно 99 в 20й итераций... нда... хорошего времени не получается, но быстродействие компьютеров постоянно растёт, так что очень возможно, что вскоре и такой способ подойдёт. Вообще я не имел в виду таких астрономических чисел, просто при довольно нечасто надо находить все простые в этом интервале. 2 Dapo: Может ты это имел в виду: http://www.cse.iitk.ac.in/primality.pdf ? Это алгоритм дающий 100% уверенность в простоте числа (или же в том что оно не простое). |
|||
|
||||
maxim1000 |
|
|||
Unregistered |
Дело в том, что над этой проблемой "покоптили" еще в древности. В результате появился метод с названием "решето Эратосфена", который довольно часто изучается в школе...
если интересно - сходите, например, на www.nature.ru и наберите в поиске "решето Эратосфена" |
|||
|
||||
Kefir |
|
|||
Unregistered |
2 maxim1000:
Решето - это конечно хорошо, но и ты тоже не поленись, зайди по ссылке в моём предидущем мсг. Тоже довольно интересно. |
|||
|
||||
Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Тема перемещена в раздел алгоритмов
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
Paradox |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
А как же Кнут с его алгоритмами.....
-------------------- --- |
|||
|
||||
BlackWolf |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 2.4.2003 Репутация: нет Всего: нет |
Поиск простых чисел практически нужен например в криптоанализе системы шифрования с открытым ключом (например RSA). По крайней мере очень сильно убыстрит его.
|
|||
|
||||
neutrino |
|
|||
![]() Gothic soul ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 3041 Регистрация: 25.3.2002 Где: Верхняя Галилея, Кармиэль Репутация: нет Всего: 62 |
Ну вот, народ, ловите. Кто тут говорил, что статью хотел:
http://www.cse.iitk.ac.in/news/primality.pdf -------------------- The truth comes from within ... Покойся с миром, Vit |
|||
|
||||
df_3 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 256 Регистрация: 19.5.2003 Репутация: нет Всего: 1 |
Сделай exe и дизасемблируй его ))) Вот тебе и код в АСМ
-------------------- ИЗ ВСЕХ ВОЗМОЖНОСТЕЙ НА ЗЕМЛЕ САМАЯ ЯРКАЯ - ЭТО ЖИЗНЬ! |
|||
|
||||
df_3 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 256 Регистрация: 19.5.2003 Репутация: нет Всего: 1 |
а так нормально! но лучше в динамической памяти Так как на большие массивы места не хватит)
-------------------- ИЗ ВСЕХ ВОЗМОЖНОСТЕЙ НА ЗЕМЛЕ САМАЯ ЯРКАЯ - ЭТО ЖИЗНЬ! |
|||
|
||||
Гость_Victor |
|
|||
Unregistered |
Выведена формула получения простых чисел
http://www.laplas.narod.ru/moiform.htm пункт №4 где k целое число от 1 до бесконечности. Выражение в скобках ограниченных снизу обозначает целую часть дроби k/6, либо само значение этой дроби если k кратно 6, ну а функция n=[(k-1)mod(6)] и n=[(k)mod(6)] вам я надеюсь знакома - сравнимость чисел n и k-1, k по модулю 6. Эта формула даёт все простые числа по порядку начиная с 5. Так же по этой формуле получаются составные числа. Общая доля отсева равна 11/15=0.73333(3). |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |