Предмет: Информатика,
автор: kostya7600
маша загадала число от 1 до 100.состваьте алгоритм который поможет отгадать число .задавать вопросы можно на которые ответ будет да или нет.помгите пожалуйста
Elyn1tex:
Язык?!
А, сори, не заметил
Просто алгоритм
Тут можно использовать алгоритм двоичного поиска. А вот как нужно представить Вам алгоритм, не указано.
Ответы
Автор ответа:
1
Ну алгоритм таков, если вопросов не ограниченное кол-во, то так:
Маша загадала число.
Ты её спрашиваешь, больше ли это число или меньше какого-то десятка, потом спрашиваешь её больше ли от других числе в районе этого десятка.
Пример:
Число 57
Спрашиваешь её: "Число больше 50, но меньше 60"
А потом пошёл её спрашивать "Число больше 50, 51, 52, 53 и т.д"
Думаю понятно объяснил
Маша загадала число.
Ты её спрашиваешь, больше ли это число или меньше какого-то десятка, потом спрашиваешь её больше ли от других числе в районе этого десятка.
Пример:
Число 57
Спрашиваешь её: "Число больше 50, но меньше 60"
А потом пошёл её спрашивать "Число больше 50, 51, 52, 53 и т.д"
Думаю понятно объяснил
Автор ответа:
2
1. Положить a=1, b=100
2. Повторять пока a ≠ b, иначе перейти к шагу 7
3. Вычислить n = целая часть( (a+b)/2 )
4. Спросить, n больше задуманного числа или нет
5. Если "да", то положить a=n+1, если "нет" - положить b=n
6. Продолжать, перейдя к шагу 2.
7. Задуманное число равно a (или b)
8. Завершить работу
2. Повторять пока a ≠ b, иначе перейти к шагу 7
3. Вычислить n = целая часть( (a+b)/2 )
4. Спросить, n больше задуманного числа или нет
5. Если "да", то положить a=n+1, если "нет" - положить b=n
6. Продолжать, перейдя к шагу 2.
7. Задуманное число равно a (или b)
8. Завершить работу
Алгоритм угадывает число не больше, чем за 7 вопросов
Получше конечно будет, советую
1. Положить a=1, b=100
2. Повторять пока a ≠ b, иначе перейти к шагу 7
3. Вычислить n = целая часть( (a+b)/2 )
4. Спросить, n больше задуманного числа или нет
5. Если "да", то положить a=n+1, если "нет" - положить b=n
6. Продолжать, перейдя к шагу 2.
7. Задуманное число равно a (или b)
8. Завершить работу
2. Повторять пока a ≠ b, иначе перейти к шагу 7
3. Вычислить n = целая часть( (a+b)/2 )
4. Спросить, n больше задуманного числа или нет
5. Если "да", то положить a=n+1, если "нет" - положить b=n
6. Продолжать, перейдя к шагу 2.
7. Задуманное число равно a (или b)
8. Завершить работу
Похожие вопросы
Предмет: Русский язык,
автор: anrrpakukuruza
Предмет: Русский язык,
автор: xlxllxlxlxlx
Предмет: Русский язык,
автор: xlxllxlxlxlx
Предмет: Математика,
автор: Metykova
Предмет: Литература,
автор: поли48