<u>PascalABC.NET 3.3.5, сборка 1662 от 29.04.2018</u>
<u>Внимание! Если программа не работает, обновите версию!</u>
begin
var s:=ReadlnString.OrderBy(c->c).ToArray;
var i:=s.FindIndex(t->t<>'0'); Swap(s[0],s[i]);
s.Println
end.
<u>Пример</u>
54560345345601323451233903454658345034521212
10000111222223333333334444444455555555566689
i = log ₂ 1/p
вероятность того, что достали красный клубок: Рк = 4/12 = 1/3
количество информации, что достали красный клубок:
i = log ₂ 1/(1/3) = log ₂ 3 бит
вероятность того, что достали черный клубок: Рк = 8/12 = 2/3
количество информации, что достали черный клубок:
i = log ₂ 1/(2/3) = log ₂ (3/2) бит
Var
B: array[1..10] of integer;
i, c, p, s: integer;
begin
write('C = ');
readln(c);
for i := 1 to 10 do begin
write('B[', i, ']=');
readln(B[i]);
end;
c := 1;
p := 1; s := 0;
for i := 1 to 10 do begin
p := p * (B[i] - C);
s := s + B[i];
end;
for i := 1 to 10 do
writeln('A[',i,']=',(s-p)*B[i]);
<span>end.</span>