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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Random, не пойму.. 
:(
    Опции темы
KIPISH
Дата 12.4.2004, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Привет всем.. люди объясните как зделать "Random" словам, чёто не доходит никак=(( я пробую так
A: Array[1..3] of String = ('R','T','J');
Random(A) + 1;
Объясните плиззз...
PM MAIL   Вверх
Sniper
Дата 12.4.2004, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



A: Array[1..3] of String = ('R','T','J');
Random(A) + 1;

Так работать не будет! wink.gif
Нужно делать что-то типа этого:

var
A: Array[0..2] of String = ('R','T','J');
a_index: Integer;

for a_index = 0 to 2 do
begin
Random(A[a_index]) + 1;
end;

Хотя я наверное не понял задание...

Это сообщение отредактировал(а) Sniper - 12.4.2004, 11:36


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
KIPISH
Дата 12.4.2004, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо Но так чёт тоже не работает-->"мне надо чтоб выбирались каждый раз разные слова из моей переменной"... smile.gif
PM MAIL   Вверх
dm9
Дата 12.4.2004, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

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



const N = 3;
A: array [1..N] of String = ('R','T','J');
s := A[Random(N)+1];

В s - случайная строка.

Ну или просто так, без константы:

A: array [1..3] of String = ('R','T','J');
s := A[Random(3)+1];


PS Random (L) выводит случайное целое число в интервале от нуля до L-1
Также, насколько я помню, Random без параметра выдаёт случайное число с тремя знаками после запятой в интервале [0, 1).

Это сообщение отредактировал(а) dm9 - 12.4.2004, 12:41
PM MAIL ICQ   Вверх
remax
Дата 12.4.2004, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент
**


Профиль
Группа: Участник Клуба
Сообщений: 686
Регистрация: 7.4.2002
Где: Украина, Харьков

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



Random - псевдослучайная последовательность. Чтобы при каждом запуске программы генерация чисел начиналось с разного места этой последовательности - используй процедуру Randomize (например при старте программы), а затем уже получай значения с помощью функции Random.



--------------------
Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку
PM MAIL ICQ Skype   Вверх
KIPISH
Дата 12.4.2004, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(remax @ 12.4.2004, 14:11)
Random - псевдослучайная последовательность. Чтобы при каждом запуске программы генерация чисел начиналось с разного места этой последовательности - используй процедуру Randomize (например при старте программы), а затем уже получай значения с помощью функции Random.

Спасибо я в курсе... smile.gif
PM MAIL   Вверх
Sniper
Дата 12.4.2004, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



если уж тема про Random... то и я спрошу! wink.gif

Как она вообще реализуется? Может с помощью таймера?


--------------------
"Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный".
Кен Томпсон, создатель Unix
PM MAIL   Вверх
remax
Дата 12.4.2004, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент
**


Профиль
Группа: Участник Клуба
Сообщений: 686
Регистрация: 7.4.2002
Где: Украина, Харьков

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



Нет. Таймер используется только при "рандомизации" при "случайной" переустановке номера позиции в псевдослучайной последовательности.


--------------------
Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку
PM MAIL ICQ Skype   Вверх
Pakshin A. S.
Дата 12.4.2004, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Random - это фигня не всегда работает! У меня на компе первые десять чисел всегда одинаковы!!!

Где-то в форуме видел ильтернативы этому Random'у...
PM   Вверх
remax
Дата 12.4.2004, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент
**


Профиль
Группа: Участник Клуба
Сообщений: 686
Регистрация: 7.4.2002
Где: Украина, Харьков

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



Если не использовать Randomize перед применением Random, то так и должно быть. Это специально так задумано, чтобы можно было отладить программу, которая работает со случайными числами. Как только отладка заверешена, добавляем в начале программы вызов функции Randomize и тогда получаем каждый раз разный набор "первых десяти" или сколько там надо случайных чисел.

Конечно, как генератор случайной последовательности функция Random не очень хороша. Если Вы собираетесь строить сложные математические модели стохастического типа и должны обеспечить большой период повтерения и низкий уровень корреляции, то разумеется Random не годится. Проще это все сделать в каком либо математическом пакете. Тем более, что функция Random генерирует случайную величину имеющую равномерное распределение. В делфи есть еще функция RandG - нормальное распределение. Но его генерация осуществляется на базе Random методом отсева, что не лучшим способом действует на его характеристики.

Однако, если Вы моделируете игру в кости или что-нибудь подобное, то штатных средств делфи вполне хватает.

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


--------------------
Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку
PM MAIL ICQ Skype   Вверх
Pakshin A. S.
Дата 13.4.2004, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата

Если не использовать Randomize перед применением Random, то так и должно быть. Это специально так задумано, чтобы можно было отладить программу, которая работает со случайными числами. Как только отладка заверешена, добавляем в начале программы вызов функции Randomize и тогда получаем каждый раз разный набор "первых десяти" или сколько там надо случайных чисел.

В том и весь прикол: Randomize присутствует, а первая десяика всегда одна и та же; на другом компе всё работает!
PM   Вверх
x77
Дата 13.4.2004, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Pakshin A. S., чудес не бывает. приведи код.



--------------------
Я никогда не сопротивлялся искушению, поскольку узнал: что мне
не нравится, то меня не искушает.
© Джордж Бернард Шоу (Ирландия)
PM MAIL ICQ   Вверх
z-END
Дата 13.4.2004, 21:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

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



Pakshin A. S. может я ошибаюсь, но помоему это был баг Пней он даже как-то назывался че-то типа ошибок при работе с плавающей точкой... Вроде как их изяли с продажи... может тебе он нечаянно продали? biggrin.gif


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
Pakshin A. S.
Дата 13.4.2004, 21:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



x77
Код

Randmize;
for i:=1 to 10 do
writeln(Random(100));

Вы думаете, что я с Random'ом не умею работать?! Ошибаетесь!!!

nJIaKca.spb
Все может быть... Эта проблема исчезла после переустановки Windows'а, после сноса всего C:\...

К слову про Win: наблюдалось самовольное изменение переменных в памяти!!! Это было даже в простых кодах... Используя большие числа при int64 я замечал, что некоторые разряды периодически меняли своё значение! Поменяешь имя переменной, работает... Но жто было в прошлом, теперь всё в полном порядке!

PM   Вверх
Гость_sergey
Дата 13.4.2004, 22:17 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











так давно искал такого рода форум плиз хелППП.
вот код
procedure Tform1.Timer1Timer(Sender: TObject);

var
x,y:integer;
begin
y:=random(243);
x:=random(252);
button1.top:=y;
button1.left:=x;
все конечно работает хорошо но надо чтоб Y принимал только 5 значений а X 3 значения.
как задать random определенные целые цифры к примеру 10.120.243 чтоб разное значение только из этих цифр было .
ПОМОГИТЕ ЕСЛИ МОЖНО !!!!!
ЗА РАНЕЕ БЛАГОДАРЕН

  Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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