Как написать программу в Паскале, чтобы 2 рандомных числа не повторялось?

0 голосов
39 просмотров

Как написать программу в Паскале, чтобы 2 рандомных числа не повторялось?


Информатика (70 баллов) | 39 просмотров
0

Можно подробнее о том, где/как это будет использоваться?

0

Нужно написать программу, которая случайным образом выбирает дежурных в классе от 1 до n, где n- кол-во учеников. Но иногда программа выдает, например: 6 и 6. То есть, один и тот же ученик.

0

Ой, еще: выбирает ДВА дежурных

Дано ответов: 2
0 голосов
Правильный ответ

Var a,b,n:integer;
begin
n:=10;
Randomize;
a:=random(n)+1;
b:=random(n)+1;
while b=a do b:=random(n)+1;
writeln('a = ',a,' b = ',b);
end.

Пример:
a = 8 b = 4

(194k баллов)
0 голосов

{
Думаю, это должно работать
Важно, что во второй раз выбор происходит уже среди n-1 вариантов
}

const n = 10;
var i,j: integer;
begin
i := 1 + random(n);
j := 1 + random(n-1);
if j >= i then j := j + 1;
write(i,' ',j)
end.

(8.5k баллов)