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

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

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

> Случайные числа, Вопрос по Random'у
Ромаха
сообщение 27.01.2013 9:30
Сообщение #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

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

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


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

 

- Текстовая версия 29.07.2025 15:31
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"