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

В инженерном проектировании или просто в теории вероятностей, которая является одним из разделов математики, многие люди могут застрять в том, что существует так много разных ситуаций, откуда я могу знать, что рассмотрел все ситуации и комбинации?! И чем больше вы думаете, тем больше у вас будет депрессии. Наконец, вы бы резюмировали это так: это действительно строгая тема, требующая повторения всех уголков деталей. Но это действительно выше моих сил, давайте просто бросим.

Но как только у вас появится небольшой опыт решения этих сложных и скучных задач, и вы успокоитесь, чтобы оглянуться назад на свое решение и процесс, ведущий к нему, вы обнаружите что-то другое, по крайней мере, я нахожу что-то странное. Я считаю, что в большинстве случаев окончательное решение никогда не будет включать в себя рассмотрение большого количества особых случаев. Удивительно, что в вашем окончательном решении сложности, которая беспокоила вас, может никогда не быть! В чем проблема?! И как, черт возьми, это произошло? Я потерял рассудок?

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

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

В сообществе Unix/Linux есть одно высказывание Линуса, что хороший программист заботится о структуре данных, а плохой — о своем коде. Потому что отношения всегда больше, чем элементы. Как только вы получите структуру данных, вы получите стабильную часть. Но если вы хотите взломать отношения этих структур данных, у вас будет беспорядок. Таким образом, чтобы контролировать сложность, вам нужно приложить усилия к разработке структуры данных, которая должна выражать вашу проблему и ее отношения намного лучше и эффективнее.

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

Из приведенного выше обсуждения мы можем обнаружить одну вещь, сложность которой трудно контролировать, поэтому мы должны приложить усилия к элементам для их создания, а именно к способам их выражения. Для CS это структура данных для кодирования. Для математики это определения соединений. (Это может быть неконкретно, потому что математика — это абстракция.) Таким образом, если мы обнаружим, что нам трудно рассмотреть все ситуации в одной задаче, очень вероятно, что вы придумали неподходящий способ выразить проблему. Потому что модель мышления, которую вы разрабатываете, не делает эту сложность под вашим контролем, а просто позволяет ей размножаться. Вам действительно нужно перепроектировать свою структуру данных, свою базовую структуру и способ организации всех материалов в задаче.

Таким образом, я бы сказал, что строгость — это не та проблема, с которой мы сталкиваемся, когда имеем дело с проблемой множества ситуаций. На самом деле это вопрос дизайна. Хороший дизайн может контролировать сложность, благодаря чему исчезают все частные случаи и возникает только одна общая ситуация. Именно структура вашего решения определяет сложность вашего взлома. Задача дизайнера – держать все под контролем.

Если мы согласны с этими обсуждениями, мы можем понять старую поговорку: как только вы сможете правильно сформулировать проблему, вы решите половину ее частей, а то и всю проблему.

И с точки зрения более высокого уровня нам действительно нужен самоанализ. Даже если мы просто обнаружим, что можем обвинять в неправильном направлении, это может дать нам более глубокое понимание и уменьшить наше чувство вины.