Доска для игры «бим-бом» - поле размером 8´4 клеточки. какое минимальное количество бит потребуется для кодирования координат одного поля такой доски? c полным решением,
Самый простой вариант кодирования - задавать номера клетки по горизонтали и по вертикали. Если горизонталей ("строк") 8, то их можно занумеровать от 0 до 7 и для задания номера горизонтали будет достаточно 3 бита (комбинации 000 - 111). Вертикалей 4, пронумеруем их от 0 до 3 и закодируем битами от 00 до 11 - такой код займет 2 бита. Итого потребуется 3+2=5 бит.
Можно и проще было посчитать. 8х4=32, 32 это 2^5, поэтому потребуется 5 бит для нумерации клеток от 0 до 31.
Var A:Array[1..100] of Word; N,Max_S,i,I_max:Byte; Function Sum_of_figures(p:Word):Byte; var d:Word; S,j:Byte; begin d:=10000; S:=0; For j:=1 to 5 do begin S:=S+(p div d); p:=p mod d; d:=d div 10; end; Sum_of_figures:=S; end; Begin Randomize; Write('N= '); Readln(N); Writeln; Writeln('Initial array:'); For i:=1 to N do begin A[i]:=Random(65535); Write(A[i]:8); end; Writeln; Writeln; Writeln('Sums of figures:'); Max_S:=0; For i:=1 to N do begin Write(Sum_of_figures(A[i]):8); If Sum_of_figures(A[i])>Max_S then begin Max_S:=Sum_of_figures(A[i]); I_max:=i; end; end; Writeln; Writeln; Writeln('Maximal sum of figures (',Max_S,') has the element N',I_max,' equal to ',A[I_max]); Readln; End.
Можно и проще было посчитать. 8х4=32, 32 это 2^5, поэтому потребуется 5 бит для нумерации клеток от 0 до 31.