육효앱을 리뉴얼 하다가 심각한 오류를 발견해서 수정했다.
작괘하는 여러가지 방법을 넣어 놓았는데 그 중에 한가지가 문제가 있었다.
약서법으로 초효 부터 상효까지 여섯개의 버튼을 차례로 누르면 아래의 그림처럼 작괘가 되는데....
동효(빨간 사선 있는)가 너무 많이 나온다.
육효에서 효가 나올 수 있는 경우는 네 가지다. 즉, 사상으로 소양,소음,노양,노음.
그런데 이것을 확률적으로 동일하게 1/4 을 적용 해 버리면 동효가 많이 나오는 오류가 발생한다.
양효 25%
음효 25%
양동 25%
음동 25%
이렇게 네 가지 모두 동일한 확률로 나오면 맞는 것일까?
결론부터 말하면 그렇지 않다.
( 주역이 양수가 너무 많이 나오므로 확률적으로 문제가 있다고 주장했다는 어느 수학자는 이렇게 각각25% 의 확률을 가져야 된다고 주장하는듯 하다.)
동효가 세 개 까지는 그렇다 쳐도 첨부 이미지 처럼 다섯 개가 나오면 통변이 어렵고 난해하게 된다.
물론 6개의 효 전부 동효가 나올 수 도 있지만...
동효는 움직임과 변화를 의미 하는데 만약에 일상 생활에 있어서 음동25% 양동25% 합쳐서 50%의 확률로 사건사고가 발생한다면 사람이 편히 살수 있을까?
주역 본서법으로 작괘하면
5 + 4 + 4 => 9 노양
5 + 4 + 8 => 8 소음
5 + 8 + 4 => 8 소음
5 + 8 + 8 => 7 소양
9 + 4 + 4 => 8 소음
9 + 4 + 8 => 7 소양
9 + 8 + 4 => 7 소양
9 + 8 + 8 => 6 노음
이상과 같이 노양 1/8, 노음 1/8, 양효 3/8, 음효 3/8의 확률을 가지며 음과 양은 정확히 5:5로 공평하다.
그 수학자는 왜 노양 노음이 1/8 밖에 안되냐고 주장하는것 같은데 실제로 삶에 있어서 약50%(양동25%,음동25%)의 변화가 있다면?
위의 확률에 대해 척전법과 비교해 보자.
척전은 동전을 세 개를 동시에 던져서 음,양,노양(양동),노음(음동)을 정하는 방법인데, 앞면을 양으로 뒷면을 음으로 해도 되고 그 반대로 뒷면을 양으로 앞면을 음으로 해도 되므로 본인이 정하면 되는 것이다.
여기서는 앞 면을 양으로, 뒷 면을 음으로 정한다.
동전 세개를 던져서
앞면,앞면,뒷면 이렇게 나올경우 뒷 면이 하나이고 앞 면이 둘 이므로 수가 적은것을 취하여 음으로 정한다.
만약 앞면,뒷면,뒷면이 나오면 그 수가 적은 앞면을 취하여 양으로 정한다.
(팔괘도 마찬가지로 초효,이효,삼효가 음양음(육감수) 순으로 되어 있으면 가운데 있는 양을 취하여 둘째 아들로 본다.
음양양(오손풍)이면 큰 딸. )
앞면,앞면,앞면이 나오면 양동(노양으로 양이 늙어서 음이 된다.)
뒷면,뒷면,뒷면이 나오면 음동(노음으로 음이 늙어서 양이 된다.)
이것을 확률로 분석해 보자
앞앞앞 => 양동
앞뒤뒤 => 양
앞앞뒤 => 음
앞뒤앞 => 음
뒤앞앞 => 음
뒤앞뒤 => 양
뒤뒤앞 => 양
뒤뒤뒤 => 음동
위에 적은 본서법의 확률과 동일하다. 양동,음동은 1/8, 음,양은 각각 3/8.
주역점은 산대 50개를 가지고 이렇게 척전과 동일한 확률을 가지는 방법을 만들어 내고 있다.
어째서 수학적으로 오류가 있다고 주장하는 것인지..
아무튼
내가 발견한 오류는 네 가지 경우가 있기 때문에 4가지를 동일한 확률로 발생시켰다는 점이다.
코딩할 때 난수 4 개를 발생시킨다음
1인 경우 양동
2인 경우 음동
3인 경우 양
4인 경우 음.
이렇게 코딩했기 때문에 동효가 너무 많이 나오는 오류가 발생한 것이다.
(실제 컴퓨터에서 난수를 4개 발생시키면 0,1,2,3 의 네 가지를 발생시키는데 0=>1,1=>2 이렇게 치환하는것이 헷갈리므로 개발자들이 직관적으로 이해하기 위해 발생된 난수에 +1을 한 다음 1,2,3,4 네 가지로 구분한다.)
양동,음동 합쳐서 2/8의 확률을 가지고 있는, 그러니까 25%의 확률로 발생해야 되는 동효가
50%의 확률로 너무 많이 출현되었기 때문이다.
그러나 사용자의 입장에서는 이것이 정상적 확률로 출현한 것인지 모를 수 도 있다.
이 오류를 수정하기 위해 어떻게 해야 할까?
우선 간단한 방법으로
8가지 난수를 발생시키고 (발생한 0~7에다 1을 더해 준다. 그래야 1~8까지 직관적으로 된다.)
1이면 양동
2,3,4 는 양
5 는 음동
6,7,8 은 음
(홀수는 양이고 짝수는 음이므로 1,3,5를 양으로 7을 노양으로 2,4,6을 음으로 8을 노음으로 할 수도 있다.
실제로 6이 노음이고 8이 음이지만 이것은 대수의 개념이므로 여기서는 중요하지 않은 것이다.)
이렇게 코딩하면 된다.
이론상으로는 아무런 문제가 없다. 그러나 실제는 그렇지 않다.
개발자라면 그 이유를 알 것이다. 오류도 없고 난수도 적절하게 발생시키지만 그 분포가 정규분포를 따르지 않는것 같은 느낌이랄까....엄청나게 많은 횟수를 시행하면 결국은 정규분포를 따르겠지만..
그래서 아래와 같은 방법으로 하는 것이 더 나은 방법이라 생각한다.
음수와 양수, 즉 두 개의 난수를 세 번 발생시킨다. (2의 3제곱)
이 방법은 위에서 척전법과 동일한 방법으로 8가지 조합으로 구하면 된다.
* 이 앱은 추가적으로 수정 보완하여 연말이나 내년초에 출시 할 예정
'신변잡기' 카테고리의 다른 글
성명학 앱 개발-한글 오행 자음모음 (3) | 2020.01.20 |
---|---|
역학은 미신일까? 과학일까? (0) | 2019.12.29 |
기문둔갑의 기초 (0) | 2019.12.01 |
생활역학 무료 앱 (3) | 2018.01.09 |
풍수답사 - 경주 양동마을 (0) | 2017.11.05 |