1 бит это самая маленькая информационная единица. Бит это значение 0 или 1. Чтобы закодировать 2 возможных варианта, достаточно 1 бита. Если нужно закодировать 3 варианта, то нужно будет уже 2 бита. При чем 2мя битами можно закодировать 3 варианта и даже 4. Количество исходов, или символов которые можно закодировать определяется по формуле: 2 в степени х = количество исходов. где Х - количество Бит.
Так 2^5= 32 --- значит 5 битами можно закодировать 32 символа и менее.
2^6=64 --- 6ю битами можно закодировать 64 символа и менее.
Program Task; Const N = 499; M = 1; Var A: Array [1..N, 1..N] of Boolean; i, j, x, y, t: Integer; b: Boolean; Begin Randomize; While i < M Do Begin x := Random(N) + 1; y := Random(N) + 1; If A[x, y] = False Then Begin A[x, y] := True; i := i + 1; End; End; While b = False Do Begin b := True; For i := 1 To N Do For j := 1 To N Do Begin If A[i, j] = True Then Begin If (i + 1) <= N Then A[i + 1, j] := True; If (i - 1) > 0 Then A[i - 1, j] := True; If(j + 1) <= N Then A[i, j + 1] := True; If (j -1) > 0 Then A[i, j - 1] := True; End; End; For i := 1 To N Do For j := 1 To N Do If A[i, j] = False Then b := False; t := t + 1; End; WriteLn(t); ReadLn; End.
Чтобы закодировать 2 возможных варианта, достаточно 1 бита.
Если нужно закодировать 3 варианта, то нужно будет уже 2 бита.
При чем 2мя битами можно закодировать 3 варианта и даже 4.
Количество исходов, или символов которые можно закодировать определяется по формуле: 2 в степени х = количество исходов.
где Х - количество Бит.
Так 2^5= 32 --- значит 5 битами можно закодировать 32 символа и менее.
2^6=64 --- 6ю битами можно закодировать 64 символа и менее.
Значит от вет будет 6 бит
Const N = 499; M = 1;
Var A: Array [1..N, 1..N] of Boolean;
i, j, x, y, t: Integer;
b: Boolean;
Begin
Randomize;
While i < M Do
Begin
x := Random(N) + 1;
y := Random(N) + 1;
If A[x, y] = False Then
Begin
A[x, y] := True;
i := i + 1;
End;
End;
While b = False Do
Begin
b := True;
For i := 1 To N Do
For j := 1 To N Do
Begin
If A[i, j] = True Then
Begin
If (i + 1) <= N Then
A[i + 1, j] := True;
If (i - 1) > 0 Then
A[i - 1, j] := True;
If(j + 1) <= N Then
A[i, j + 1] := True;
If (j -1) > 0 Then
A[i, j - 1] := True;
End;
End;
For i := 1 To N Do
For j := 1 To N Do
If A[i, j] = False Then
b := False;
t := t + 1;
End;
WriteLn(t);
ReadLn;
End.