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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2011, 12:22   #1
Fanyuus
Форумчанин
 
Аватар для Fanyuus
 
Регистрация: 07.05.2011
Сообщений: 169
По умолчанию random

Пожалуйста подскажите, как лучше использовать "random", если он очень часто использует первые элементы.

Суть программы в том, что нужно вызывать различные элементы из массива, который уже известен.

но при тестировании, 5 элементов, 15 попыток вызвать их рендомно - очень часто вызываются 1 или 2,

кусок программы:
______________

for i:=1 to 15 do
begin
g:=random(4)+1;
write(c);
read(a[g]);
______________


мне кажется, что из-за FOR RANDOM часто берёт 1,



подскажите как брать случайные числа для массива А или как сделать так, чтобы random повторялся не так часто???
Fanyuus вне форума Ответить с цитированием
Старый 07.05.2011, 12:26   #2
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

randomize(); в начале юзали?
onewho вне форума Ответить с цитированием
Старый 07.05.2011, 12:47   #3
Fanyuus
Форумчанин
 
Аватар для Fanyuus
 
Регистрация: 07.05.2011
Сообщений: 169
По умолчанию

onewho

нет, не указала

в книге читала, кратко, об этом, но так и не поняла для чего нужна это функция.
Подскажите тогда - зачем она? для чего конкретно?
буду очень признательна!
Fanyuus вне форума Ответить с цитированием
Старый 07.05.2011, 12:58   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Randomize - это инициализация генератора случайных чисел, грубо говоря, использование этой процедуры просто включает его.

onewho
Для того, чтобы инициализировать генератор, параметры этой процедуре не нужны, то есть можно просто написать
Код:
Randomize;
А дальше свой код...
Вадим Мошев вне форума Ответить с цитированием
Старый 07.05.2011, 13:07   #5
Fanyuus
Форумчанин
 
Аватар для Fanyuus
 
Регистрация: 07.05.2011
Сообщений: 169
По умолчанию

Вадим Мошев

думаете после этого 1 или 2 будет не так часто использоваться?
хорошо, вечером проверю
Fanyuus вне форума Ответить с цитированием
Старый 07.05.2011, 13:33   #6
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Для того, чтобы инициализировать генератор, параметры этой процедуре не нужны, то есть можно просто написать
Код:
Randomize;
да, точно, забыл что это паскаль.


автору:
вообще странно, что у вас без этой "батарейки" разные числа выдавались..
просто в самом начале программы подрубайте randomize; и проверяйте..
onewho вне форума Ответить с цитированием
Старый 07.05.2011, 13:48   #7
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от Fanyuus Посмотреть сообщение
Вадим Мошев

думаете после этого 1 или 2 будет не так часто использоваться?
хорошо, вечером проверю
Я прочитал код, тут выбор-то сам по себе очень невелик. То есть у вас будет целые числа из диапазона 1..4. Разброс очень маленький...

Советую: если у вас в массиве содержится n элементов, то и получайте значения от 1 до n.
Вадим Мошев вне форума Ответить с цитированием
Старый 07.05.2011, 15:43   #8
Fanyuus
Форумчанин
 
Аватар для Fanyuus
 
Регистрация: 07.05.2011
Сообщений: 169
По умолчанию

onewho
так это... магия! :D


Вадим Мошев
да, это для проверки были небольшие числа, конечно, думаю, сделать массив на 30-50 элементов.
Fanyuus вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Random AlinKoy Паскаль, Turbo Pascal, PascalABC.NET 0 02.05.2011 14:35
random Ya_Aston Помощь студентам 6 17.12.2010 21:31
c# Random BMWSauber Помощь студентам 1 16.11.2010 23:52
random writer_88 Помощь студентам 8 30.10.2010 21:40
Random W_P Паскаль, Turbo Pascal, PascalABC.NET 2 08.10.2008 00:05