Что такое декомпозиционное вычислительное мышление?
Вычислительное мышление — это способ логически мыслить и организованно решать проблемы. Это процесс структурированного подхода к проблеме и создания и выражения ответа на такую проблему, который может быть легко выполнен системой или машиной. Это не только для программистов, но применимо в разных областях. Обладая знаниями о вычислительном мышлении, можно решать различные количественные и связанные с данными задачи, а также это даст вам основу для решения реальных задач. Вычислительное мышление отличается от человека к человеку, и, скажем, человек думает об использовании алгоритма, тогда разные люди будут думать об алгоритмах по-разному, например, ученый может думать об этом как об экспериментальной процедуре, ученый-компьютерщик может понимать это как исследование алгоритмы и их приложения и т. д. Основные понятия вычислительного мышления включают моделирование, абстракцию, декомпозицию, алгоритмическое мышление, логическое мышление и т. д. Примером вычислительного мышления может быть предсказание погоды или климата, которое можно сделать только с помощью компьютерные модели на длительный период времени и т. д. В этой статье мы узнаем о декомпозиции в вычислительном мышлении.
Разложение
Декомпозицию можно определить как процесс решения сложной проблемы и разбиения ее на несколько подзадач, которые можно легко решить. Решение сложной проблемы иногда может быть трудным, но найти решение для каждой подзадачи будет просто, после чего подзадачи можно объединить для поиска полного решения исходной проблемы. Это метод «разделяй и властвуй», который можно увидеть в разных местах за пределами компьютеров. Важно отметить, что это не даст вам полный план действий, а скорее послужит отправной точкой для его формулирования, например, проблема может быть разбита на подзадачи, но не покажет вам порядок в котором вы можете справиться с ними. Для облегчения понимания разложения:
- Определите элементы или части сложной проблемы
- Делит задачу на различные подзадачи (последовательно)
Важность разложения
- Помогает легко решать сложные задачи.
- Декомпозированные подзадачи могут выполняться или решаться разными лицами или группой лиц (если не хватает знаний о полной проблеме).
- Когда проблема разделена на подзадачи, каждая подзадача может быть рассмотрена подробно.
Пример
Лучшим примером декомпозиции в информатике является рекурсия. В рекурсии мы используем его, чтобы упростить проблему и разбить более крупную проблему на части, а затем решить каждую из частей. Некоторые из реальных распространенных примеров, которые используются в вашей повседневной жизни разложения, приведены ниже:
- Если вы хотите создать новую игру с помощью компьютерного программирования, то для создания игры вы будете писать разные функции для разных действий в игре, а затем эти функции будут действовать как подпрограммы или подзадачи, после чего эти подзадачи будут быть объединены, чтобы сформировать полную игру.
- В спорте иногда команды разбивают команду соперника на более слабые команды, иначе они объединятся в более сильное целое.
- Когда вы хотите убраться в доме, вы составляете список дел для выполнения своих задач.
- При создании научного проекта нам нужно делать различные вещи, такие как фоновые исследования, эксперименты, написание диссертации и ее представление и т. д. Таким образом, это также будет отличным примером декомпозиции.
- Человек изучает новый язык и то, как формировать предложение, используя новый иностранный язык, разбивая его на части, такие как подлежащее, глагол, дополнение и т. д.
- Другим примером может быть математическая задача. Например, следующее число 256,37 можно записать как 2*10 2 +5*10 1 +6*10 0 +3*10 -1 +7 * 10 -2.
Хорошим примером декомпозиции в информатике может быть алгоритм сортировки слиянием. В этом алгоритме мы делим массив на две части, вызываем себя для двух частей, а затем объединяем две отсортированные части в одну. Приведенный ниже алгоритм сортировки слиянием показывает, что массив рекурсивно делится на 2 части, пока его размер не станет равным 1. Как только он станет равным 1, выполняется процесс слияния, и массив полностью объединяется.
MergeSort(arr[], l, r)
If r > l
1. Finding mid point and dividing arr into 2 halves
middle m = l + (r – l) / 2
2. Call mergeSort for first half:
Call mergeSort(arr, l, m)
3. Call mergeSort for second half:
Call mergeSort(arr, m + 1, r)
4. Merging 2 and 3 halves in one:
Call merge(arr, l, m, r)