![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 3 Всего: 54 |
я вот тут столкнулся с такой проблемкой, решил написать программу, которая бы выдавала мне случайное число... пробовал это сделать так
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
random без параметров возвращает число с плавающей точкой. Чтобы было целое нужно задать параметр (максимальное число в последовательности)
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
mmvds |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 230 Регистрация: 22.12.2007 Репутация: нет Всего: 6 |
Не совсем так, например, random(10) это числа от 0 до 9 и максимальное тут 9.
И кстати, чтобы последовательность генерируемых чисел была каждый раз разной следует писать Randomize; перед первым вызовом Random |
||||
|
|||||
0LineGate |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 176 Регистрация: 17.2.2007 Где: Россия, Тула Репутация: 0 Всего: 2 |
...в итоге это:
|
|||
|
||||
valerchi |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
А можно у кого- нибудь узнать, сколько ГСЧ выдаёт чисел в секунду, и как сделать чтобы генератор случайных чисел выдавал больше чисел в секунду?
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
Зависит от частоты производительности процессора. На каждый запрос вернет число. Никаких внутренних задержек нет, есть только загрузка на вычисление очередного числа. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
valerchi |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
А что если сделать много потоков, которые генерируют случайные числа? |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 5 Всего: 68 |
||||
|
||||
valerchi |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
||||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 5 Всего: 68 |
Возрастет, куда ж она денется то? Тока смысл?
Это сообщение отредактировал(а) ~FoX~ - 15.10.2010, 17:09 |
|||
|
||||
valerchi |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
мне нужно много случайных чисел. Где-то около триллиона. А с обыкновенной скоростью получить такое количество чисел за короткое время, - невозможно. |
|||
|
||||
Guedda |
|
|||
![]() Подрывник ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3137 Регистрация: 27.12.2005 Где: Ростов-на-Дону Репутация: 1 Всего: 78 |
Создавай несколько потоков..
-------------------- Ll 2 |
|||
|
||||
valerchi |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
Спасибо, попробую.
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
Только если число потоков будет меньше или равно числу ядер иначе прирост будет отрицательный. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
valerchi |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
||||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
При непрерывной генерации ядро будет загружено на 100%, если его работу прерывать на лишнюю работу переключения контекстов, быстрее работать не будет. Поэтому быстрее всего будет если на каждом ядре будет свой поток, который будет его грузить на 100% -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 5 Всего: 68 |
||||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
Потоки оправданы когда есть простой и можно переключиться на другую задачу. В случае использования делфийского генератора случайных чисел простоя нет, поэтому нет смысла в избыточных потоках. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
valerchi |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
То есть я это понял так, - нужно узнать скольки - ядерный у меня процессор, а потом создать программу с количеством потоков не большим, чем количество ядер у процессора? Добавлено через 11 минут и 2 секунды
Так что, получается, что получить от ГСЧ больше чисел за определённый промежуток времени не возможно? |
||||
|
|||||
valerchi |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
Так что, получается, что получить от ГСЧ больше чисел за определённый промежуток времени не возможно?
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
Кстати а где предполагается хранить трилион чисел? Не в оперативке же. Запись на диск 4х терабайтов займет наверное стуки, так что вопрос производительности не стоит вообще. Кстати если такая серьезная задача, то я бы подыскал более серьезный генератор псевдослучайных чисел чем делфийский. У делфийского наверняка период повторяемости около 1 млн. так что смысла в 1 млн повторяющихся последовательностей по 1 млн занимающих кучу места. Кроме того для триллионной последовательности наверняка нужно числа больше чем integer, а такого делфийский генератор делать не умеет. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
valerchi |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
Они будут не храниться, а проверяться, и если будут найдены нужные, тогда программа останавливается и результат записывается в текстовый файл.... А что можно посоветовать в этом "деле"? Добавлено через 4 минуты и 16 секунд Скажу подробней. Я пытаюсь просчитать лотерею. Числа будут в диапазоне от 0 до 52. |
|||
|
||||
valerchi |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
Так что никто не знает, как добиться большого количества чисел от ГСЧ за малый промежуток времени?
|
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
Больше чем что? Покажите результаты замеров с текущим генератором и определите сколько нужно. Никто не будет решать абстрактную задачу. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
valerchi |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
Alexeis, ты писал:
"...я бы подыскал более серьезный генератор псевдослучайных чисел чем делфийский. У делфийского наверняка период повторяемости около 1 млн. так что смысла в 1 млн повторяющихся последовательностей по 1 млн занимающих кучу места. Кроме того для триллионной последовательности наверняка нужно числа больше чем integer, а такого делфийский генератор делать не умеет. " А что именно нужно подыскать? Другой язык программирования, или какую-то прогу? Дело в том, что я проверил, оказывается делфийский генератор выдаёт очень много чисел, приблизительно 250 миллионов в секунду. И по предположениям должны генерироваться новые и новые комбинации чисел, а они никак не выпадают. И создаётся впечатление, что числа, как ты и говорил - повторяются. |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 34 Всего: 459 |
Так и есть последовательности повторяются примерно через интервал порядка миллионов. Вот пример неплохого генератора http://ru.wikipedia.org/wiki/%D0%92%D0%B8%...%BD%D0%BD%D0%B0 И пример реализации на паскале http://www.rksolution.cz/delphi/dtip0008.txt -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
valerchi |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 163 Регистрация: 27.5.2008 Где: Геническ Репутация: нет Всего: нет |
Спасибо, посмотрю. |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |