применим метод уменьшения в два раза области неопределенности(путь к стелажу выделен жирным шрифтом):
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
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 бит информации
Ответ дал: Гость
#include < stdio.h> # define in "input.txt"# define out "output.txt"unsigned long long sum(int n){unsigned long long otv=0; for (int i=1; i*i< =n; i++)if %i)){otv+=i; if(i*i! =n)otv+=n/i; }return otv; }int main(void){unsigned long long n,otv=0; freopen(in,"r",stdin); freopen(out,"w",stdout); scanf("%i64d",& n); otv=sum(n); printf("%i64d",otv); return 0; }
Ответ дал: Гость
var i, j, min, min_i, min_j: integer; a: array[1..5, 1..5] of integer;
begin for i : = 1 to 5 do begin for j : = 1 to 5 do begin a[i, j] : = random(100) + 1; write(a[i, j]: 4); end; writeln; end; min : = 999; for i : = 1 to 5 do for j : = 1 to 5 do if min > a[i, j] then begin min : = a[i, j]; min_i : = i; min_j : = j; end; a[min_i, min_j] : = 0; writeln('массив с замененным минимальным элементом'); for i : = 1 to 5 do begin for j : = 1 to 5 do write(a[i, j]: 4); writeln; end; end.
Ответ дал: Гость
1)
var
a,b,x,y: real;
begin
readln(a,b);
x: =(a+b)/2;
y: =2*a*b;
if a> b then
begin
a: =y;
b: =x;
end
else
begin
a: =x;
b: =y;
end;
writeln('a=',a: 8: 3);
writeln('b=',b: 8: 3);
end.
2)
var
d,m: integer;
begin
readln(d,m);
if (d< 1) or (d> 31) then writeln ('день введен неверно');
if (m< 1) or (m> 12) then writeln ('месяц введен неверно');
Популярные вопросы