全部版块 我的主页
论坛 数据科学与人工智能 IT基础 JAVA语言开发
59 0
2025-12-11
在六爻预测(纳甲筮法)体系中,"六冲卦"与"六合卦"是两类具有典型象征意义的卦象结构。它们对判断事件的发展趋势、吉凶成败、时间快慢及聚散离合等有着重要影响。本文内容属于六爻基础理论范畴,理解起来较为直观清晰。

一、地支中的六冲与六合关系

1. 地支六冲

地支之间存在六组相冲关系,分别为: - 子午相冲 - 丑未相冲 - 寅申相冲 - 卯酉相冲 - 辰戌相冲 - 巳亥相冲 冲的含义:象征冲突、背离、动荡、解散与快速变动。古语有云:“冲者散也”,即表示事物趋于瓦解或突变的状态。

2. 地支六合

地支之间的六种合化关系如下: - 子与丑合 - 寅与亥合 - 卯与戌合 - 辰与酉合 - 巳与申合 - 午与未合 合的含义:代表融合、协作、稳定、牵连和持久。合多主“迟”,意味着事情进展缓慢但可能持续较长时间。 优先级说明: 当命局中同时出现生克与合的情况时,应以“合”为主;若同时存在冲与克,则优先论“冲”,因为冲的力量通常强于克。

二、六冲卦与六合卦的基本定义

1. 六冲卦

指在一个卦中,初爻与四爻、二爻与五爻、三爻与上爻的地支两两形成相冲关系,构成“六冲”格局。 常见的六冲卦共有10个,来源于八宫首卦以及两个特殊卦例: - 《乾为天》 - 《坤为地》 - 《震为雷》 - 《巽为风》 - 《坎为水》 - 《离为火》 - 《艮为山》 - 《兑为泽》 - 《天雷无妄》 - 《雷天大壮》 六冲卦的象征意义: 主冲突、破裂、突发状况、局势不稳、持续时间短。 适合用于占问:官司诉讼、疾病发作、人际纠纷等(凶事遇冲反而易化解)。 不利占问:婚姻缔结、合作项目、求财置业、建造房屋等(吉事逢冲则易失败)。 古诀记载:“近病逢冲即愈,久病逢冲即死。”说明短期病症遇到六冲反有利康复,而长期慢性病则可能因此恶化。

2. 六合卦

指卦中初爻与四爻、二爻与五爻、三爻与上爻的地支两两相合,形成“六合”格局。 常见六合卦共8个: - 《地天泰》 - 《天地否》 - 《雷地豫》 - 《山火贲》 - 《地雷复》 - 《泽水困》 - 《火山旅》 - 《水泽节》 六合卦的象征意义: 主和谐、团结、安定、拖延、情感羁绊。 适合占问:婚恋关系、合作协议、签约事项、感情发展等。 不适合占问:需迅速解决的问题、摆脱困境、解除忧虑等情形(因“合”导致迟滞)。 古诀提示:“诸占皆吉,唯用神有气方验;若用神休囚,合反为绊。”意指即使卦象为合,若所用之神衰弱无力,反而会被合住成绊脚石。

三、特殊组合与变卦情况分析

| 组合类型 | 含义解析 | |------------------|--------| | 六合化六冲 | 先合后散,初期顺利最终破裂,如感情由好转坏 | | 六冲化六合 | 起初混乱,后期趋于平稳,如争执最终达成和解 | | 六冲化六冲 | 动荡不断,难以安定,多预示事情失败 | | 动爻自化回头冲 | 冲击力极强,犹如“敌方反扑”,对用神伤害显著 |

四、实际断卦的核心要点

不能仅凭卦象是否为“六冲”或“六合”就下结论,必须结合以下因素综合判断:
  • 用神旺衰:查看用神是否得令、得地、得生扶,决定其力量强弱。
  • 世应关系:世爻与应爻若相生相合则吉,若相冲相克则凶。
  • 动爻与变爻:观察是否有动爻化解了冲势,或破坏了合局。
  • 日辰月建:日月可起到合冲、解冲的作用,影响卦象最终结果。
注意:六冲并非全凶,六合也不一定全吉。例如: - 占病得六冲卦 → 近病可速愈(属吉) - 占婚得六合卦但用神受克 → 表面和睦实则勉强维持(实为凶兆) 应期判断原则: - 六冲卦:应验较快(冲主动荡) - 六合卦:应验较慢(合主迟缓)

五、总结口诀

六冲主散主变动,吉事不宜凶事通; 六合主聚主安稳,用神得力万事隆。 冲中带合情难断,合里藏克暗有争; 断卦须看用神气,莫被卦名误一生。

六、代码实现逻辑

由于六冲卦共10个,六合卦共8个,均为固定卦象,可通过编程方式预先存储其二进制编码,在实际占卜中通过比对判断目标卦是否属于这两类结构。
package com.tarzan.maxkb4j.core.tool;

import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;

public class Demo {
    // 八卦名称及其对应的二进制表示
    static String[] TRIGRAMS = {"坤", "艮", "坎", "巽", "震", "离", "兑", "乾"};
    
    // 八宫五行归属
    static final String[] GONG_FIVE_ELEMENTS = {
        "坤宫:土", "艮宫:土", "坎宫:水", "巽宫:木", "震宫:木", "离宫:火", "兑宫:金", "乾宫:金"
    };
    
    // 八宫名称数组
    static String[] GONG_NAMES = {
        "坤宫", "艮宫", "坎宫", "巽宫", "震宫", "离宫", "兑宫", "乾宫"
    };
    
    // 六十四卦名称表(按宫排列)
    static String[][] SIXTY_FOUR_GUA_NAMES = {
        // 坤宫(土)
        {"坤为地", "地雷复", "地泽临", "地天泰", "雷天大壮", "泽天夬", "水天需", "水地比"},
        
        // 艮宫(土)
        {"艮为山", "山火贲", "山天大畜", "山泽损", "火泽睽", "天泽履", "风泽中孚", "风山渐"},
        
        // 坎宫(水)
        {"坎为水", "水泽节", "水雷屯", "水火既济", "泽火革", "雷火丰", "地火明夷", "地水师"},
        
        // 巽宫(木)
        {"巽为风", "风天小畜", "风火家人", "风雷益", "天雷无妄", "火雷噬嗑", "山雷颐", "山风蛊"},
        
        // 震宫(木)
        {"震为雷", "雷地豫", "雷水解", "雷风恒", "地风升", "水风井", "泽风大过", "泽雷随"},
        
        // 离宫(火)
        {"离为火", "火山旅", "火风鼎", "火水未济", "山水蒙", "风水涣", "天水讼","天火同人"},
        
        // 兑宫(金)
=== 六爻排盘 ===
六爻(十进制 ):[2, 5, 7, 3, 6, 1]
六爻(二进制 ):[000010, 000101, 000111, 000011, 000110, 000001]
六爻(四象):[2, 1, 3, 1, 2, 1]
本卦:110110 卦名:兑为泽(六冲卦) 卦宫:兑宫(金) 干支:甲辰年 丙寅月 戊戌日 辛酉时

以下是六十四卦的排列结构,按八卦宫位分类整理。每个卦宫包含八个卦象,以二进制形式表示阴阳爻的变化规律。

兑宫(金)

  • 兑为泽 —— 110110
  • 泽水困 —— 010110
  • 泽地萃 —— 000110
  • 泽山咸 —— 001110
  • 水山蹇 —— 001010
  • 地山谦 —— 001000
  • 雷山小过 —— 001100
  • 雷泽归妹 —— 110100

乾宫(金)

  • 乾为天 —— 111111
  • 天风姤 —— 011111
  • 天山遁 —— 001111
  • 天地否 —— 000111
  • 风地观 —— 000011
  • 山地剥 —— 000001
  • 火地晋 —— 000101
  • 火天大有 —— 111101

坤宫(土)

  • 坤为地 —— 000000
  • 地雷复 —— 100000
  • 地泽临 —— 110000
  • 地天泰 —— 111000
  • 雷天大壮 —— 111100
  • 泽天夬 —— 111110
  • 水天需 —— 111010
  • 水地比 —— 000010

艮宫(土)

  • 艮为山 —— 001001
  • 山火贲 —— 101001
  • 山天大畜 —— 111001
  • 山泽损 —— 110001
  • 火泽睽 —— 110101
  • 天泽履 —— 110111
  • 风泽中孚 —— 110011
  • 风山渐 —— 001011

坎宫(水)

  • 坎为水 —— 010010
  • 水泽节 —— 110010
  • 水雷屯 —— 100010
  • 水火既济 —— 101010
  • 泽火革 —— 101110
  • 雷火丰 —— 101100
  • 地火明夷 —— 101000
  • 地水师 —— 010000

巽宫(木)

  • 巽为风 —— 011011
  • 风天小畜 —— 111011
  • 风火家人 —— 101011
  • 风雷益 —— 100011
  • 天雷无妄 —— 100111
  • 火雷噬嗑 —— 100101
  • 山雷颐 —— 100001
  • 山风蛊 —— 011001

震宫(木)

  • 震为雷 —— 100100
  • 雷地豫 —— 000100
  • 雷水解 —— 010100
  • 雷风恒 —— 011100
  • 地风升 —— 011000
  • 水风井 —— 011010
  • 泽风大过 —— 011110
  • 泽雷随 —— 100110

离宫(火)

  • 离为火 —— 101101
  • 火山旅 —— 001101
  • 火风鼎 —— 011101
  • 火水未济 —— 010101
  • 山水蒙 —— 010001
  • 风水涣 —— 010011
  • 天水讼 —— 010111
  • 天火同人 —— 101111

特殊卦象列表:

六合卦

  • 地天泰 —— 111000
  • 天地否 —— 000111
  • 雷地豫 —— 000100
  • 地雷复 —— 100000
  • 山火贲 —— 101001
  • 火山旅 —— 001101
  • 泽水困 —— 010110
  • 水泽节 —— 110010

六冲卦

  • 坤为地 —— 000000
  • 艮为山 —— 001001
  • 坎为水 —— 010010
  • 巽为风 —— 011011
  • 震为雷 —— 100100
  • 离为火 —— 101101
  • 兑为泽 —— 110110
  • 乾为天 —— 111111
  • 泽雷随 —— 100111
  • 雷天大壮 —— 111100
public static String convert(int[] gua) {
    List<String> list = Arrays.stream(gua)
        .boxed()
        .map(String::valueOf)
        .collect(Collectors.toList());
    return String.join("", list);
}

public static int[] getRandomNumbers() {
    Random random = new Random();
    int[] numbers = new int[6];
    for (int i = 0; i < 6; i++) {
        int randomNumber = random.nextInt(8);
        numbers[i] = randomNumber;
    }
    return numbers;
}

public static List<String> toBinary(int[] numbers) {
    List<String> list = new ArrayList<>();
    for (Integer i : numbers) {
        String binary = String.format("%3s", Integer.toBinaryString(i)).replace(' ', '0');
        list.add(binary);
    }
    return list;
}

public static int[] toFourQuadrant(int[] numbers) {
    int[] gua = new int[6];
    for (int i = 0; i < numbers.length; i++) {
        int yao = numbers[i];
        if (yao == 0) {
            gua[i] = 0;
        } else if (List.of(1, 2, 4).contains(yao)) {
            gua[i] = 1;
        } else if (List.of(3, 5, 6).contains(yao)) {
            gua[i] = 2;
        } else if (yao == 7) {
            gua[i] = 3;
        }
    }
    return gua;
}

public static int[] toSixYao(int[] fourQuadrant) {
    int[] gua = new int[6];
    for (int i = 0; i < fourQuadrant.length; i++) {
        int yao = fourQuadrant[i];
        if (yao < 2) {
            gua[i] = 0;
        } else {
            gua[i] = 1;
        }
    }
    return gua;
}

public static String getGongFiveElement(String gong) {
    for (String element : GONG_FIVE_ELEMENTS) {
        if (element.contains(gong)) {
            return element.split(":")[1];
        }
    }
    return null;
}

public static String getGuaGong(String gua) {
    Map<String, Integer> map = new HashMap<>();
    for (int i = 0; i < SIXTY_FOUR_GUA.length; i++) {
        String[] guas = SIXTY_FOUR_GUA[i];
        for (String _gua : guas) {
            map.put(_gua, i);
        }
    }
    int index = map.get(gua);
    return GONG_NAMES[index];
}

public static String getGuaName(String gua) {
    // 确定内卦和外卦
    int innerGuaIdx = getTrigram(gua.substring(0, 3));
    int outerGuaIdx = getTrigram(gua.substring(3));
    // 打印结果
    System.out.println("内卦: " + TRIGRAMS[innerGuaIdx] + " 外卦: " + TRIGRAMS[outerGuaIdx]);
    for (int i = 0; i < SIXTY_FOUR_GUA.length; i++) {
        String[] gong_gua = SIXTY_FOUR_GUA[i];
        for (int j = 0; j < gong_gua.length; j++) {
=== 六爻排盘 ===

六爻(十进制):[0, 3, 3, 1, 3, 6]
六爻(二进制):[000, 011, 011, 001, 011, 110]
六爻(四象):[0, 2, 2, 1, 2, 2]

内卦: 巽  
外卦: 巽

本卦:011011  
卦名:巽为风(六冲卦)  
卦宫:巽宫(木)  
干支:乙巳年 戊亥月 壬子日 庚戌时
// 根据三爻的二进制字符串获取对应的八卦序号
private static int getTrigram(String binaryStr) {
    return Integer.parseInt(binaryStr, 2);
}

// 匹配六十四卦名称,通过上下卦对照查找对应卦象
for (int i = 0; i < SIXTY_FOUR_GUA_NAMES.length; i++) {
    if (gua.equals(gong_gua[j])) {
        return SIXTY_FOUR_GUA_NAMES[i][j];
    }
}
}
return null;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群