Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> генерация простых чисел 
:(
    Опции темы
БАБАЯН
Дата 17.12.2006, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 17.12.2006

Репутация: нет
Всего: нет



может у кого есть уже написанная прога? Или ссылки какие-нибудь. Буду очень благодарен.
PM MAIL   Вверх
anwe
Дата 17.12.2006, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: нет
Всего: 23



Используй random().
PM MAIL   Вверх
Zero
Дата 17.12.2006, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Цитата(БАБАЯН @  17.12.2006,  17:45 Найти цитируемый пост)
Или ссылки какие-нибудь.

Зайди в любой поисковик, типа гугля или рамблера и напиши там "простые числа"... Когда поймёш что это такое, думаю вопрос пропадёт, о том как их генерировать.
PM MAIL ICQ   Вверх
doomik
Дата 17.12.2006, 20:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Одинокий волк
**


Профиль
Группа: Участник
Сообщений: 360
Регистрация: 25.10.2005
Где: #vingrad

Репутация: нет
Всего: 15



Код

program UsingRandom;
begin
   randomize;
   writeln(random(10));
readln;
end.


Генерирует и выводит число в диапозоне 0 - 9.


--------------------
"Единственный способ изучать новый язык программирования - писать на нем 
программы." 
- Brian Kernighan

Remember, st1ng3r 
/server irc.ircline.ru /j #vingrad
PM   Вверх
БАБАЯН
Дата 17.12.2006, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 17.12.2006

Репутация: нет
Всего: нет



Мне нужна какая-нибудь по солидней программкаsmile Чтоб она могла выводить простое число размерностью хотя бы цифр в 20(можно и больше). Help!
PM MAIL   Вверх
Zero
Дата 17.12.2006, 22:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Код

var
  i:integer;
begin
  randomize;
  for i:=1 to 20 do
    write(random(100),' ');
end.
  smile  smile  smile  smile  smile  smile  smile 
PM MAIL ICQ   Вверх
anwe
Дата 17.12.2006, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: нет
Всего: 23



Да, можно слепить несколько раз random. Но как будешь хранить это 20 цифр? В нескольких переменных? Тогда и алгоритм их запонения будет чуть другой.
PM MAIL   Вверх
МАСК
Дата 19.12.2006, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 19.12.2006

Репутация: нет
Всего: нет



необходима программа, которая выводила бы большое простое число(20 или более цифр), близкое к тому числу, которое мы вводим с клавиатуры. Решето Эратосфена не подходит, так с помощью его очень долго генерировать большие простые числа. Необходим другой метод...
PM MAIL   Вверх
Rodman
Дата 19.12.2006, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: нет
Всего: 122



а ты генери числа, а из них отбирай ближайшие в каком то диапазоне... и пока 20 чисел не наберешь, не останавливайся...
PM MAIL WWW Skype GTalk YIM MSN   Вверх
МАСК
Дата 19.12.2006, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 19.12.2006

Репутация: нет
Всего: нет



При чем тут 20 чисел???????????Я же говорю мне нужно ЧИСЛО, СОСТОЯЩЕЕ ИЗ 20 ЦИФР (10 в 20 степени)! Вы видимо меня не правильно поняли с самого начала.
PM MAIL   Вверх
Zero
Дата 19.12.2006, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



PM MAIL ICQ   Вверх
V.A.KeRneL
  Дата 21.12.2006, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vadim A. Kazantsev
**


Профиль
Группа: Участник
Сообщений: 291
Регистрация: 3.12.2006
Где: Moscow, Russia

Репутация: нет
Всего: 14



БАБАЯН, МАСК, так что вам нужно? Ещё более конкретно! Просто вывести такое число? Тогда это халява! Или же далее с ним нужно работать, выполнять над ним какие-либо ещё операции?.. Тогда сложнее, надо будет реализовать длинную арифметику!..

Если 1-ое, то можно прибегнуть к ухищрению: 
Код

const 
    MAXDIGITS = 20;
var 
    ndigits : integer;
    i : integer;
begin 
    randomize;
    {while (true) do begin }
    ndigits := random(MAXDIGITS);
    if (ndigits = 0) then
        write(0)
    else
    begin
        write(random(9) + 1);
        for i := 2 to ndigits do
            write({' ',} random(10));
    end;
    writeln;  {перевод строки}
    readln;  {пауза до нажатия клавиши «anykey» ;)}
    {end;}
end.

smile

Вот блин, и я попался! smile Прочитал заголовок, подумал элементарщину ламер спрашивает, т.к. в сознании отложилось, что нужно просто вывести (и произвести другую операцию) длинное (20 и более цифр) целое число!

А что касается исходной задачи, то она довольно-таки нетривиальная: совместить длинную арифметику и эффективный поиск простых чисел. Решето Эратосфена действительно медленно для таких больших чисел. Я бы посоветовал использовать тест Миллера-Рабина для проверки числа на простоту, не забывая о псевдо-простых числах Кармайкла. Но реализовывать это на Паскале влом, да и времени щас не так много... Сам понимаешь, сессия!..


Это сообщение отредактировал(а) V_A_KeRneL - 21.12.2006, 01:41


--------------------
«C'est un pense-creux d'ici. C'est le meilleur et le plus irascible homme du monde...» © Ф.М. Достоевский, «Бесы»
---/)/)---(\.../)---(\(\
--(':'=)---(=';'=)---(=':')
(")(")..)-(").--.(")-(..(")(")

PM MAIL IM ICQ AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0684 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.