Представьте, что вы хотите полететь на Луну.
Расстояние от Земли составляет около 384 400 км.
Аполлону-11 потребовалось 70 часов и 38 минут, чтобы добраться до Луны (~ 3 дня).
Если вы едете на машине со скоростью 120 км/ч, вы можете добраться до Луны за 3203 часа (~133 дня) без учета гравитации.
Прежде чем начать вопрос, я хочу задать вам всем одно простое правило. Вы должны ответить в течение 5 секунд после прочтения вопроса, поэтому просто выберите первое число, которое придет вам в голову.
вопрос в том….
Определите толщину бумаги формата А4 равной 0,1 мм.
Если вы хотите сделать бумагу достаточно толстой, чтобы дотянуться до луны, сколько раз вам нужно сложить бумагу?
Какое первое число вы думаете? или ответ больше какого числа?
В ПОРЯДКЕ! Отвечать!!!
Хорошо! давайте проверим это вместе
Расстояние от Земли до Луны 384 400 км.
= 384 400 000 м.
= 38 440 000 000 см.
= 384 400 000 000 мм.
Соответственно, вам нужно сложить стопку бумаги примерно в 3 844 000 000 000 листов.
Скажем, сгибание бумаги каждый раз удваивает ее толщину.
… все еще складывается …
Наконец, после складывания 42 раза
2⁴² = 4 398 046 511 104 листа
Если просто согнуть всего 41 раз, этого недостаточно, потому что
2⁴¹ = 2 199 023 255 552 листа (все равно нужно более 1000 миллиардов листов)
Только представьте себе, 42 — это небольшое число, и вы можете сложить бумагу один раз за несколько секунд. Выполнив это 42 раза, вы сможете закончить менее чем за 3 минуты, но это может привести вас к Луне.
В этом сила «экспоненциального роста».
Если вы сбросите карты сотни раз, это может привести вас в другую галактику. ха-ха
Интересная вещь, которую я узнал, задав этот вопрос многим друзьям, это
Многие люди ответили от млн до млрд.
Некоторые из программистовсказали: «Это экспоненциально!!!» сразу после того, как они узнают вопрос, но диапазон ответов составляет от 1000 до 100000
И лишь несколько человек ответили между 40–90.
Почему я говорю об этой истории?
При кодировании мы всегда имеем дело с числом. Большинство типов переменных, в которых хранятся целые числа, имеют длину 32 или 64 бита. Когда я меняю вопрос на
Можно ли хранить 384 400 000 000 в длинном (64-битном целом) формате?
Большинство программистов ответят «абсолютно да».
Если да, то почему они ответили больше, чем "64"на вопрос выше?
Вы должны знать и решать, как эффективно хранить переменные. Вы также должны знать об алгоритмах, которые обслуживают вашу бизнес-логику.
Многие простые способы решения проблем экспоненциально реализуются в среде выполнения. Этого не должно происходить, если в этом нет необходимости.
Даже они знают, они все еще недооценивают об этом.
Этот образец показывает вам, что вы можете достичь 4000 миллиардов, удвоив всего 42 раза. Давайте подумаем о более чем 42? или утроить или учетверить его?
Если вы мне не верите, можете свернуть свою бумагу, чтобы доказать это ;)
Спасибо : Pattara Sukprasert за идею.
Наслаждайтесь
(•‾◡‾•)و ̑̑♡