2. Некоторое устройство передачи данных может генерировать 256 различных символа. Чему равно количество информации по Хартли, приходящееся на сообщение из 10 символов? 3. Известно, что для некоторого источника сообщений количество информации по Хартли, приходящееся на 1 символ, равно 6 битам. Чему равно количество символов в алфавите источника сообщений?
4. Два источника генерируют по два символа. Первый источник генерирует символы с равными вероятностями, второй – с различными. Для какого источника количество информации по Шеннону, приходящееся на один символ, будет больше?
5. Пусть источник сообщений может генерировать n разных сообщений m1, m2, ..., mn с вероятностями p1, p2,... , pn. Определите энтропию источника для заданных исходных данных:
o n = 4; p1 = 0,25, p2= 0,25, p3 = 0,375, p4 = 0,125
o n = 6; p1 = 0,0025, p2= 0,0075, p3 = 0,09, p4 = 0,2, p5= 0,5, p6 = 0,2
o n = 4; p1= 0,25, p2= 0,1, p3 = 0,15, p4 = 0,5
6. Зашифруйте сообщение m шифром Вернама с ключом k:
o m = 1001001110, k = 0100111011
o m = 0101101110, k = 1010101011
o m = 1111001101, k = 0110001011
7. 7. Рассчитайте энтропию ключа для шифра Цезаря со сдвигом на n позиций, применяемого для сообщений на русском языке ( 32 буквы ).
8. 8. Рассчитайте расстояние единственности для шифра Цезаря со сдвигом на n позиций, применяемого для сообщений на русском языке ( 32 буквы ). Избыточность сообщений на русском языке принять равной 3,5 бит на символ.
9. 9. Предполагая, что все варианты ключей равновероятны и возможны, рассчитайте расстояние единственности для шифров с заданной длиной двоичного ключа N, применяемых к сообщениям, избыточность которых составляет D:
o N=256 бит, D =3,5 ;
o N=512 бит, D =3 ;
o N=128 бит, D =4.
//Pascal
const m = 1000
var
arr: array[1..m] of integer;
n,i, j, k: integer;
begin
readln(n);
write ('Исходный массив: ');
for i := 1 to n do begin
readln(arr[i]);
end;
//сортировка методом пузырька
for i := 1 to n-1 do
for j := 1 to n-i do
if arr[j] > arr[j+1] then begin
k := arr[j];
arr[j] := arr[j+1];
arr[j+1] := k
end;
write ('Отсортированный массив: ');
for i := 1 to n do
write (arr[i]:4);
end.
Алгоритм сортировки на классическом языке программирования С
# define SWAP(A,B) {A=A^B;B=A^B;A=A^B;}
void bubblesort(int A[], int n)
{
int i, j;
for(i = n-1 ; i > 0 ; i--)
{ for(j = 0 ; j < i ; j++)
{
if( A[j] > A[j+1] ) SWAP(A[j],A[j+1]);
}
}
}
// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
begin
Writeln(Range(1,100).Select(i->sin(i)*cos(i)).Where(x->x<>0).Average)
end.
Тестовое решение:
-0.00136006072493969
2. А вот так учат писать это же школьные учителя:
// PascalABC.NET 3.1, сборка 1174 от 22.02.2016
var
m:array[1..100] of real;
i,k:integer;
s:real;
begin
s:=0;
k:=0;
for i:=1 to 100 do begin
m[i]:=sin(i)*cos(i);
if m[i]<>0 then begin
s:=s+m[i];
k:=k+1
end
end;
Writeln(s/k)
end.
Тестовое решение:
-0.00136006072493969