Возможны следующие варианты расположения кладов:
1 2 3 4
К К - -
К - К -
К - - К
- К К -
- К - К
- - К К
Всего 6 возможных вариантов.
Необходимое количество бит для кодирования = log(2)6 ≈ 2,58 ≈ 3 бита
Const N = 50;
Var
A:array[1..N] of integer;
i:integer;
S:real;
Begin
Randomize;
Write('Исходный массив: ');
For i:= 1 to N do
Begin
A[i]:=random(21)-10;
Write(A[i],' ');
S:=S+A[i]
End;
WriteLn;
WriteLn('Sr = ',S/N);
End.
Пример:
Исходный массив: 4 2 -2 -4 -7 7 -9 6 -10 10 -4 -4 -5 3 0 -2 -3 0 -4 9 -1 -4 -2 -4 -9 2 2 -10 -8 -2 -8 -7 6 2 -9 7 2 -10 -10 -4 -9 -7 -2 -10 2 1 -3 6 0 0
Sr = -2.04
<em>// PascalABC.NET 3.2, сборка 1338 от 16.11.2016</em>
begin
var s100:=Arr('','сто','двести','триста','четыреста','пятьсот',
'шестьсот','семьсот','восемьсот','девятьсот');
var s10:=Arr('','десять','двадцать','тридцать','сорок','пятьдесят',
'шестьдесят','семьдесят','восемьдесят','девяносто');
var s11:=Arr('','одиннадцать','двенадцать','тринадцать','четырнадцать',
'пятнадцать','шестнадцать','семнадцать','восемнадцать',
'девятнадцать');
var s1:=Arr('','один','два','три','четыре','пять','шесть',
'семь','восемь','девять');
var n:=ReadInteger('Укажите трехзначное натуральное число');
var s:=s100[n div 100];
var n10:=(n div 10) mod 10;
var n1:=n mod 10;
case n10 of
0:if n1>0 then s:=s+' '+s1[n1];
1:if n1=0 then s:=s+' '+s10[1]
else s:=s+' '+s11[n1];
else begin
s:=s+' '+s10[n10];
if n1>0 then s:=s+' '+s1[n1]
end
end;
Writeln(s)
end.
Program n1;
var a: real;
begin
write('введите мили: ');
readln(a);
writeln('это ',a*1.6 ,' километров');
end.