![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| KIPISH |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 4.4.2004 Репутация: нет Всего: нет |
Привет всем.. люди объясните как зделать "Random" словам, чёто не доходит никак=(( я пробую так
A: Array[1..3] of String = ('R','T','J'); Random(A) + 1; Объясните плиззз... |
|||
|
||||
| Sniper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
A: Array[1..3] of String = ('R','T','J');
Random(A) + 1; Так работать не будет! Нужно делать что-то типа этого: 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 |
|||
|
||||
| KIPISH |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 4.4.2004 Репутация: нет Всего: нет |
Спасибо Но так чёт тоже не работает-->"мне надо чтоб выбирались каждый раз разные слова из моей переменной"...
|
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: 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 |
|||
|
||||
| remax |
|
|||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: 1 Всего: 5 |
Random - псевдослучайная последовательность. Чтобы при каждом запуске программы генерация чисел начиналось с разного места этой последовательности - используй процедуру Randomize (например при старте программы), а затем уже получай значения с помощью функции Random.
-------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
| KIPISH |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 4.4.2004 Репутация: нет Всего: нет |
Спасибо я в курсе... |
|||
|
||||
| Sniper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 511 Регистрация: 8.5.2002 Репутация: нет Всего: 2 |
если уж тема про Random... то и я спрошу!
Как она вообще реализуется? Может с помощью таймера? -------------------- "Я испытываю отвращение к системе, разработаннной для "пользователя", если в слове "пользователь" закодировано уничижительное значение "тупой и примитивный". Кен Томпсон, создатель Unix |
|||
|
||||
| remax |
|
|||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: 1 Всего: 5 |
Нет. Таймер используется только при "рандомизации" при "случайной" переустановке номера позиции в псевдослучайной последовательности.
-------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
Random - это фигня не всегда работает! У меня на компе первые десять чисел всегда одинаковы!!!
Где-то в форуме видел ильтернативы этому Random'у... |
|||
|
||||
| remax |
|
|||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: 1 Всего: 5 |
Если не использовать Randomize перед применением Random, то так и должно быть. Это специально так задумано, чтобы можно было отладить программу, которая работает со случайными числами. Как только отладка заверешена, добавляем в начале программы вызов функции Randomize и тогда получаем каждый раз разный набор "первых десяти" или сколько там надо случайных чисел.
Конечно, как генератор случайной последовательности функция Random не очень хороша. Если Вы собираетесь строить сложные математические модели стохастического типа и должны обеспечить большой период повтерения и низкий уровень корреляции, то разумеется Random не годится. Проще это все сделать в каком либо математическом пакете. Тем более, что функция Random генерирует случайную величину имеющую равномерное распределение. В делфи есть еще функция RandG - нормальное распределение. Но его генерация осуществляется на базе Random методом отсева, что не лучшим способом действует на его характеристики. Однако, если Вы моделируете игру в кости или что-нибудь подобное, то штатных средств делфи вполне хватает. Конечно, есть реализации готовых псевдо случайных генераторов с более высокими характеристиками, но их надо поискать в доп. математических библиотеках к делфи. А можно и сделать самому... -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
В том и весь прикол: Randomize присутствует, а первая десяика всегда одна и та же; на другом компе всё работает! |
|||
|
||||
| x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
Pakshin A. S., чудес не бывает. приведи код.
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
| z-END |
|
|||
![]() прафесар™ ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3014 Регистрация: 13.3.2003 Где: Венья, Пиетари Репутация: 11 Всего: 102 |
Pakshin A. S. может я ошибаюсь, но помоему это был баг Пней он даже как-то назывался че-то типа ошибок при работе с плавающей точкой... Вроде как их изяли с продажи... может тебе он нечаянно продали?
-------------------- Каждый чилавек пасвоему праф...а памоему НЕТ! |
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
x77
Вы думаете, что я с Random'ом не умею работать?! Ошибаетесь!!! nJIaKca.spb Все может быть... Эта проблема исчезла после переустановки Windows'а, после сноса всего C:\... К слову про Win: наблюдалось самовольное изменение переменных в памяти!!! Это было даже в простых кодах... Используя большие числа при int64 я замечал, что некоторые разряды периодически меняли своё значение! Поменяешь имя переменной, работает... Но жто было в прошлом, теперь всё в полном порядке! |
|||
|
||||
| Гость_sergey |
|
|||
|
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: Общие вопросы" | |
|
|
Запрещается! 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. |