1. Найдем мощность алфавита: N = 33 русских прописных буквы + 33 русских строчных букв + 21 специальный знак = 87 символов.Подставим в формулу и рассчитаем количество информации: 2. I = log287 = 6,4 бита. Такое количество информации - информационный объем - несет один символ в русском тексте. Теперь, чтобы найти количество информации во всем тесте, нужно найти общее количество символов в нем и умножить на информационный объем одного символа. Пусть в тексте 3000 символов. Значит: 3. 6,4*3000 =19140 бит.Теперь дадим задание переводчику перевести этот текст на немецкий язык. Причем так, чтобы в тексте осталось 3000 символов. Содержание текста при этом осталось точно такое же. Поэтому с точки зрения вероятностного подхода количество информации также не изменится, т.е. новых и понятных знаний не прибавилось и не убавилось.
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018 Внимание! Если программа не работает, обновите версию!
procedure FillStack(st:Stack<integer>; sq:sequence of integer); begin foreach var t in sq do st.Push(t); end;
procedure PrintStack(st:Stack<integer>; s:string); begin Write(s); st.Println end;
procedure ToStack(sta,stb:Stack<integer>; Even:boolean); begin if Even then while sta.Count>0 do begin var v:=sta.Pop; if v.IsEven then begin stb.Push(v); exit end end else while sta.Count>0 do begin var v:=sta.Pop; if v.IsOdd then begin stb.Push(v); exit end end end;
begin var st1:=new Stack<integer>; FillStack(st1,Seq(2,13,20,18,1)); PrintStack(st1,'Стек1: '); var st2:=new Stack<integer>; FillStack(st2,Seq(9,11,10,8,4)); PrintStack(st2,'Стек2: '); var st3:=new Stack<integer>; while st1.Count+st2.Count>0 do begin ToStack(st1,st3,True); ToStack(st2,st3,False); end; PrintStack(st3,'Стек3: ') end.