1. Описание проекта
2. Какой кейс решаем?
3. Краткая информация о данных
4. Этапы работы над проектом
5. Результат
6. Выводы
Угадать загаданное компьютером число за минимальное число попыток.
Нужно написать программу, которая угадывает число за минимальное число попыток
Условия соревнования:
- Компьютер загадывает целое число от 0 до 100, и нам его нужно угадать. Под «угадать», подразумевается «написать программу, которая угадывает число».
- Алгоритм учитывает информацию о том, больше ли случайное число или меньше нужного нам.
Метрика качества
Результаты оцениваются по среднему количеству попыток при 1000 повторений
Что практикуем
Учимся писать хороший код на python
Для тестирования создаётся массив из 1000 случайных целых чисел в диапазоне от 1 до 100
Используются два метода угадывания:
- генерируются случайные числа, которые сравниваются с результатом
- диапазон разбивается пополам, после чего в каждой интерации диапазон поиска сужается ещё в 2 раза. На последнем этапе (когда диапазон сузился до 1) алгоритм угадывает просто делая один дополнительный "шаг" (например, диапазон сузился до 1-2, на данный момент предположено, что число - 1 и это ошибка (загадно - 2). Алгоритм просто попытается "угадать" число на один больше текущего.
Выявлено, что в среднем число угадываний при использовании метода деления массива значительно ниже, чем при случайном угадывании (число попыток - 5)
Угадывание путём "деления" массива пополам эффективно.
Если информация по этому проекту покажется вам интересной или полезной, то я буду очень вам благодарен, если отметите репозиторий и профиль ⭐️⭐️⭐️-дами