Задание 7 Параграф 4.3 ГДЗ Босова 8 класс 2023 (Информатика)
var
х, у, n: integer; begin
writeln (‘Исследование функции random’);
write (‘Введите х»’); read (х);
write (‘Введите n»’); read (п); у := random (х);
writeln (‘random(‘, х,’)=’, у); write (‘random(‘, х,’)+’, n, ‘=’, у + n) end.
Как можно получить случайное число из интервала (0, х)? Как можно получить случайное число из полуинтервала (0, х]? Как можно получить случайное число из интервала (n, х + n)?
а) (0,x) – random(x-1)+1;
б) (0,x] – random(x)+1;
в) (n, x+n) – random (x)+n.
Проверка программой:
var
n, x, i: integer;
begin
read(x, n);
randomize; //для обновления списка
for i := 1 to 5 do
write(random(x-1)+1, ‘ ‘)
end.
Функция random(x) в Pascal возвращает целое случайное число из полуинтервала $$[0; x)$$, то есть от $$0$$ до $$x-1$$.
Тогда:
- чтобы получить число из интервала $$ (0; x) $$, нужно сдвинуть результат на 1: $$random(x-1)+1$$;
- чтобы получить число из полуинтервала $$ (0; x] $$, также используем сдвиг на 1: $$random(x)+1$$;
- чтобы получить число из интервала $$ (n; x+n) $$, нужно прибавить $$n$$: $$random(x)+n$$.
Проверка программой показывает, что при многократном запуске действительно получаются случайные значения из нужного диапазона.
Ответ:
а) $$random(x-1)+1$$;
б) $$random(x)+1$$;
в) $$random(x)+n$$.