// PascalABC.NET 3.2, сборка 1334 от 12.11.2016 begin var a:=ReadlnString('->').ToWords; a.Select((x,i)->(x,x.Length,i)).OrderByDescending(x->x[1]). ThenBy(x->x[0]).Select(x->x[0]).Println end.
Пример -> Карл у Клары украл кораллы Клара у Карла украла кларнет кларнет кораллы украла Карла Клара Клары украл Карл у у
// PascalABC.NET 3.2, сборка 1334 от 12.11.2016 begin var s1:=''; var s2:=''; var s:=ReadlnString('->'); var p:integer; for var i:=1 to s.Length do begin p:=pos(s[i],s1); if p>0 then s[i]:=s2[p] end; Writeln(s) end.
Для этого представим кол-во ьукв в алфавите в степени числа два
16=2^4 => i= 4 бита
Так же для второго:
256 = 2^8 =>i= 8бит
Кол-во символов одиннаковое, составим отношение алфавитных подходов
(K)
n*i/ n * i. n сокращаем.
8/4= 2 Разница в два раза.
Для письменной работы:
Дано:
K1=K2
N1=16
N2=256
I1/I2-?
Решение:
N=2^i
16=2^4 => i= 4 бита
256 = 2^8 =>i= 8бит
I(Инф. обьес всего файла)= K*i
I1/I2= K 1i / K 2i. K сокращаем
1i / 2i
4/8= 2. (Большое на меньшее делить надо)
В два раза кол-во инфооиации во втором тексте больше, чем в первом
begin
var a:=ReadlnString('->').ToWords;
a.Select((x,i)->(x,x.Length,i)).OrderByDescending(x->x[1]).
ThenBy(x->x[0]).Select(x->x[0]).Println
end.
Пример
-> Карл у Клары украл кораллы Клара у Карла украла кларнет
кларнет кораллы украла Карла Клара Клары украл Карл у у
// PascalABC.NET 3.2, сборка 1334 от 12.11.2016
begin
var s1:='';
var s2:='';
var s:=ReadlnString('->');
var p:integer;
for var i:=1 to s.Length do begin
p:=pos(s[i],s1);
if p>0 then s[i]:=s2[p]
end;
Writeln(s)
end.
Пример
-> abracadabra
deudfdgdeud