Найдем кол-во символов в сообщении:
K=32*40*8=10240
Найдем информационный объем одного символа:
10 кб переводим в биты: 10*1024*8=81920, тогда информационный объем одного символа (i) = 81920/10240 = 8, тогда кол-во символов в алфавите (N):
N=2^i (2 в степени i) = 2^8 = 256.
Ответ: в алфавите 256 символов
<u>1) Решение методом рекурсии.</u>
<u>Программа проста в понимании, но неэффективна при больших значениях
</u>var
n: integer;
function f(i: integer): longint;
begin
if i < 2 then
f := 1
else
f := f(i - 1) + f(i - 2);
end;
begin
read(n);
writeln(f(n));
end.
<u>2) Решение методом динамического программирования. Намного быстрее метода с рекурсией.</u><u></u>
var
i, n: integer;
f: array[0..50] of longint;
begin
read(n);
f[0] := 1;
f[1] := 1;
for i := 2 to n do
f[i] := f[i - 1] + f[i - 2];
writeln(f[n]);
end.
<u>3) Решение методом моделирования. Использует меньше памяти.
</u>var
n, a, b, i: integer;
begin
read(n);
if n < 2 then
a := 1
else
begin
a := 0;
b := 1;
for i := 0 to n do
begin
b := a + b;
a := b - a;
end;
end;
writeln(a);
end.
Условие здесь должно быть i >= 0
1 шаг: 3 >= 0 ⇒ true, i=2
2 шаг: 2 >= 0 ⇒ true, i=1
3 шаг: 1 >= 0 ⇒ true, i=0
4 шаг: 0 >= 0 ⇒ true, i=-1
5 шаг: -1 >= 0 ⇒ false