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

Часто люди оказываются подавленными ситуациями, с которыми они сталкиваются. Это может привести к тому, что ситуация либо будет проигнорирована и станет еще более трудной для управления, либо будет рассматриваться непродуктивно. Как мы увидим, общие понятия, лежащие в основе нотации Big O, могут дать нам руководство по управлению такими ситуациями.

Как вы, наверное, знаете, нотация Big O используется для сравнения эффективности программ по мере увеличения размера входных данных до бесконечности. Это может быть связано с затратами времени или объемом занимаемого компьютерного пространства. Фактический дизайн программы основан на следующем соотношении: Структура данных + Алгоритм = Программа. Структура данных содержит данные, алгоритм выполняет функции над данными, и в результате получается программа. Следует выбрать алгоритм, который дает наилучший результат Big O. Поиск в хеш-таблице дает результат O(1). Это означает, что это занимает одинаковое количество времени, независимо от того, насколько велик ввод. С другой стороны, поиск в массиве приведет к O (n). Это означает, что время увеличивается линейно по мере увеличения входных данных, что для больших входных данных может привести к тому, что программа будет занимать все больше времени. Поэтому, если кто-то хочет выполнить поиск и должен выбирать между массивом и хеш-таблицей, ему или ей лучше делать это на хеш-таблице.

В жизни у нас есть отношения, похожие на те, что существовали в программировании, и это: Ситуация + Действие = Результат. Человеку предоставляется ситуация, и результат этой ситуации будет вызван предпринятыми действиями. В приведенном примере программирования можно изменить структуру данных. Вот действие, которое можно изменить. Когда перед программистами ставится задача программирования, они на мгновение останавливаются и анализируют варианты, чтобы определить, какой вариант даст наилучшую нотацию O. В реальной жизни вместо того, чтобы предпринимать первое пришедшее на ум действие, следует также остановиться и проанализировать ситуацию, а затем просмотреть различные доступные варианты действий, чтобы определить, какой образ действий даст наиболее продуктивный результат. Таким образом, человек не переполняется тревогой и не торопится принять решение, о котором потом пожалеет, а вместо этого объективно делает лучший выбор. Если выяснится, что был сделан неправильный выбор, то, как программист растет и постоянно совершенствуется, учась на программировании, которое работает неправильно, так и человек может проанализировать, что пошло не так, и понять, что он или она вырос и улучшился. из того, что узнали. Таким образом, хотя лучше выбрать правильный вариант, но если кто-то выбрал неправильный, то этот человек может получить удовлетворение от знания, что теперь этот человек лучше подготовлен к будущим ситуациям. Как писал Билл Гейтс: «Праздновать успех — это прекрасно, но гораздо важнее усвоить уроки неудач».

Мне было бы интересно услышать, как другие люди решат эту проблему.

Пожалуйста, не стесняйтесь делиться со мной любыми комментариями, которые у вас могут быть, по адресу [email protected] или https://www.linkedin.com/in/davidnnussbaum.

Спасибо за прочтение!