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.
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