【蓝桥杯Java_C组·从零开始卷】第四节(附)、河图洛书【九宫格】(卷王必备,不想卷的略过,使用优化暴力破解,与网上莫名其妙的规律不一样)

目录


河图洛书到底是什么?


一,河图之象


二,河图之数


三、Java二维数组表示方法


河图洛书到底是什么?

河图与洛书是中国古代流传下来的两幅神秘图案,历来被认为是河洛文化的滥觞,中华文明的源头,被誉为宇宙魔方。

相传,上古伏羲氏时,洛阳东北孟津县境内的黄河中浮出龙马,背负河图,献给伏羲。伏羲依此而演成八卦,后为《周易》来源。又相传,大禹时,洛阳西洛宁县洛河中浮出神龟,背驮洛书,献给大禹。大禹依此治水成功,遂划天下为九州。又依此定九章大法,治理社会,流传下来收入《尚书》中,名《洪范》。《易・系辞上》说:河出图,洛出书,圣人则之,就是指这两件事。



河图上,排列成数阵的黑点和白点,蕴藏着无穷的奥秘;


洛书上,纵、横、斜三条线上的三个数字,其和皆等于15,十分奇妙。


对此,中外学者作了长期的探索研究,认为这是中国先民心灵思维的结晶,是中国古代文明的第一个里程碑。《周易》和《洪范》两书,在中华文化发展史上有着重要的地位,在哲学、政治学、军事学、伦理学、美学、文学诸领域产生了深远影响。作为中国历史文化渊源的河图洛书,功不可没。


一,河图之象

河图用十个黑白园点表示阴阳、五行、四象,其图为四方形。如下:

北方:一个白点在内,六个黑点在外,表示玄武星象,五行为水。

东方:三个白点在内,八个黑点在外,表示青龙星象,五行为木。

南方:二个黑点在内,七个白点在外,表示朱雀星象,五行为火。

西方:四个黑点在内,九个白点在外,表示白虎星象,五行为金。

*:五个白点在内,十个黑点在外,表示时空奇点,五行为土。

(其中,单数为白点为阳,双数为黑点为阴。四象之中,每象各统领七个星宿,共28宿。)以上为《河图》。其中四象,按古人座北朝南的方位为正位就是:前朱雀,后玄武,左青龙,右白虎。此乃风水象形之源也。


二,河图之数

1,天地之数:河图共有10个数,1,2,3,4,5,6,7,8,9,10。其中1,3,5,7,9,为阳,2、4、6、8、10、为阴。阳数相加为25,阴数相加得30,阴阳相加共为55数。所以古人说:天地之数五十有五,即天地之数为55,以成变化而行鬼神也。即万物之数皆由天地之数化生而已。


三、Java二维数组表示方法

package StrTest;
 
public class luoshu {
    public static void main(String[] args) {
        /**
         * 2 9 4<br/>
         * 7 5 3<br/>
         * 6 1 8<br/>
         * 先计算是个脚的数字与中间的数字,<br/>
         * 最后边上中间的就能算出来了。<br/>
         */
        int d = 0;
        int i = 0;
        // 创建int数组,用来存储4个边角数字
        int[] corner = new int[4];
        // center用来存储*的数字
        int center = 0;
        for (int a = 1; a < 10; a++) {
            for (int b = 1; b < 10; b++) {
                if (a != b) {
                    for (int c = 1; c < 10; c++) {
                        if (a != c && b != c) {
                            int x = a + b + c;
                            if (x == 15) {
                                d++;
                            }
                        }
                    }
                }
            }
            if (d == 6) {
                System.out.println("角数字是" + a);
                corner[i] = a;
                i++;
                d = 0;
            }
 
            if (d == 4) {
                d = 0;
            }
            if (d == 8) {
                System.out.println("中间数字是" + a);
                center = a;
                d = 0;
            }
        }
        // 第一行中间的数字为
        int m1 = 15 - corner[0] - corner[1];
        // 最后一行中间的数字为
        int m2 = 15 - corner[2] - corner[3];
        // 左边列中间的数字为
        int m3 = 15 - corner[0] - corner[2];
        // 左边列中间的数字为
        int m4 = 15 - corner[1] - corner[3];
        System.out.println(corner[0] + "  " + m1 + "  " + corner[1]);
        System.out.println(m3 + "  " + center + "  " + m4);
        System.out.println(corner[2] + "  " + m2 + "  " + corner[3]);
    }
}

【蓝桥杯Java_C组·从零开始卷】第四节(附)、河图洛书【九宫格】(卷王必备,不想卷的略过,使用优化暴力破解,与网上莫名其妙的规律不一样)


上一篇:.net持续集成cake篇之cake任务依赖、自定义配置荐及环境变量读取


下一篇:sql中datetime日期类型字段比较(mysql&oracle)