IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Случайные числа, Вопрос по Random'у
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 26
Пол: Мужской
Реальное имя: Роман

Репутация: -  0  +


Утро Доброе smile.gif

Возникла проблемка, надеюсь Вы поможете мне разобраться с этой бякой.

И так : Есть задачка : Вывести 5 уникальных случайных чисел из диапазона 0..10.

Вот код решающий данную задачу и с ним я полностью согласен :
const N=5;
var
mas : array[1..N] of integer;
i, k, L : integer;
wasBefore : boolean;
begin
Randomize;
mas[1] := Random(35)+1;
for i:=2 to N do begin
repeat
L := Random(35)+1;
wasBefore := false;
for k:=1 to i-1 do
if mas[k]=L then begin
wasBefore := true;
break
end;
until not wasBefore;
mas[i] := L;
end;

{выдача полученных чисел}
for i:=1 to N do Write(mas[i]:3,' ');
WriteLn;
Reaadln;
end.
by Серж

Но так же один человек предложил такой вариант решения задачи :
Цитата
- сначала заполнить массив нужной длины (в данном случае 10) последовательными числами,
- затем перемешать эти числа (random используется именно на этапе перемешивания).


Если бы данный алгоритм употреблялся бы к перемешиванию карт в колоде, то я полностью одобрил бы этот алгоритм.. Но в условиях данной задачи, мне кажется, не допустимо использование данного алгоритма.. Почему? - Когда массив уже заполнен, нужно как-то выбрать 5 элементов массива, а как это сделать? - Рандом уже нам не помошник, а писать Write (a[1], a[3], a[34], etc) мне кажется неправильно..

Надеюсь что Вы опровергните или подтвердите мое "мне кажется" smile.gif

P.S. Задачку мне не сдавать.. Решаю только для себя..
P.P.S. Надеюсь я создал темку в том разделе

Спасибо rolleyes.gif

Сообщение отредактировано: Ромаха -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.05.2024 3:00
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name