Случайные числа и символы

ЗАДАЧА

Написать программу, которая генерирует в указанных пользователем границах

случайное целое число,
случайное вещественное число,
случайный символ.
Для каждого из трех случаев пользователь задает свои границы диапазона. Например, если надо получить случайный символ от ‘a’ до ‘f’, то вводятся эти символы. Программа должна вывести на экран любой символ алфавита от ‘a’ до ‘f’ включительно

В языках программирования есть функции, генерирующие случайные (псевдослучайные) числа. В одних языках функция генерирует целое число, в других — вещественное, в Pascal, например, и то и другое.

Для того, чтобы получить число в заданных границах, надо вычислить длину диапазона, получить случайное число от 0 до значения длины диапазона, затем прибавить минимум, т.е. смещение от 0. Например, надо получить случайное число от 5 до 100. Длина диапазона равна 100-5=95. Генерируем число от 0 до 95, а затем прибавляем к нему 5. Если будет случайно получен 0, то добавив к нему 5, получим 5 (минимально возможное), если же будет случайно получено число 95, то наше число будет 100 (максимально возможное).

Получение случайного символа аналогично получению целого числа. Добавляется только перевод символов в числа (и наоборот) по таблице кодов символов.

Pascal


паскаль случайное число

var
min_i, max_i, n_i: integer;
min_f, max_f, n_f: real;
first_c, last_c: char;
min_c, max_c, n_c: byte;
begin
randomize;
write('Minimum integer: ');
readln(min_i);
write('Maximum integer: ');
readln(max_i);
n_i := random(max_i-min_i+1) + min_i;
writeln(n_i);

write('Minimum float: ');
readln(min_f);
write('Maximum float: ');
readln(max_f);
n_f := random() * (max_f-min_f) + min_f;
writeln(n_f:5:2);

write('First char: ');
readln(first_c);
write('Last char: ');
readln(last_c);
min_c := ord(first_c);
max_c := ord(last_c);
n_c := random(max_c-min_c+1) + min_c;
writeln(chr(n_c));
end.



Minimum integer: -10
Maximum integer: 10
3
Minimum float: 0.5
Maximum float: 1.25
0.70
First char: a
Last char: f
f

Функция random() генерирует целое число, если ей передать параметр-целое. Например, random(10) сгенерирует случайное число от 0 до 9 включительно.

Без параметров random() возвращает вещественное число от 0 до 1.

Команда randomize необходима для того, чтобы при каждом запуске программы генерировались разные случайные числа.

Язык Си


#include
#include
main() {
srand(time(NULL));

int n,min,max;
scanf("%d%d", &min, &max);
n = rand() % (max-min + 1) + min;
printf("%d\n", n);

float nf,minf,maxf;
scanf("%f%f%*c", &minf, &maxf);
nf = (float) rand() / RAND_MAX * (maxf - minf) + minf;
printf("%.3f\n", nf);

char nc,minc,maxc;
scanf("%c%*c", &minc);
scanf("%c%*c", &maxc);
nc = rand() % (maxc-minc + 1) + minc;
printf("%c\n", nc);
}



-10
10
0
0.5
1.25
0.618
a
f
a

Функция rand() генерирует целое число от 0 до значения константы, содержащейся в одном из заголовочных файлов.

Находят остаток от деления сгенерированного числа на длину диапазона. Получается число от 0 до значения длины диапазона.

Python


python случайное число

from random import random

m1 = int(input())
m2 = int(input())
n = int(random() * (m2-m1+1)) + m1
print(n)

m1 = float(input())
m2 = float(input())
n = random() * (m2-m1) + m1
print(round(n,3))

m1 = ord(input())
m2 = ord(input())
n = int(random() * (m2-m1+1)) + m1
print(chr(n))



-10
10
-2
0.5
1.25
0.904
a
f
e

КуМир


алг случайное
нач
цел m1, m2, n
ввод m1, m2
n := int(rnd(m2-m1+1))+m1
вывод n, нс

вещ m1f, m2f, nf
ввод m1f, m2f
nf := rnd(m2f-m1f)+m1f
вывод nf, нс

сим m1c, m2c
ввод m1c, m2c
m1 := юникод(m1c)
m2 := юникод(m2c)
n := int(rnd(m2-m1+1))+m1
вывод символ2(n), нс
кон



-10 10
-5
0.5 1.25
0.998909
a f
a

Функция rnd() генерирует случайное вещественное число от 0 до переданного ей значения.

В КуМире можно преобразовывать символы в коды и наоборот по двум таблицам: Юникод и КОИ-8.

Basic-256


input min
input max
n = int(rand() * (max-min+1)) + min
print n

input min
input max
n = rand() * (max-min) + min
print n

input min$
input max$
min = asc(min$)
max = asc(max$)
n = int(rand() * (max-min+1)) + min
print chr(n)



-10
10
4
0.5
1.25
0.882108
a
f
d

Функция rand() генерирует случайное вещественное число от 0 до 1.

Подписаться
Уведомить о
guest

1 Комментарий
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Aluminiu
Aluminiu
2 лет назад

import random
def symbol_random(mi, mx):
mi = ord(mi[0])
mx = ord(mx[0])# [0] — защита от дурака
return chr(random.randint(mi, mx))
# с числовыми значениями изобретать велосипед не буду

Pascal

паскаль случайное число

var
min_i, max_i, n_i: integer;
min_f, max_f, n_f: real;
first_c, last_c: char;
min_c, max_c, n_c: byte;
begin
randomize;
write('Minimum integer: ');
readln(min_i);
write('Maximum integer: ');
readln(max_i);
n_i := random(max_i-min_i+1) + min_i;
writeln(n_i);

write('Minimum float: ');
readln(min_f);
write('Maximum float: ');
readln(max_f);
n_f := random() * (max_f-min_f) + min_f;
writeln(n_f:5:2);

write('First char: ');
readln(first_c);
write('Last char: ');
readln(last_c);
min_c := ord(first_c);
max_c := ord(last_c);
n_c := random(max_c-min_c+1) + min_c;
writeln(chr(n_c));
end.



Minimum integer: -10
Maximum integer: 10
3
Minimum float: 0.5
Maximum float: 1.25
0.70
First char: a
Last char: f
f

Функция random() генерирует целое число, если ей передать параметр-целое. Например, random(10) сгенерирует случайное число от 0 до 9 включительно.

Без параметров random() возвращает вещественное число от 0 до 1.

Команда randomize необходима для того, чтобы при каждом запуске программы генерировались разные случайные числа.
Язык Си

#include
#include
main() {
srand(time(NULL));

int n,min,max;
scanf("%d%d", &min, &max);
n = rand() % (max-min + 1) + min;
printf("%d\n", n);

float nf,minf,maxf;
scanf("%f%f%*c", &minf, &maxf);
nf = (float) rand() / RAND_MAX * (maxf - minf) + minf;
printf("%.3f\n", nf);

char nc,minc,maxc;
scanf("%c%*c", &minc);
scanf("%c%*c", &maxc);
nc = rand() % (maxc-minc + 1) + minc;
printf("%c\n", nc);
}



-10
10
0
0.5
1.25
0.618
a
f
a

Функция rand() генерирует целое число от 0 до значения константы, содержащейся в одном из заголовочных файлов.

Находят остаток от деления сгенерированного числа на длину диапазона. Получается число от 0 до значения длины диапазона.
Python

python случайное число

from random import random

m1 = int(input())
m2 = int(input())
n = int(random() * (m2-m1+1)) + m1
print(n)

m1 = float(input())
m2 = float(input())
n = random() * (m2-m1) + m1
print(round(n,3))

m1 = ord(input())
m2 = ord(input())
n = int(random() * (m2-m1+1)) + m1
print(chr(n))



-10
10
-2
0.5
1.25
0.904
a
f
e
КуМир

алг случайное
нач
цел m1, m2, n
ввод m1, m2
n := int(rnd(m2-m1+1))+m1
вывод n, нс

вещ m1f, m2f, nf
ввод m1f, m2f
nf := rnd(m2f-m1f)+m1f
вывод nf, нс

сим m1c, m2c
ввод m1c, m2c
m1 := юникод(m1c)
m2 := юникод(m2c)
n := int(rnd(m2-m1+1))+m1
вывод символ2(n), нс
кон



-10 10
-5
0.5 1.25
0.998909
a f
a

Функция rnd() генерирует случайное вещественное число от 0 до переданного ей значения.

В КуМире можно преобразовывать символы в коды и наоборот по двум таблицам: Юникод и КОИ-8.
Basic-256

input min
input max
n = int(rand() * (max-min+1)) + min
print n

input min
input max
n = rand() * (max-min) + min
print n

input min$
input max$
min = asc(min$)
max = asc(max$)
n = int(rand() * (max-min+1)) + min
print chr(n)



-10
10
4
0.5
1.25
0.882108
a
f
d

Функция rand() генерирует случайное вещественное число от 0 до 1.