Sub m1() 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
Давай разбираться. Если бы квартира в доме была 1 = 2^0, то информация, что Вася живет в этой квартире, имела бы 0 информации. Потому что, если мы заранее знаем, что Вася живет в этом доме, то сразу ясно, что в этой единственной квартире. Дополнительное сообщение об этом не несет никакой информации вообще. Если квартир 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 бит информации.
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 бит информации.