Применим метод уменьшения в два раза области неопределенности(путь к стелажу выделен жирным шрифтом):
16
8-8
4-4 4-4
2-2 2-2 2-2 2-2
1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1
МЫ потратили 4 бита информации на поиск нужного стеллажа, теперь нащдо найти нужную нам полку:
6
3-3
2-1 2-1
1-1 1 1-1 1
Потрачено еще 3 бита информации. Всего информации 4+3 равно 7 бит информации Воспользуемся формулой: 2
2^i=N
Количество информации о нахождении стеллажа:
2^4=16
i=4 бита
Количество информации о нахождении полки:
2^i6 поэтому возьмем число 2^i так чтобы результат находился рядом с числом 6. Так как если число будет меньше 6 то мы не сможем точно получить информация, то 2^i должно быть больше 6. Значит:
var i,j,n:longint; f:boolean; begin writeln('Введите число'); readln(n); if n<2 then writeln('Простых делителей нет') else begin write('Число ',n,' ','= 1'); for i:=2 to n do if n mod i=0 then begin f:=true; j:=2; while f and(j<=round(sqrt(i/2)))do begin if i mod j=0 then f:=false else j:=j+1; end; if f then write('*',i); end; end; end.
16
8-8
4-4 4-4
2-2 2-2 2-2 2-2
1-1 1-1 1-1 1-1 1-1 1-1 1-1 1-1
МЫ потратили 4 бита информации на поиск нужного стеллажа, теперь нащдо найти нужную нам полку:
6
3-3
2-1 2-1
1-1 1 1-1 1
Потрачено еще 3 бита информации. Всего информации 4+3 равно 7 бит информации Воспользуемся формулой: 2
2^i=N
Количество информации о нахождении стеллажа:
2^4=16
i=4 бита
Количество информации о нахождении полки:
2^i6 поэтому возьмем число 2^i так чтобы результат находился рядом с числом 6. Так как если число будет меньше 6 то мы не сможем точно получить информация, то 2^i должно быть больше 6. Значит:
2^3=8
I=3
4+3=7 бит информации
var i,j,n:longint;
f:boolean;
begin
writeln('Введите число');
readln(n);
if n<2 then writeln('Простых делителей нет')
else
begin
write('Число ',n,' ','= 1');
for i:=2 to n do
if n mod i=0 then
begin
f:=true;
j:=2;
while f and(j<=round(sqrt(i/2)))do
begin
if i mod j=0 then f:=false
else j:=j+1;
end;
if f then write('*',i);
end;
end;
end.
Тестовое решение:
Введите число
2345
Число 2345 = 1*5*7*35*67