//PascalABC.NET (версия 3.1, сборка 1210 от 29.03.2016) const n = 10; var a:array[1..n] of integer; i,j:integer; begin // Заполним массив сл. числами for i:=1 to n do begin a[i]:=random(0,99); write(a[i]:4); end; writeln; //сортировка массива по убыванию последней цифры. for i := 1 to n-1 do for j := 1 to n-i do if (a[j] mod 10) > (a[j+1]mod 10) then swap(a[j],a[j+1]); writeln('Отсортированный массив : '); for i:=1 to n do write(a[i]:4); end.
Нам важно однозначное разбиение, поэтому вариант "00" не подходит, так как его можно спутать с буквой "Б". Другие значение проверим при дерева.
1. Пусть буква "Г" будет записана в первую ветку (1). Распишем ее.
Первой ветке подходит буква "В", так как код начинается с единицы. Рисуем еще ветку, также с единицей и нулем. Получается, что "В" пойдет во вторую ветку (0), а "Г", соответственно, в первую. Итого получаем: В = 10, Г = 11.
2) Пусть "Г" будет во второй ветке (0). С нуля начинаются буквы "А" и "Б", поэтому их тоже пишем. Рисуем еще две ветки. Так как А = 01, то она пойдет в первую ветку, буквы "Б" и "Г" пишем во вторую. "Б" = 000, поэтому пишем во вторую ветку, следовательно, "Г" пойдет в первую. Итого: А = 01, Б = 000, Г = 001.
Теперь сравним полученные значения. Переведем их в десятичную систему счисления.
11₂ = 1*2¹ + 1*2⁰ = 2 + 1 = 3₁₀.
001₂ = 1*0² + 1*0¹ + 1*2⁰ = 0 + 0 + 1 = 1₁₀.
В итоге, значение 001 является минимальным и соответствует однозначному декодированию.
const n = 10;
var a:array[1..n] of integer;
i,j:integer;
begin
// Заполним массив сл. числами
for i:=1 to n do begin
a[i]:=random(0,99); write(a[i]:4);
end;
writeln;
//сортировка массива по убыванию последней цифры.
for i := 1 to n-1 do
for j := 1 to n-i do
if (a[j] mod 10) > (a[j+1]mod 10) then
swap(a[j],a[j+1]);
writeln('Отсортированный массив : ');
for i:=1 to n do write(a[i]:4);
end.
Тестовое решение:
14 60 69 6 10 77 66 67 44 84
Отсортированный массив :
60 10 14 44 84 6 66 77 67 69
Нам важно однозначное разбиение, поэтому вариант "00" не подходит, так как его можно спутать с буквой "Б". Другие значение проверим при дерева.
1. Пусть буква "Г" будет записана в первую ветку (1). Распишем ее.
Первой ветке подходит буква "В", так как код начинается с единицы. Рисуем еще ветку, также с единицей и нулем. Получается, что "В" пойдет во вторую ветку (0), а "Г", соответственно, в первую. Итого получаем: В = 10, Г = 11.
2) Пусть "Г" будет во второй ветке (0). С нуля начинаются буквы "А" и "Б", поэтому их тоже пишем. Рисуем еще две ветки. Так как А = 01, то она пойдет в первую ветку, буквы "Б" и "Г" пишем во вторую. "Б" = 000, поэтому пишем во вторую ветку, следовательно, "Г" пойдет в первую. Итого: А = 01, Б = 000, Г = 001.
Теперь сравним полученные значения. Переведем их в десятичную систему счисления.
11₂ = 1*2¹ + 1*2⁰ = 2 + 1 = 3₁₀.
001₂ = 1*0² + 1*0¹ + 1*2⁰ = 0 + 0 + 1 = 1₁₀.
В итоге, значение 001 является минимальным и соответствует однозначному декодированию.
ответ: 001.
Решение смотри во вложении.