На розе ветров отмечают преобладающее направление ветра. Направление выбирают из таких вариантов «север», «северосеверо-восток», «северо-восток», «восток-северо-восток», «восток», «восток-юго-восток», «юго-восток», «юго-юго-восток», «юг», «юго-юго-запад», «юго-запад», «запад-юго-запад», «запад», «запад-северо-запад», «северо-запад» и «северо-северо-запад». Какое количество информации содержится в каждой отметке о направлении ветра? Счи
i - кол-во бит
N - мощность (кол-во всех возможных вариаций)
Корабль передаёт либо длинный, либо короткий значит может принимать всего 2 состояния. Он отправляет 6 сигналов (3 коротких 3 длинных) Значит код-во возможных вариаций расстановок этих сигналов будет равна
Подставим в формулу
Следовательно i = 6
Кол-во бит информации - 6
ответ: 6
///////////////////////////////////////////////////////
А вообще для таких задач я использую такую формулу
K - сколько всего может быть исходов, i - кол-во бит
Корабль может передавать либо короткий, либо длинный сигнал. Значит кол-во состояний - 2
Он передаёт 3 коротких и 3 длинных, значит всего - 3+3 = 6
кол-во всех возможных исходов при 6 сигналах и кол-во состояний будет равно
Если ты понимаешь суть логарифма, то ответ уже думаю тебе ясен, если нет, то читай дальше :)
Подставляем в нашу формулу кол-во возможных событий
логарифм по основанию a, это значит надо найти такою степень числа a, при возведении в которую получится число, которое в выражении логарифма, а так как мы в логарифме по основанию 2 возводим число 2, то тут и вычислять нечего. Просто пишем степень двойки.
Это число 6.
const n=20;
type arr=array[1..n] of integer;
var a:arr;
i,x:integer;
procedure f(a:arr; x:integer);
var i,i1,i2:integer;
begin
i1:=1; i2:=n;
repeat
i:=(i1+i2) div 2;
if a[i]<x then i1:=(i1+i2) div 2+1;
if a[i]>x then i2:=(i1+i2) div 2-1;
until (a[i]=x)or(i1>i2);
if a[i]=x then
begin
writeln('Искомый(ые) номер(а) элемента(ов):');
while (i>0)and(a[i]=x) do i:=i-1;
i:=i+1;
while (i<=n)and(a[i]=x) do begin write(i,' '); i:=i+1; end;
end
else writeln('Элемент не найден');
writeln;
end;
begin
Randomize;
a[1]:=random(10);
write(a[1],' ');
for i:=2 to n do
begin
a[i]:=a[i-1]+random(10);
write(a[i],' ');
end;
writeln;
write('x = '); readln(x);
f(a,x);
end.
Пример:
9 9 15 21 30 33 35 35 36 44 45 45 52 54 62 63 70 70 77 78
x = 35
Искомый(ые) номер(а) элемента(ов):
7 8