Misyura_Viktoriya1683
?>

Вбарабане для розыгрыша лотереи находится 62 шара. сколько информации содержит сообщение о первом выпавшем номере (например, выпал номер 15)?

Информатика

Ответы

vardartem876
Количество информации = log(2)62 ≈ 5,95
ale99791308
2 → 10

0⁶1⁵1⁴1³0²1¹1⁰₂ = 0 · 2⁶ + 1 · 2⁵ + 1 · 2⁴ + 1 · 2³ + 0 · 2² + 1 · 2¹ + 1 · 2⁰ = 0 + 32 + 16 + 8 + 0 + 2 + 1 = 59₁₀

10 → 2

59 / 2 = 29 (1), где число в скобках - это остаток

29 / 2 = 14 (1)

14 / 2 = 7 (0)

7 / 2 = 3 (1)

3 / 2 = 1 (1)

1 / 2 = 1 (1), нельзя поделить 1 на 2 без получения дробной части, поэтому в остатке остается та единица, которую мы делили на 2

Снизу вверх восстанавливаем цепочку двоичного кода:

111011₂

Объясняю, почему мы не получили нолик вначале.. Нолик добавляется в запись в основном, чтобы дополнить двоичный код до 8 бит, но в твоем случае это 7 бит. Это ни на что не влияет.

lighturist
Выполняя алгоритм, получаем следующий результат (15 итераций)

1. 0..65534 -> 32767
2. 0..32766 -> 16383
3. 0..16382 -> 8191
4. 0..8190  -> 4095
5. 0..4094  -> 2047
6. 2048..4094 -> 3071
7. 2048..3070 -> 2559
8. 2560..3070 -> 2815
9. 2816..3070 -> 2943
10. 2944..3070 -> 3007
11. 2944..3006 -> 2975
12. 2976..3006 -> 2991
13. 2992..3006 -> 2999
14. 3000..3006 -> 3003
15. 3000..3002 -> 3001

Если лень перебирать вручную, можно воспользоваться программой

var k,l,r,x,f:integer;
begin
f := 3001;
l := 0;
r := 65534;
x := (l + r) div 2;
k := 1;
while (x <> f) and (l < r) do
  begin
  writeln(k,' ',l,' ',r,' ',x);
  k := k + 1;
  if f < x then r := x - 1
    else l := x + 1;
  x := (l + r) div 2
  end;
writeln(k,' ',l,' ',r,' ',x);
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Вбарабане для розыгрыша лотереи находится 62 шара. сколько информации содержит сообщение о первом выпавшем номере (например, выпал номер 15)?
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

eleniloy26
denblacky
KonovalovKonstantinovna1306
evageniy79
Andrei-Shchukin
abuzik
pimenov5
anton
АЛЕКСЕЙ
nordwokintos4
scraer198258
yakushkinayuliya
olesyadeinega41
marychev55
spadikov