М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
zhannursadykbek
zhannursadykbek
08.05.2021 02:25 •  Информатика

Винни пух, придя в гости к кролику, увидел восемь горшочков, пронумерованных от 1 до 8. как сказал кролик, только один из них наполнен мёдом, остальные пустые. какое минимальное количество вопросов(на которые он получит только короткие ответы да или нет) должен задать винни пух кролику, чтобы однозначно определить номер горшочка с мёдом?

👇
Ответ:
xaverqenizadeoxg0iy
xaverqenizadeoxg0iy
08.05.2021
3:

| - в одном из первых 4-х? → да/нет → узнаём, в 1-4 или 5-8 мёд, лишние горшки убираем.
оо|оо - в одном из первых двух (из выбранной ранее половины)?  → да/нет.
o|o - в первом (из ещё в 2 раза уменьшенном предыдущим вопросом интервале)? → да/нет → узнаём, где находится мёд
4,4(76 оценок)
Открыть все ответы
Ответ:

.

Объяснение:

Начинает страдать осанка человека, в особенности это относится к пользователям настольных компьютеров. Даже если человек следит за своей спиной, часы интернет-баталий сделают свое дело и человек все же начнет горбатиться и сутулиться. В последствии это приведет в лучшем случае к незначительной степень остеохондроза спины и шейного отдела позвоночника. Болезнь довольна коварная, во-первых возможно визуальное искажение, во-вторых боли в спине, шее, защемления нервных окончаний и даже воспаление защемленного нерва. Вылечить остеохондроз не просто.

4,5(76 оценок)
Ответ:
dilpiztalipova
dilpiztalipova
08.05.2021

--- Python 3.8.3 ---

import typing  

from typing import Iterable

from typing import List

from typing import Any  

from typing import AnyStr

from typing import Callable

from typing import NoReturn

def _Ok(func: Callable[[Any], Any]):

   def OkWrapper(*a, **kw):

       r = func(*a, **kw)

       if(r):

           print('ok')

       else:

           print('Error')

   return OkWrapper

class Queue:

   buffer = []

   _t = None

   _iterPos = 0

   def __init__(self, t, InitSeq : Iterable[Any] = None):

       if (InitSeq != None):

           self.buffer.extend(InitSeq)

       self._t = t

   def __getitem__(self, position):

       return self.buffer[position]

   

   def __len__(self):

       return len(self.buffer)

   @property

   def T(self):

       return self._t

   @_Ok

   def push(self, item):

       assert isinstance(type(item), type(self._t))

       self.buffer.append(item)

       self._length = len(self.buffer)

       return True

   @_Ok

   def clear(self):

       self.buffer.clear()

       return True

   def front(self):

       return self._peek(0)    

   

   @_Ok

   def pop(self):

       if (len(self.buffer) > 0):

           self.buffer.pop(0); return True

       return False

   def _peek(self, itempos):

       if (len(self.buffer) > 0):

           return self.buffer[itempos]

       print('Error: Empty Queue'); return

   

def CommandHandler(q: Queue, cmds: List[AnyStr]) -> NoReturn:

   IsRunning = True

   while IsRunning:

       NewCmd = input()

       Tokens = NewCmd.split(' ')

       if (Tokens[0] == 'push'):

           try:

               q.push(q.T(Tokens[1]))

           except IndexError:

               print('Invalid Command')

           except AssertionError:

               print('Invalid pushed type')

       if (Tokens[0] == 'pop'):

           q.pop()

       if (Tokens[0] == 'front'):

           print(q.front())

       if (Tokens[0] == 'size'):

           print( len(q) )

       if (Tokens[0] == 'clear'):

           q.clear()

       if (Tokens[0] == 'exit'):

           print('bye')

           IsRunning = False  

       

       

def main():

   q = Queue(int)

   avCommands = ['push','pop','front','size','clear', 'exit']

   CommandHandler(q, avCommands)

if __name__ == "__main__":

   main()

Пояснения:

Экземпляр Queue может инициализироваться как пустой очередью, так и уже заполненной. Что бы инициализировать пустую очередь, не передавайте в конструктор InitSeq:

q = Queue(int)

Что бы инициализировать очередь с некоторыми значениями, передайте в конструктор InitSeq:

q = Queue(int, [1,2,4,5,6])

Класс Queue строго типизирован, и каждый новый элемент будет проверяться на соответствие хранимому типу, с которым был инициализирован текущий экземпляр.

В моей реализации класс Queue не поддерживает изменение хранимого типа с приведением всех хранимых значений к новому типу

В моей реализации класс Queue не поддерживает изменение хранимого типа без приведения хранимых значений

В моей реализации класс Queue не поддерживает изменение хранимого типа при пустом буфере.

В моей реализации класс Queue является итерируемым объектом (Поддерживает простой перебор в цикле for), а так же поддерживает доступ к элементу по индексу из вне.

q[index] -> q.buffer[index]

4,6(8 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ