Как вычислить 2 в 64 степени, не пользуясь калькулятором?

Обложка: Как вычислить 2 в 64 степени, не пользуясь калькулятором?
Ключевые выводы:
— 264 можно быстро оценить через приближение 210 ≈ 1000
— Приблизительный ответ: 16 квинтиллионов, точный — около 18,4 квинтиллиона
— Погрешность приближения 2,4% на каждое 210, итого ~12% за шесть итераций
— Альтернативный хак: возвести 232 ≈ 4 млрд в квадрат
— Точное значение: 18 446 744 073 709 551 616

Решение через приближение 2 в 10 степени

Приведём один из вариантов возможных рассуждений. Любой инженер знает, что 210 = 1024. Будем считать, что это приблизительно 1000. Умножим 210 на себя шесть раз и получим 260. Это около 1000 в шестой степени или 1018, также известное как квинтиллион. Осталось только умножить его на 24 (16), чтобы получить искомое 264. Таким образом, очень приблизительный, но быстрый ответ будет 16 квинтиллионов.

Уточнение с учётом погрешности

На самом деле, чуть больше, т.к. 1024 на 2,4% больше 1000. Мы используем это приближение 6 раз, и поэтому ответ должен быть чуть более, чем на 12% больше. Это добавляет ещё 2 квинтиллиона. Поэтому более точно будет 18 квинтиллионов.

Точное значение: 18 446 744 073 709 551 616

Альтернативный способ через 2 в 32 степени

Есть ещё один быстрый хак. Многие знают, что максимальное число 32-битного unsigned int — это что-то около 4 миллиардов, т.е. 232 ≈ 4 * 109. Осталось только умножить это само на себя и получить около 16-17 квинтиллионов.

Разбор головоломки по книге «Действительно ли Вы достаточно умны, чтобы работать в Google?»

Часто задаваемые вопросы

Зачем вообще нужно уметь вычислять степени двойки в уме?

Степени двойки — фундамент компьютерной арифметики. Такие задачи часто встречаются на собеседованиях в Google, Facebook и других IT-компаниях. Умение быстро оценивать порядок числа помогает при работе с памятью, сетевыми протоколами и размерами файлов.

Какое точное значение 2 в 64 степени?

Точное значение 264 = 18 446 744 073 709 551 616. Это примерно 18,4 квинтиллиона или 1,8 * 1019. Именно столько уникальных значений может содержать 64-битная беззнаковая целочисленная переменная (unsigned long long в C/C++).

Почему 2 в 10 степени приближают к тысяче?

Потому что 210 = 1024, что всего на 2,4% больше 1000. Это удобное приближение позволяет быстро переводить между двоичными и десятичными порядками. Именно поэтому 1 килобайт = 1024 байта, а не ровно 1000 — различие между двоичными и десятичными приставками.

Где ещё применяется число 2 в 64 степени?

Число 264 определяет максимальный объём адресуемой памяти в 64-битных системах (16 экзабайт), максимальный размер файлов в файловых системах (ext4, NTFS), а также диапазон 64-битных идентификаторов в базах данных. Ещё это количество возможных позиций на воображаемой шахматной доске в задаче о зёрнах на шахматной доске.