Эффект плато. Как преодолеть застой и двигаться дальше - [16]

Шрифт
Интервал

. К примеру, программист мог намереваться написать код, означавший: «Значение параметра должно быть меньше пяти».

Однако фактически программный код означал: «Значение параметра должно быть меньше или равно пяти».

В большинстве языков программирования разница между этими формулами состоит в одном-единственном нажатии на клавишу.

Итак, теперь игра шла на неизведанной территории, в систему было введено непредвиденное значение пять. Затем Хью снова переключил свое внимание на сенсорный экран и нажал кнопку «+», которая, к его «ботаническому» восторгу, позволила увеличить значение до «6»! Возможно, логика, которая прежде не позволяла ему ввести значение выше предельного, формулировалась так: «При значении, равном четырем, не увеличивать». В данном случае значение составляло не четыре, а пять, поэтому нажатие кнопки «+» позволило успешно повысить его до шести. Хью открыл упаковку арахиса и принялся нажимать кнопку «+» до тех пор, пока значение не достигло 127. Тут он решил остановиться и поразмышлять.

Число 127 играет особую роль в компьютерных науках. По сути, это своего рода плато. С технической точки зрения это два в седьмой степени минус единица (27 − 1). В некоторых случаях это максимальное значение, с которым может справиться определенная система. Чтобы понять, почему это так, подумайте о ситуациях, когда вы используете для счета собственные пальцы. Давайте предположим, что вы считаете привычным образом, то есть ваши выпрямленные шесть пальцев означают цифру «6». Если, используя этот метод, вы попытаетесь посчитать более чем до десяти, то столкнетесь с проблемой – количество ваших пальцев ограниченно. Дети обычно стараются запомнить, что уже прошли этот цикл один раз, и затем вновь начинают выпрямлять пальцы, но первый из них означает уже не 1, а 11. Однако представьте себе, что вам нужно отправить кому-то фотографию ваших пальцев. В этом случае вы не можете показать на фотографии 12 или 13, потому что на картинке это будет выглядеть как два или три. Эта проблема возникает, поскольку на уровне десяти мы достигли предельного значения для пальцев, а добавляя к нему что-то еще, мы сталкиваемся с тем, что специалисты по компьютерным наукам называют целочисленным переполнением. Иными словами, мы попытались сохранить больше информации, чем можно. При использовании пальцев, для того чтобы посчитать до 11, мы, доходя до максимального значения (10), «возвращаемся» к минимальному значению – в случае с пальцами это означает 1. Такая же проблема возникает и в программах, где для хранения числа используется набор так называемых бинарных переключателей («вкл/выкл»). Когда число превышает совокупную емкость переключателей, программа просто перегружает значение до минимально допустимого. Представьте себе, что вы считаете от 1 до 100, но при этом видите только последнюю цифру в каждом числе. Может показаться, что вы движетесь от 0 до 9, а затем вдруг опять к 0. Когда подобное явление происходит в области программирования, оно способно привести к всевозможным проблемам.

Почему число 127 настолько важно для некоторых программ? Подобно числу 10 для наших пальцев, оно считается пограничным значением. Обычная математика говорит нам, что результат сложения 1 и 127 (1 + 127) должен быть равен 128. Однако порой в компьютерной математике результат оказывается равным минус 128, то есть минимальному значению, которое могут удерживать бинарные переключатели. Иными словами, это все равно что выпрямленный палец, означающий 11, однако выглядящий как один.

Как только Хью увидел число 127 на экране самолетной развлекательной системы, он понял, что у него есть отличный шанс вызвать целочисленное переполнение системы. Затем, исключительно в интересах науки, он нажал кнопку «+» еще один раз. Внезапно на экране на какой-то момент показалось число 128, а затем экран погас.

Тут же выключился экран сидевшего рядом с ним пассажира.

Погасли экраны и у пассажиров перед ним и за ним.

Через секунду выключилась вся развлекательная система в самолете.

После нескольких минут ворчания некоторых пассажиров бесстрастный бортпроводник перегрузил систему, и все вернулось к нормальному состоянию. А Хью приземлился с новыми знаниями о «Тетрисе» (и числе 127).

Как мог производитель упустить из виду эту проблему?


Рекомендуем почитать
Инстинкт и бессознательное

В предлагаемой работе Юнг дает психологическое описание инстинктивной деятельности, увязывает инстинкты с концепцией бессознательного, а также настойчиво подчеркивает некорректность рациональных мотиваций инстинктивных поступков.


Поверженный разум. Теория и практика глупости

Автор „Поверженного разума“ — известный испанский писатель, философ и психолог Хосе Антонио Марина, лауреат многих престижных наград, в том числе Национальной премии за лучшую научно-популярную книгу. Все его работы посвящены человеку — его силе и слабостям, возможностям и месту в социуме. Исследование человеческого разума для Марины — ключ к пониманию целого круга проблем, с которыми сталкивается личность в современном мире. Какие ошибки чаще всего совершает наш разум? Почему мы порой ведем себя откровенно глупо? Если существует научная теория разума, то и глупость заслуживает не менее глубокого изучения.


Как стать любимой и желанной

Откуда берутся Антиневесты? Почему так трудно привлечь мужчину и выйти замуж? Почему девушки, мечтая о Завидном женихе, довольствуются обычным балбесом? Почему мужчины одних женщин любят, а о других вытирают ноги? Как перестать гадать бросит – не бросит и взять под контроль отношения с мужчиной в свои хрупкие руки и расчетливый ум? Как манипулировать женихом, чтобы он стал мужем? Как повысить планку требований к мужчинам? Как обрести целеустремленность, стать обаятельной и удачно выйти замуж? Как стать хозяйкой своей жизни? Обо всем этом ты узнаешь, прочитав и воспользовавшись рекомендациями данной книги.


Женская консультация девяностых годов глазами психотерапевта

Рассказать о работе врача-психотерапевта можно по-всякому. Но имеет практический смысл рассказ без вранья. Как это, если оба слова, по Михаилу Задорнову, имеют общий корень?В этой «шутке» лишь доля шутки. На мой взгляд, рассказать честно — это, прежде всего, последовательно, по этапам совершенствования психотерапевтической помощи, чтобы читатель, погружаясь в многослойную почву терапии, мог оценить значимость составляющих опоры здания здоровья и болезни.Рассказать так, чтобы выводы, даже и положительные, не оказались лишь средством заурядной рекламы или пропаганды, а негативные не походили на оговор или самооговор.


Стратегия разума и успеха

О чем эта книга:О смысле жизни.Во что верить и где её (веру) искать.О людях феноменальной силы, ума, воли.Вся, правда, о ясновидцах, экстрасенсах...О том, как нами манипулируют и обманывают.Как жить, не болея и оставаться работоспособным до старости.Что такое секс и любовь.О ложных и истинных жизненных целях.О экологически чистом сельском хозяйстве.Что такое «Национальная идея»?Об образовании и воспитании.Об экологии и экономике и о многом другом здесь написано простым и понятным языком. Книга рассчитана на широкий круг читателей.


Взрослые дети, или Инструкция для родителей

Подростковый возраст — самый трудный, считают многие родители. Однако подростковый возраст проходит, а трудности в общении с детьми только нарастают. Почему? У молодых людей наступает период самореализации, когда родители часто оказываются "не в теме", и повзрослевшим детям кажется невозможным объяснить «замшелым предкам» свои проблемы. Старшие удивляются нахальству и агрессивности младших, а младшие обвиняют старших в "твердолобости". Конфликт — налицо! Как не превратить этот конфликт в затяжную войну между поколениями и правильно выстроить отношения с повзрослевшими детьми, вы узнаете из этой книги.