
Капитон
5 год назад
Напишите программу по выдаче рандомных чисел, содержащих от 1 до 5 знаков, состоящих из чисел от 1 до 12, так чтобы:За цифрой 1могли следовать только цифры 4, 5, 7, 9, 10За цифрой 2- только 5, 6, 8, 10, 11За цифрой 3 - только 6, 7, 9, 11, 12За цифрой 4 - только 1, 7, 8, 10, 12За цифрой 5 - только 1, 2, 8, 9, 11За цифрой 6 - только 2, 3, 9, 10, 12За цифрой 7- только 1, 3, 4, 10, 11За цифрой 8 - только 2, 4, 5, 11, 12За цифрой 9 - только 1, 3, 5, 6, 12За 10 - только 1, 2, 4, 6, 7За 11 - только 2, 3, 5, 7, 8За 12 - только 3, 4, 6, 8, 9Примерные результаты программы:1473, 21106, 112, 82
ОТВЕТЫ

Tiedeman Ingrid
Oct 24, 2020
{
Вам следовало бы более точно описать, что вам нужно.
Непонятно, что это за условие со следованием. В примере 21106 за цифрой 2 следует 11, но за 11 не следует ничего из перечисленного. Ну или в нем 10 следует за 1, но тогда зачем условия следования для 10..12?
+ ничего не сказано про случайное распределение этих чисел. Так-то программа, которая все время выводит "1", тоже подходит под эти условия
}
const
R: array[1..12,1..5] of integer = (
(4,5,7,9,10), //1
(5,6,8,10,11), //2
(6,7,9,11,12), //3
(1,7,8,10,12), //4
(1,2,8,9,11), //5
(2,3,9,10,12), //6
(1,3,4,10,11), //7
(2,4,5,11,12), //8
(1,3,5,6,12), //9
(1,2,4,6,7), //10
(2,3,5,7,8), //11
(3,4,6,8,9) //12
);
var i,k:integer;
begin
k := 1 + random(12);
for i := 1 to 1 + random(3) do
begin
write(k);
k := R[k,1 + random(5)];
end;
end.
Вам следовало бы более точно описать, что вам нужно.
Непонятно, что это за условие со следованием. В примере 21106 за цифрой 2 следует 11, но за 11 не следует ничего из перечисленного. Ну или в нем 10 следует за 1, но тогда зачем условия следования для 10..12?
+ ничего не сказано про случайное распределение этих чисел. Так-то программа, которая все время выводит "1", тоже подходит под эти условия
}
const
R: array[1..12,1..5] of integer = (
(4,5,7,9,10), //1
(5,6,8,10,11), //2
(6,7,9,11,12), //3
(1,7,8,10,12), //4
(1,2,8,9,11), //5
(2,3,9,10,12), //6
(1,3,4,10,11), //7
(2,4,5,11,12), //8
(1,3,5,6,12), //9
(1,2,4,6,7), //10
(2,3,5,7,8), //11
(3,4,6,8,9) //12
);
var i,k:integer;
begin
k := 1 + random(12);
for i := 1 to 1 + random(3) do
begin
write(k);
k := R[k,1 + random(5)];
end;
end.
43
Смежные вопросы: