Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2014, 23:39   #21
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Цитата:
Randomize забыл.
Её достаточно 1 раз при Create вызывать. Хотя оно и само вызывается где-то, иначе рандом бы хрен работал.
Человек_Борща вне форума Ответить с цитированием
Старый 19.06.2014, 19:16   #22
Endifier
Пользователь
 
Регистрация: 17.06.2014
Сообщений: 36
По умолчанию

Честно говоря, не ясно зачем Randomize нужно вызывать, якобы одинаковые значения иначе генерить будет, однако, это не так, по крайней мере, в моем случае.
Endifier вне форума Ответить с цитированием
Старый 19.06.2014, 19:38   #23
саша40
Участник клуба
 
Регистрация: 12.09.2012
Сообщений: 1,030
По умолчанию

Цитата:
Сообщение от Endifier Посмотреть сообщение
Честно говоря, не ясно зачем Randomize нужно вызывать, якобы одинаковые значения иначе генерить будет, однако, это не так, по крайней мере, в моем случае.
Генерировать будет предсказуемый результат. Функция Randomize позволяет функции Random в твоем приложение генерировать всегда разный результат. Использовать Randomize рекомендуется, когда часто используют Random.
Что нужно программисту: Компьютер, Среда программирование, Воображение, Прямые руки, Мозги, Знания этой среды программирования.
Программист-это профессия, а программирование-это моё хобби.
саша40 вне форума Ответить с цитированием
Старый 19.06.2014, 19:45   #24
StriderX
Форумчанин
 
Регистрация: 21.04.2014
Сообщений: 115
По умолчанию

Цитата:
Сообщение от Endifier Посмотреть сообщение
Честно говоря, не ясно зачем Randomize нужно вызывать, якобы одинаковые значения иначе генерить будет, однако, это не так, по крайней мере, в моем случае.
Очень грубая схема работы: есть заранее записанный набор чисел в массиве. Функция random просто берёт число из таблицы и переходит к следующему. Текущий номер - это RandSeed. При старте программы там какой-нибудь мусор в памяти валяется, велика вероятность, что после перезапуска он инициализируется на том же месте с тем же значением (никто ничего не гарантирует). Функция randomize просто используется для "произвольного" выбора RandSeed, в качестве источника энтропии выступают часы.
Естественно, что можно взять RandSeed полностью под свой контроль (и получить "код для генерации уровня" в какой-нибудь игре или же жестко его зафиксировать для отладки конкретной сбойной ситуации)

Последний раз редактировалось StriderX; 19.06.2014 в 19:54.
StriderX вне форума Ответить с цитированием
Старый 20.06.2014, 16:22   #25
Endifier
Пользователь
 
Регистрация: 17.06.2014
Сообщений: 36
По умолчанию

саша40, StriderX спасибо за пояснение, буду учитывать.
Endifier вне форума Ответить с цитированием
Старый 20.06.2014, 16:35   #26
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Randomize всего лишь генерирует новое значение глоб. переменной, которая учавствует в создании случайного числа. Нет там никаких таблиц Просто глоб. переменная.
Человек_Борща вне форума Ответить с цитированием
Старый 20.06.2014, 16:44   #27
StriderX
Форумчанин
 
Регистрация: 21.04.2014
Сообщений: 115
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Randomize всего лишь генерирует новое значение глоб. переменной, которая учавствует в создании случайного числа. Нет там никаких таблиц Просто глоб. переменная.
Там ключевая фраза "очень грубо". Попытался донести идею, что сам рандом - совсем не рандом, а более чем формальная формулка для вычисления следующего элемента на основании текущего %)
StriderX вне форума Ответить с цитированием
Старый 20.06.2014, 16:48   #28
Endifier
Пользователь
 
Регистрация: 17.06.2014
Сообщений: 36
По умолчанию

Ребят, но суть то в примере моем не в рандоме-) но все равно спасибо, как то особо и не вдавался в подробную работу рандома.

Последний раз редактировалось Endifier; 20.06.2014 в 16:50.
Endifier вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
UserForm на панели задач? kss Microsoft Office Excel 1 25.09.2012 02:28
Значок на Панели задач volod3000 Общие вопросы Delphi 10 16.05.2011 20:13
Размеры панели задач tsar_ Общие вопросы Delphi 5 03.03.2011 20:45
апплет панели задач skalt12 Общие вопросы Delphi 5 01.08.2010 14:34