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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Генератор случайных чисел 
:(
    Опции темы
SneG0K
Дата 21.1.2008, 20:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Max Mara
***


Профиль
Группа: Завсегдатай
Сообщений: 1887
Регистрация: 1.12.2007
Где: Wis Dells

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



я вот тут столкнулся с такой проблемкой, решил написать программу, которая бы выдавала мне случайное число... пробовал это сделать так
Код

var
i:integer;
begin
i:=random;
Label1.caption:=IntToStr(i);
Но вылазит ошибка при компиляции... мож уже кто сталкивался с этим??? помогите
PM WWW Skype   Вверх
Alexeis
Дата 21.1.2008, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



random без параметров возвращает число с плавающей точкой. Чтобы было целое нужно задать параметр (максимальное число в последовательности)


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
mmvds
Дата 21.1.2008, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Alexeis @  21.1.2008,  20:48 Найти цитируемый пост)
random без параметров возвращает число с плавающей точкой. Чтобы было целое нужно задать параметр (максимальное число в последовательности) 

Не совсем так, например, random(10) это числа от 0 до 9 и максимальное тут 9.
Цитата

Delphi syntax:
function Random [ ( Range: Integer) ];
Description
In Delphi code, Random returns a random number within the range 0 <= X < Range. If Range is not specified, the result is a real-type random number within the range
0 <= X < 1.
 Цитата из хелпа.
И кстати, чтобы последовательность генерируемых чисел была каждый раз разной следует писать
Randomize; перед первым вызовом Random
PM MAIL ICQ   Вверх
0LineGate
Дата 22.1.2008, 00:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



...в итоге это:
Код

var
i:integer;
begin
Randomize;
i:=random(1000001);
Label1.caption:=IntToStr(i);

PM MAIL WWW Skype   Вверх
valerchi
Дата 15.10.2010, 12:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



А можно у кого- нибудь узнать, сколько ГСЧ выдаёт чисел в секунду, и как сделать чтобы генератор случайных чисел выдавал больше чисел в секунду?
PM MAIL   Вверх
Alexeis
Дата 15.10.2010, 12:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(valerchi @  15.10.2010,  13:13 Найти цитируемый пост)
А можно у кого- нибудь узнать, сколько ГСЧ выдаёт чисел в секунду

  Зависит от частоты производительности процессора. На каждый запрос вернет число. Никаких внутренних задержек нет, есть только загрузка на вычисление очередного числа.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
valerchi
Дата 15.10.2010, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Alexeis @ 15.10.2010,  12:28)
  Зависит от частоты производительности процессора. На каждый запрос вернет число. Никаких внутренних задержек нет, есть только загрузка на вычисление очередного числа.

А что если сделать много потоков, которые генерируют случайные числа?
PM MAIL   Вверх
~FoX~
Дата 15.10.2010, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

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



Цитата(valerchi @  15.10.2010,  16:29 Найти цитируемый пост)
А что если сделать много потоков, которые генерируют случайные числа? 

Будет много сгенерированных случайных чисел...


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
valerchi
Дата 15.10.2010, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(~FoX~ @ 15.10.2010,  15:33)
Цитата(valerchi @  15.10.2010,  16:29 Найти цитируемый пост)
А что если сделать много потоков, которые генерируют случайные числа? 

Будет много сгенерированных случайных чисел...

А скорость генерации чисел возрастёт?
PM MAIL   Вверх
~FoX~
Дата 15.10.2010, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

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



Возрастет, куда ж она денется то? Тока смысл?

Это сообщение отредактировал(а) ~FoX~ - 15.10.2010, 17:09


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
valerchi
Дата 15.10.2010, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(~FoX~ @ 15.10.2010,  17:08)
Возрастет, куда ж она денется то? Тока смысл?

мне нужно много случайных чисел. Где-то около триллиона. А с обыкновенной скоростью получить такое количество чисел за короткое время, - невозможно.
PM MAIL   Вверх
Guedda
Дата 15.10.2010, 18:01 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

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



Создавай несколько потоков.. 


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
valerchi
Дата 15.10.2010, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Спасибо, попробую.
PM MAIL   Вверх
Alexeis
Дата 15.10.2010, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(~FoX~ @  15.10.2010,  18:08 Найти цитируемый пост)
Возрастет, куда ж она денется то? Тока смысл?

  Только если число потоков будет меньше или равно числу ядер иначе прирост будет отрицательный. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
valerchi
Дата 15.10.2010, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Alexeis @ 15.10.2010,  18:45)
Цитата(~FoX~ @  15.10.2010,  18:08 Найти цитируемый пост)
Возрастет, куда ж она денется то? Тока смысл?

  Только если число потоков будет меньше или равно числу ядер иначе прирост будет отрицательный.

Объясни это поподробней, пожалуйста
PM MAIL   Вверх
Alexeis
Дата 15.10.2010, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(valerchi @  15.10.2010,  19:50 Найти цитируемый пост)
Объясни это поподробней, пожалуйста 

  При непрерывной генерации ядро будет загружено на 100%, если его работу прерывать на лишнюю работу переключения контекстов, быстрее работать не будет.  Поэтому быстрее всего будет если на каждом ядре будет свой поток, который будет его грузить на 100%


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
~FoX~
Дата 16.10.2010, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

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



Цитата(Alexeis @  15.10.2010,  19:45 Найти цитируемый пост)
  Только если число потоков будет меньше или равно числу ядер иначе прирост будет отрицательный.  

Это с чего бы? .... Или по вашему ГСЧ нагружает конвееры?

Это сообщение отредактировал(а) ~FoX~ - 16.10.2010, 00:45


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Alexeis
Дата 16.10.2010, 01:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(~FoX~ @  16.10.2010,  01:43 Найти цитируемый пост)
Это с чего бы? .... Или по вашему ГСЧ нагружает конвееры?

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


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
valerchi
Дата 16.10.2010, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Alexeis @ 15.10.2010,  18:45)
  Только если число потоков будет меньше или равно числу ядер иначе прирост будет отрицательный.

То есть я это понял так, - нужно узнать скольки - ядерный у меня процессор, а потом создать программу с количеством потоков не большим, чем количество ядер у процессора?

Добавлено через 11 минут и 2 секунды
Цитата(Alexeis @ 16.10.2010,  01:31)
Цитата(~FoX~ @  16.10.2010,  01:43 Найти цитируемый пост)
Это с чего бы? .... Или по вашему ГСЧ нагружает конвееры?

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

Так что, получается, что получить от  ГСЧ больше чисел за определённый промежуток времени не возможно?
PM MAIL   Вверх
valerchi
Дата 16.10.2010, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Так что, получается, что получить от  ГСЧ больше чисел за определённый промежуток времени не возможно? 
PM MAIL   Вверх
Alexeis
Дата 16.10.2010, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(valerchi @  16.10.2010,  11:46 Найти цитируемый пост)
Так что, получается, что получить от  ГСЧ больше чисел за определённый промежуток времени не возможно?  

  Кстати а где предполагается хранить трилион чисел? Не в оперативке же. Запись на диск 4х терабайтов займет наверное стуки, так что вопрос производительности не стоит вообще. Кстати если такая серьезная задача, то я бы подыскал более серьезный генератор псевдослучайных чисел чем делфийский. У делфийского наверняка период повторяемости около 1 млн. так что смысла в 1 млн повторяющихся последовательностей по 1 млн занимающих кучу места. Кроме того для триллионной последовательности наверняка нужно числа больше чем integer, а такого делфийский генератор делать не умеет. 


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
valerchi
Дата 16.10.2010, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Alexeis @ 16.10.2010,  12:09)
Цитата(valerchi @  16.10.2010,  11:46 Найти цитируемый пост)
Так что, получается, что получить от  ГСЧ больше чисел за определённый промежуток времени не возможно?  

  Кстати а где предполагается хранить трилион чисел? Не в оперативке же. Запись на диск 4х терабайтов займет наверное стуки, так что вопрос производительности не стоит вообще. Кстати если такая серьезная задача, то я бы подыскал более серьезный генератор псевдослучайных чисел чем делфийский. У делфийского наверняка период повторяемости около 1 млн. так что смысла в 1 млн повторяющихся последовательностей по 1 млн занимающих кучу места. Кроме того для триллионной последовательности наверняка нужно числа больше чем integer, а такого делфийский генератор делать не умеет.

Они будут не храниться, а проверяться, и если будут найдены нужные, тогда программа останавливается и результат  записывается в текстовый файл....  А что можно посоветовать в этом "деле"?

Добавлено через 4 минуты и 16 секунд
Скажу подробней. Я пытаюсь просчитать лотерею. Числа будут в диапазоне от 0 до 52.
PM MAIL   Вверх
valerchi
Дата 17.10.2010, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Так что никто не знает, как  добиться большого количества чисел от ГСЧ за малый промежуток времени?
PM MAIL   Вверх
Alexeis
Дата 17.10.2010, 12:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(valerchi @  17.10.2010,  10:57 Найти цитируемый пост)
Так что никто не знает, как  добиться большого количества чисел от ГСЧ за малый промежуток времени? 

  Больше чем что? Покажите результаты замеров с текущим генератором и определите сколько нужно. Никто не будет решать абстрактную задачу.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
valerchi
Дата 17.10.2010, 20:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Alexeis, ты писал:
"...я бы подыскал более серьезный генератор псевдослучайных чисел чем делфийский. У делфийского наверняка период повторяемости около 1 млн. так что смысла в 1 млн повторяющихся последовательностей по 1 млн занимающих кучу места. Кроме того для триллионной последовательности наверняка нужно числа больше чем integer, а такого делфийский генератор делать не умеет.  "

А что именно нужно подыскать? Другой язык программирования, или какую-то прогу?

Дело в том, что я проверил, оказывается делфийский генератор выдаёт очень много чисел, приблизительно 250 миллионов в секунду. И по предположениям должны генерироваться новые и новые комбинации чисел, а они никак не выпадают. И создаётся впечатление, что числа, как ты и говорил - повторяются.
PM MAIL   Вверх
Alexeis
Дата 18.10.2010, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

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



Цитата(valerchi @  17.10.2010,  21:52 Найти цитируемый пост)
и новые комбинации чисел, а они никак не выпадают. И создаётся впечатление, что числа, как ты и говорил - повторяются. 

  Так и есть последовательности повторяются примерно через интервал порядка миллионов. 

Вот пример неплохого генератора http://ru.wikipedia.org/wiki/%D0%92%D0%B8%...%BD%D0%BD%D0%B0
И пример реализации на паскале http://www.rksolution.cz/delphi/dtip0008.txt


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
valerchi
Дата 18.10.2010, 11:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Alexeis @ 18.10.2010,  00:18)
Цитата(valerchi @  17.10.2010,  21:52 Найти цитируемый пост)
и новые комбинации чисел, а они никак не выпадают. И создаётся впечатление, что числа, как ты и говорил - повторяются. 

  Так и есть последовательности повторяются примерно через интервал порядка миллионов. 

Вот пример неплохого генератора http://ru.wikipedia.org/wiki/%D0%92%D0%B8%...%BD%D0%BD%D0%B0
И пример реализации на паскале http://www.rksolution.cz/delphi/dtip0008.txt

Спасибо, посмотрю.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

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

1. Публиковать ссылки на вскрытые компоненты

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

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


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

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


 




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


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

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