모바일 :: 인터넷역학 - 주역
주희 32괘변도
芝枰 | 22.02.19 10:30 | 1,497 hit
주희(朱熹)가 지은 역학계몽에 보면 32괘변도가 있다. 음양이 반대인 괘(예: 중천건 중지곤)를 하나의 묶음으로 만들었기 때문에 32개의 괘변도라 한다. 하나의 괘변도에는 음양이 정반대인 두 개의 본괘가 있고 하나의 괘가 궁극적으로 정반대의 괘로 변하기 때문에 하나의 괘변도에는 128괘의 변화가 있는 셈이다. 예를 들어 건곤의 괘변도를 보면, 건에서 곤으로 변하는데 64변, 곤에서 건으로 변하는데 64변이다. 이것이 32개 있으니 4096 변화가 나오는 것이다. (128 * 32 = 4096)

저 책을 아주 오래 전에 사두고 32괘변도 나오는 부분에서 어떤 규칙으로 그려 놓았는지 감이 안 잡혀서 책을 덮어놨었다. 오늘 다시 저 책을 보게 됐는데 이리저리 본 결과 의외로 간단한 규칙이 있다는 것을 알았다. 책에는 저 괘변도가 어떤 규칙으로 그려졌는지에 대한 설명이 전혀 없다.

주희 32괘변도의 규칙은 이렇다. 여기서 적은 한, 두, 세,..는 효의 개수를 말한다. 각각의 경우에 대한 변화를 그리면 되는 것이다. 그런데 한두세와 네오육은 음양이 정반대이므로 한두세만 그려놓고 나머지는 음양만 바꿔주면 된다.

한 효가 변하는 경우
두 효가 변하는 경우
세 효가 변하는 경우
네 효가 변하는 경우
오 효가 변하는 경우
육 효가 변하는 경우

경우의 수:  '효' 앞에 아라비아 숫자는 효의 위치를 말함.

한 효가 변하는 경우
1효, 2효, 3효, 4효, 5효, 6효

두 효가 변하는 경우
12효, 13효, 14효, 15효, 16효
23효, 24효, 25효, 26효
34효, 35효, 36효
45효, 46효
56효

세 효가 변하는 경우
123효, 124효, 125효, 126효
134효, 135효, 136효
145효, 146효
156효

이것을 순서대로 적으면 이렇다.

1효, 2효, 3효, 4효, 5효, 6효,12효, 13효, 14효, 15효, 16효,23효, 24효, 25효, 26효,34효, 35효, 36효,45효, 46효,56효,123효, 124효, 125효, 126효,134효, 135효, 136효,145효, 146효,156효

0효 즉 변하지 않는 경우까지 하면 모두 32변이 나온다. 이 순서로 먼저 괘를 변화시켜 놓고, 순서를 반대로 하여 156효(일오육 효)부터 1효, 0효까지 변화된 괘에 대해 음양만 바꿔서 뒤에 붙여주면 완성된다.

건곤 괘를 예로 들면 이렇다.

0효변: 중천건
1효변: 천풍구
2효변: 천화동인
...
146효변: 수풍정
156효변: 뇌풍항
156효변 배합괘: 풍뇌익
146효변 배합괘: 화뢰서합
...
2효변 배합괘: 지수사
1효변 배합괘: 지뢰복
0효변 배합괘: 중지곤

주희 32괘변도는 단지 64괘가 4096괘로 변할 수 있다는 것을 규칙적으로 보여줄 뿐 그것이 점술에 어떻게 이용되는 지에 대한 말은 없다.

p.s.
참고서적: 역학계몽, 주희 지음, 김상섭 해설, 예문서원



芝枰 2022.02.20 15:31
세로 쓰기로 되어 있으니 순서는 세로로 읽으면 된다. 乾에서 시작한다면 "건, 구, 동인, 리, 소축, 대유, 쾌, 돈, 송, 손, .. , 박, 비, 예, 겸, 사, 복, 곤" 이 된다. 坤에서 시작한다면 "곤, 복, 사, 겸, 예, 비, 박, 임, 명이, ..., 쾌, 대유, 소축, 리, 동인, 구, 건" 이 된다.

효가 변하지 않는 경우: 乾
한 효가 변하는 경우: 姤 ~ 夬
두 효가 변하는 경우: 遯 ~ 大壯
세 효가 변하는 경우: 否 ~ 泰
네 효가 변하는 경우: 觀 ~ 臨
다섯 효가 변하는 경우: 剝 ~ 復
여섯 효가 변하는 경우: 坤

이런 방식으로 32괘변도를 그릴 수 있다.

芝枰 2022.02.22 18:27
건괘가 곤괘로 변하는 경우의 수는 62! (62 팩토리알)만큼 있다. 이는 64괘의 순서를 나열하는 경우의 수와 비슷하다. 64괘를 순서대로 나열하는 경우의 수는 64! (64 팩토리알) 만큼 있다.

주희의 32괘변도의 방식으로 괘를 변화시키는 방법은 간단하다. 조합 알고리즘(combination algorithm)으로 6효를 변화시키면 주희의 32괘변도 순서로 괘를 변화시킬 수 있다.

변화시키려는 괘가 있다면 이런 순서로 하면 된다.

1. 괘를 그에 상응하는 수(비트)로 바꾼다. (예: 중천건 63)
2. 그 수와 다음 숫자들과 xor 비트연산을 한다. 총 64번의 비트연산. (예: 중천건 63 xor 1 = 62)

0,1,2,4,8,16,32,3,5,9,17,33,6,10,18,34,12,20,36,24,40,48,7,11,19,35,13,21,37,25,41,49,14,22,
38,26,42,50,28,44,52,56,15,23,39,27,43,51,29,45,53,57,30,46,54,58,60,31,47,55,59,61,62,63

3. 비트연산 결과 나온 수를 그에 상응하는 괘로 바꾼다. (예: 62 = 천풍구)

芝枰 2023.05.25 04:09
주희(1130-1200)의 괘변화는 굉장히 수학적이다. 이진수 및 조합 알고리즘이 적용되었다. 저 당시에 저런 생각을 떠올린 것 자체가 대단하다.

芝枰 2023.05.29 00:11
조합 알고리즘
배열값 대신 인덱스를 비교하기 때문에 배열값이 정렬(sort)되어 있지 않아도 된다. 재귀함수를 사용하기 때문에 배열 사이즈는 원하는대로 바꿀 수 있다.

OOP 로 만들면 global 변수 안 써도 된다.

<?
//combination algorithm
//len_a : length of a
//len_c : length of c
//nCr
//compare indexes
//array of not sorted values can be used

function main() {
  global $a, $len_a, $len_c, $c;
  $a = array(1,2,3,4,5,6);  //sorted
  //$a = array(6,5,4,3,2,1);  //sorted descending
  //$a = array('D',3,'F','1','A','2');  //not sorted
  $c = array(); //array for results
  $len_a = count($a);
  //test 1
  //$len_c = 3;
  //combi(0);
  //return;

  //test 2
  for($i=1; $i<=$len_a; $i++) {
    $len_c = $i;  //length of conbination
    combi(0);
  }
}

function combi($n, $pre_j=0) {
  global $a, $len_a, $len_c, $c;

  //result
  if($n >= $len_c ){
    printf("%s\n", implode(' ', $c));

  }else{
    for($j=$n; $j < $len_a; $j++){
      if($pre_j>0 && ($pre_j >= $j)) {
        continue;
      }

      $c[$n] = $a[$j];
      combi($n+1, $j);
      array_pop($c);
    }
  }
}

main();

?>

인터넷역학 | PC버전 | 로그인