Необходимо найти значение следующего выражения: y=3a−(x+37).
Словесно-формульным алгоритм решения этой задачи может быть записан в следующем виде:
Ввести значения
и x.
Сложить x и
.
Умножить a на
.
Вычесть из 3a сумму (x+37).
Вывести y как результат вычисления выражения.
Cells.Clear
Dim n As Integer, i As Integer, s As Integer
n = InputBox("n = ")
Cells(1, 1).Value = "n = " + Str(n)
ReDim a(1 To n)
For i = 1 To n
a(i) = InputBox("a(" + Str(i) + ")")
Next i
Cells(2, 1).Value = "Исходный массив"
Range(Cells(3, 1), Cells(3, n)).Value = a
s = 0
For i = 1 To n
s = s + a(i)
Next i
Cells(4, 1).Value = "s = " + Str(s)
Cells(5, 1).Value = "Полученный массив"
For i = 1 To n
a(i) = a(i) + s
Next i
Range(Cells(6, 1), Cells(6, n)).Value = a
End Sub
Потому что, если мы заранее знаем, что Вася живет в этом доме, то сразу ясно, что в этой единственной квартире.
Дополнительное сообщение об этом не несет никакой информации вообще.
Если квартир 2 = 2^1, то сообщение несет 1 бит информации. 1 квартира = 0, 2 квартира = 1.
Если квартир 3, 2<3<4, то есть 2^1<3<2^2, то будет 2 бита. 1кв = 00, 2кв = 01, 3кв = 10. Одного бита не хватает.
И так далее. Сколько квартир в доме (в смысле - 2 в какой степени), столько бит и будет.
128 < 150 < 256, то есть 2^7 < 150 < 2^8, поэтому уточнение номера квартиры дает 8 бит информации.