Книга Перемен как алгоритм

Узнайте, как превратить Книгу Перемен в современную систему принятия решений с помощью простых шагов и примеров

В этой статье мы разберём, как традиционный китайский трактат Книга Перемен (И Цзин, I Ching) можно трактовать как набор алгоритмов. Мы будем использовать простые шаги, таблицы и примеры, чтобы показать, как можно превратить древний гадательный механизм в современную систему принятия решений.

Что такое Книга Перемен?

Книга Перемен – это древнее китайское произведение, посвящённое космическим законам и нравственному учению. В ней содержится 64 гексаграммы, каждая из которых представляет собой комбинацию шести черт (тянь – «состояние»), записанных как «плоские» (‑) и «разломанные» (– –). Эти гексаграммы можно рассматривать как «текущие» состояния мира, а их изменения – как алгоритмы, ведущие к решению задачи.

Алгоритмический взгляд на гексаграммы

В программировании мы часто сталкиваемся с 2‑значными состояниями (0 и 1). Гексаграммы – это же 6‑битовые числа. Таким образом, каждую гексаграмму можно представить как целое число от 0 до 63, а её «переходы» – как операции над битами.

2.1 Представление гексаграммы в двоичном виде

  • Плоская черта (‑) – 0
  • Разломанная черта (– –) – 1

Например, гексаграмма «☰» (шесть плывущих черт) → 111111₂ → 63₁₀.

2.2 Алгоритм изменения гексаграммы

  1. Выберите гексаграмму (число от 0 до 63).
  2. Выполните операцию «тянь»: переверните одну из черт (поменяйте 0 на 1 или 1 на 0).
  3. Получите новую гексаграмму – это будет «следующее» состояние.
  4. Повторите шаг 2, пока не достигнете желаемого состояния.

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

Практический алгоритм: гадание как поиск решения

Ниже приведён пошаговый алгоритм, который можно реализовать в любой программной среде (Python, JavaScript, C++ и др.).

  1. Инициализация: задать начальную гексаграмму – число start (0‑63).
  2. Функция перехода:
    def next_hexagram(current, bit):
     # bit – номер черты (0‑5), начиная с нижней
     return current ^ (1 << bit)
     
  3. Цикл поиска:
    def find_path(start, goal):
     visited = set
     stack = [(start, [])]
     while stack:
     node, path = stack.pop
     if node == goal:
     return path + [node]
     if node in visited: continue
     visited.add(node)
     for i in range(6):
     next_node = next_hexagram(node, i)
     stack.append((next_node, path + [node]))
     return None
     

Пример решения задачи

Допустим, вы хотите перейти от гексаграммы «☱» (111000₂ → 56) к гексаграмме «☲» (110111₂ → 55). Алгоритм будет следующим:

  • 56 → 55: поменять 6‑й бит (самую нижнюю черту) с 1 на 0.

Результат: один шаг. Это и есть «простой алгоритм» – изменение одной черты.

Список полезных ресурсов

  • Книга Перемен (И Цзин) – оригинальный текст (в переводе и в оригинале).
  • Алгоритмы и структуры данных – учебники по компьютерным наукам, где можно изучить графы и поиск в глубину.
  • Python‑реализация И Цзин – репозитории на GitHub, где уже реализованы функции работы с гексаграммами.
  • Книги по синергетике – книги, посвящённые взаимосвязям и изменению систем.
  • Онлайн‑сервисы гадания – сайты, где можно получить гексаграмму по бросанию монет.

Книга Перемен – не просто древний гадательный трактат, а богатый источник алгоритмических идей. Перевод её в язык программирования открывает новые возможности: от простого поиска пути до сложных систем принятия решений. Если вы интересуетесь как древней мудростью, так и современными технологиями, то алгоритмический подход к Книге Перемен – отличный способ объединить эти две области.

Надеемся, что эта статья помогла вам увидеть новые горизонты в использовании Книги Перемен как алгоритмической модели. Happy coding and good luck with your decisions!