Коля предложил Пете более сложную игру, чем изложенная в задании 40. Коля задумывает натуральное число из интервала от 1 до n. Петя должен это число отгадать. Он может задавать вопросы коле, допускающие только ответы да или нет. Петя разработал алгоритм, позволяющий за наименьшее число вопросов отгадать число, задуманное Колей. Выясните сколько вопросв потребуется Пете, чтобы отгадать задуманное число , если оно принадлежит интервалу: 1) от 1 до 32 2) от 1 до 512 3) от 1 до 300 4) от 1 до 1024 Плз помогите срочно надо!!!!!!!!!!!!

1

Ответы и объяснения

2013-04-25T07:45:21+00:00

1) 5

2) 9

3) 9

4) 10

 

 

алгоритм простой, представим число n-1 (т.к. ноль не учитывается) в качестве двойчной последовательности, для числа n=32 это будет 11111 дальнейший алгоритм прост, рассмотрим его на примере, задумано число 26:

1) проверяем правый регист (*0000 = 16), задаем вопрос "задуманое число больше 16?", ответ "да", значит первы регистр 1

2) проверяем следующий (1*000=24), задаем вопрос "задуманое число больше 24?", ответ "да", значит регистр 1

3) проверяем следующий (11*00=28), задаем вопрос "задуманое число больше 28?", ответ "нет", значит регистр 0

4)проверяем следующий (110*0=26), задаем вопрос "задуманое число больше 26?", ответ "нет", значит регистр 0

 

 5) проверяем следующий (1100*=25), задаем вопрос "задуманое число больше 25?", ответ "да", значит регистр 1

итого получаем задуманное число в двоичной форме 11001 = 25, но т.к. мы не учитываем 0, то к этому числу надо прибавить 1, итого задусманное число 26