Месяц находим методом половинного деления.
Двоичная запись числа 366 размещается в 9 битах (в 8 битах размещается только 256 чисел , а в 9 битах - уже 512).
То есть , понадобится задать 8 вопросов и девятой фразой будет ответ.
В году 365 (366) дней. Пусть 366, для 365 рассуждение то же.
Рассмотрим самый худший вариант
Середина года - день номер 366/2=183. Это 1 июля.
Первый вопрос: День рождения в первой половине года?
Допустим, да.
Второй вопрос: День рождения в первом квартале?
Допустим, нет. Следовательно во втором.
Второй квартал - это дни с номерами от 92 до 182. Середина - среднее арифметическое. (92+182)/2=137. Это дата 17 мая.
Третий вопрос: День рождения позднее 17 мая?
Допустим, нет.
Следовательно, интервал дат 1 апреля - 17 мая, 91 день. Опять делим на 2, сужая интервал до 22 дней. Это дата 22 апреля.
Четвертый вопрос: День рождения позднее 22 апреля?
Допустим, нет.
Новый диапазон поиска - 23 апреля - 17 мая. Половиним его.
Пятый вопрос: День рождения позднее 29 апреля?
Допустим, нет.
Поиск сузился до 23 - 29 апреля. Снова берем половину.
Шестой вопрос: День рождения позднее 26 апреля?
Допустим, нет.
Интервал дат 23-26 апреля. Половиним.
Седьмой вопрос: День рождения позднее 24 апреля?
Допустим, да.
Интервал дат 25-26 апреля.
Восьмой вопрос: День рождения 25 апреля?
Допустим, нет
Девятая фраза: Ваш день рождения 26 апреля.
Тут не всі. Сама зараз відповідаю на це
1. Які величини ми використовуємо в повсякденному житті та чим вони відрізняються?
Для опису об'єктів і процесів у матеріальному світі ми використовуємо величини. Наприклад, відстань між будинком і школою, температура повітря, тощо. За до величин можна позначати довжину відрізка, площу земельної ділянки, висоту будинку, швидкість пішохода або автомобіля, час обертання планети навколо Сонця. Вони відрізняються тим, що кожна величина характеризується певним значенням та одиницями, в яких вимірюється це значення, наприклад швидкість вимірюється в км/год, температура в °С.
2. Для опису констант мовою програмування Free Pascal використовуючи службове слово const. У мові програмування Python константи задаються в тексті програми.
3. Індефікатори добирають у вигляді деякого скінченного впорядкованого набору літер і цифр, який починається з літери або символу підкреслення _. Наприклад, А, В2С, _І5, Y, SI, DAT_33, тощо.
4. Для опису числових величин мовою програмування Free Pascal використовуючи декілька слів. Це пов'язано з їх можливим діапазоном значень і відповідно обсягом, який вони можуть займати в пам'яті комп'ютера. Під час виконання програм, написаних мовою Python, система сама визначає обсяг, який числові величини можуть займати в пам'яті комп'ютера, залежно від введеного їх значення.
5.
6. Щоб у середовищі Lazarus описати змінні величини різних типів, які будуть використовуватися в програмі, потрібно службове слово var записують один раз, а перелік змінних кожного іншого типу записують у новому рядку.
7. У середовищі Lazarus для введення даних користувачем використовують функцію InputBox ( ), значення якої надають змінній відповідного типу.
Якщо необхідно перетворити значення рядового типу на числове використовують таку функцію:
StrToInt - перетворення значення рядкового типу в значення цілочисельного типу.
Рассчитаем время на рассчеты
100 сек > 24.74 сек
Печалька((( Самолет разобъется