Почему сложно принять решение. 12 психологических причин

Лекция

Почему мы не можем отпустить прошлое

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

Так почему нам бывает так сложно его отпустить? Перечислю основные причины.

  1. Мы сожалеем о том, что когда-то сделали, виним себя за ошибки прошлого. Постоянно прокручивая в голове уже случившееся, мы продолжаем думать о том, что могли поступить по-другому. Тогда все сложилось бы не так плохо.
  2. Прошлые обиды так крепко засели в нашем сердце, что в мыслях мы часто возвращаемся к тем, кто сделал нам больно и поступил несправедливо. Пытаемся понять, почему они так обошлись с нами. Продолжаем осуждать этих людей. Обвиняем их в том, что наша жизнь не сложилась.
  3. Нас не отпускают пережитые счастливые моменты. Точнее, это мы вцепились в них мертвой хваткой, потому что в настоящем ничто уже не радует и гордиться нечем. Погружаясь в эти воспоминания, мы опять ненадолго чувствуем себя счастливыми. У нас появляется зависимость от этих воспоминаний. Они, как наркотик, уносят нас далеко от мрачной реальности.

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

Человек перестает развиваться как личность. Он уже ни к чему не стремится, не ставит цели и не пытается их достичь. Он застрял. И это состояние может длиться несколько лет. В качестве примеров приведу женщин, которые похоронили себя заживо после смерти возлюбленных. Мужчин средних лет, которые блистали в молодости, но так и не добились успеха в жизни.

Жизнь у таких людей проходит мимо. А если кому-то все-таки удается очнуться, они чувствуют горечь разочарования за бесцельно прожитые годы. Чтобы избежать подобного в своей жизни, надо научиться отпускать прошлое.

Читайте также:  Как заменить прошивку Xbox 360 самостоятельно

Стиль боя

Немалая роль отводится тому, насколько реалистичны в игре движения вашего персонажа и есть ли в ней инерция. Чем реалистичней движения выглядят в игре, тем труднее вам придется на высоких сложностях. Отличным примером может служить третий Ведьмак. Если вы играли в него, то знаете, что движения Геральта реалистичны, плавны и в игре присутствует инерция. Белый волк ведет себя как человек и его движения не кажутся странными. Неестественные движения мы можем наблюдать в серии DMC. Данте, безусловно, человек, но большинство его атак, его передвижение не походит на то, как двигаются в жизни. Именно из-за наличия и отсутствия реалистичности, на высоких сложностях эти игры будут кардинально отличаться друг от друга.

Стиль боя

В Devil May Cry на высокой сложности ваш успех зависит от того, как быстро и ловко вы можете стучать по клавишам. Чем больше комбинаций вы знаете и применяете, и чем быстрее вы движетесь, тем удачней вы сможете сражаться с врагами. Если на низком уровне сложности вам хватит и 3-5 приемов на прохождение всей игры, то на высокой, вам придется использовать все 20 да и еще и комбинировать их. Но при этом играть также приятно хоть и труднее и с более частыми смертями. В грядущей пятой части дела будут обстоять также.

Это касается всех слешеров и игр в жанре beat and up.

Стиль боя

В The Witcher 3 на высокой сложности Геральт будет двигаться так же плавно, как и на других сложностях, однако ваш успех будет зависеть от того, насколько тактически правильно вы будите сражаться, уклонятся, применять специальные умения и зелья. В этом роде Ведьмак намного сложнее DMC, ведь игра хочет, чтобы вы не нажимали быстро на кнопки, а быстро думали, а это куда тяжелее.

Пример задачи

В качестве примера рассмотрим следующую задачу:

Дан массив из \(N\) натуральных чисел (\(N \le 10^6\)). Числа не превышают \(10^6\). Сколько пар равных чисел в нём содержится?

Казалось бы, что может быть проще? Недолго думая вы пишете код такого вида:

Читайте также:  12 типов видеороликов для продвижения продукта в сети

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

#include <bits/stdc++.h> using namespace std; const int MAX_N = 1000000; int arr[MAX_N]; int main() { int n; cin >> n; for (int i = ; i < n; i++) { cin >> arr[i]; } long long ans = ; for (int i = ; i < n; i++) { // внешний цикл for (int j = i + 1; j < n; j++) { // внутренний цикл if (arr[i] == arr[j]) { ans++; } } } cout << ans << endl; }

И получаете вердикт TL (Time Limit Exceeded). Давайте разберёмся, почему: посчитаем, сколько операций выполнит наш алгоритм в худшем случае (при \(N = 10^6\)). Рассмотрим первую итерацию внешнего цикла (\(i = 0\)). Во внутреннем цикле переменная \(j\) будет принимать по очереди все значения от \(1\) до \(N — 1\), то есть тело внутреннего цикла выполнится \(N — 1\) раз. На второй итерации внешнего цикла число итераций внутреннего будет равно \(N — 2\). На третьей \(N — 3\). И так далее, пока это число не достигнет нуля. Общее число итераций мы можем выразить следующей формулой:

Преобразуем её, используя формулу суммы арифметической прогрессии:

В худшем случае это будет равно

Или примерно пятьсот миллиардов. Много, не так ли? В 2017-м году обычный процессор может выполнять на одном ядре примерно \(10^8\) операций в секунду. Стоит заметить, что не все операции равнозначны. С \(10^8\) операций сложения любой процессор справится без проблем, а, например, взятия квадратного корня, уже не каждый. Принимая производительность процессора за \(10^8\) операций/секунду, наша программа выполнится за каких-то \(5000\) секунд, примерно \(1.5\) часа. Стоит ли говорить, что это неприемлемо?

Как же решать эту задачу? Нужно придумать алгоритм, который будет работать гораздо быстрее. В таких ситуациях всегда нужно внимательно проанализировать ограничения на входные данные. Кроме ограничения на размер массива, у нас также ограничены сами числа: они не превышают \(10^6\). Можно ли это как-либо использовать? Да.

Посчитаем вспомогательный массив \(c\), где \(c[i]\) — количество чисел \(i\) в изначальном массиве. Если в массиве пять троек, то \(c[3] = 5\). Как в таком случае получить количество пар троек? Владея элементарной комбинаторикой, или черновиком с ручкой, можно заметить, что количество всех пар связано с количеством элементов формулой

Значит, мы можем найти количество пар троек:

Посчитаем этот параметр для всех чисел и сложим получившиеся результаты. Это и будет ответом на задачу.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

#include <bits/stdc++.h> using namespace std; const int MAX_N = 1000000; const int MAX_VALUE = 1000000; int arr[MAX_N]; // Для чисел от 0 до 1000000. // Мы будем умножать эти значения, поэтому используем тип long long // для предотвращения переполнения. long long num_count[MAX_VALUE + 1]; int main() { int n; cin >> n; for (int i = ; i < n; i++) { cin >> arr[i]; num_count[arr[i]]++; } long long ans = ; for (int i = ; i <= MAX_VALUE; i++) { ans += num_count[i] * (num_count[i] 1) / 2; } cout << ans << endl; }

Как видите, мы уложились в два цикла, в худшем случае каждый из них выполнит по миллиону итераций, и общее число операций будет порядка \(3 * 10^6\). Значит, на том же процессоре наша программа будет выполняться за \(30\) мс, что уже гораздо лучше.

Борьба между логикой и чувствами

Извечная борьба между надо и хочу. Логика часто говорит фактами и цифрами. Указывает, что мы должны делать, а что нет. Часто это «записанные» слова извне (нужно начальника терпеть; на работе надо выкладываться на 100%; надо иметь стабильный доход и т.д.).

С этими утверждениями вы можете внутренне как соглашаться, так и сопротивляться. А чувства интуитивны, сиюминутны, но показывают нашу потребность здесь и сейчас. И если мы с какой-то «записью» не согласны, то именно они нам об этом сообщат.

Выход: не исключать ни логику, ни чувства. Найти точку соприкосновения этих потребностей. Определить свои истинные желания. Задайте себе три вопроса относительно этого решения: хочу? Могу? Надо? Если на эти вопросы вы ответили утвердительно, то вы на правильном пути.

Картина Виктора Васнецова «Витязь на распутье», 1882