Растровое изображение состоит из точек следующих цветов: белого, желтого, красного, зеленого, синего, песочного, бирюзового, светло-желтого. сколько бит понадобится для двоичного кодирования одного пикселя этого рисунка?
Определяем количество цветов в палитре: 8. Определяем степень двойки, которая позволит получить число, не меньше найденного выше. 2³ = 8, степень равна трем. Именно столько бит (три) необходимо для кодирования цветности одного пикселя.
// PascalABC.NET 3.2, сборка 1407 от 18.03.2017 // Внимание! Если программа не работает, обновите версию!
function Good(s:string):boolean; begin var n:=s.Length; var t:=s.ToCharArray.Distinct; Result:=false; foreach var c in t do begin var k:=0; for var i:=1 to n do if s[i]=c then k+=1; if k=3 then begin Result:=true; Break end end; end;
begin var aw:=ReadlnString('Ведите строку:').ToWords; var aw2:=aw.Where(w->Good(w)); aw2.Println; end.
def exp_in(n, g): ret = 1 while n ** ret < g: ret += 1 return ret - 1
def base(n, to_base): ''' 2 <= to_base <= 16 ''' if not 2 <= to_base <= 16: raise ValueError('2 <= to_base <= 16') ret = '' for e in range(exp_in(to_base, n), -1, -1): t = to_base ** e c = n // t ret += sym.get(c, str(c)) n %= t return ret
n, b = [int(input(x)) for x in ['Число: ', 'Степень (2 <= n <= 16): ']] print('{} (10) = {} ({})'.format(n, base(n, b), b))
Определяем степень двойки, которая позволит получить число, не меньше найденного выше. 2³ = 8, степень равна трем.
Именно столько бит (три) необходимо для кодирования цветности одного пикселя.