易经八卦,PHP函数计算八卦规则
在易经中,我们用—表示阳;--表示阴;
在计算机中, 用0表示--,1表示—;
两爻组合得到 太阳, 太阴, 少阳, 少阴, 在计算机中, 分别用11,00,10,01表示
三爻组合, 得到八卦, 乾、兑、离、震、巽、坎、艮、坤, 分别用111,110,101......001,000表示
两个八卦, 上下组合成64卦, 乾111111, 履110111...艮000001, 坤000000;
占卦, 得到一个本卦, 通过计算机计算, 很轻松得到 错卦(按位异或),互卦,综卦,杂卦;
根据每爻变化, 很简单得到变卦.
计算机对识别 初六,初九, 上六,上九,以及六二, 六三,六四, 可以保存为数组;
在计算机中,需要打印八卦以及六十四卦 图,
需要安装Yijing Symbols.ttf字体;
如: 坤 ䷁ 或䷁ 乾 ䷀ 或 ䷀
<style> @font-face{ font-family: "Yijing Symbols"; src:url("Yijing Symbols.ttf"); } body { font-family: "Yijing Symbols"; } </style> </head>
见图:
/** * 6位二进制数,取反, 011001->100110 **/ function cuoGua($data = ''){ // 根据异或长度计算匹配的数值 $numberLen = strlen($data); $xorValue = (1 << $numberLen) - 1; // 计算 2^$numberLen - 1 6位63 // 二进制到十进制 $decNumber = bindec($data); // 进行按位异或运算 $resultXor = $decNumber ^ $xorValue; // 补0 $result = str_pad(decbin($resultXor), $numberLen, '0', STR_PAD_LEFT); return $result; // 返回十进制结果 } function zongGua($data = ''){ $data = str_split($data); $xinArr = array( $data[5], $data[4], $data[3], $data[2], $data[1], $data[0], ); return implode('', $xinArr); } function zaGua($data = ''){ $data = str_split($data); $xinArr = array( $data[3], $data[4], $data[5], $data[0], $data[1], $data[2], ); return implode('', $xinArr); } function huGua($data = ''){ $data = str_split($data); $xinArr = array( $data[1], $data[2], $data[3], $data[2], $data[3], $data[4], ); return implode('', $xinArr); } function yaoName($data = ''){ $configArr = array( '06' => '初六', '16' => '六二', '26' => '六三', '36' => '六四', '46' => '六五', '56' => '上六', '09' => '初九', '19' => '九二', '29' => '九三', '39' => '九四', '49' => '九五', '59' => '上九', ); $data = str_split($data); foreach($data as $key => $val){ if($val > 0){ $result[$key] = $configArr[$key.'9']; }else{ $result[$key] = $configArr[$key.'6']; } } return $result; } function bianGua($data = '', $yao = 1){ $xinArr = str_split($data); ($xinArr[$yao-1] > 0)?$xinArr[$yao-1]=0:$xinArr[$yao-1]=1; return implode('', $xinArr); }
新的函数封装
function cuoGua($data = ''){ $data = str_split($data); $result = array_map(function($v) { return ($v === '1') ? '0' : '1'; }, $data); return implode('', $result); } function zongGua($data = ''){ //123456位倒序 654321位 $data = str_split($data); $result = array_reverse($data); return implode('', $result); } function zaGua($data = ''){ //123位与456位交换 $data = str_split($data); $splitIndex = 3; $result = array_merge( array_slice($data, $splitIndex), array_slice($data, 0, $splitIndex) ); return implode('', $result); } function huGua($data = ''){ //234位与345位组成新卦 $data = str_split($data); $result = array_map(function($i) use ($data) { return ($i < 3) ? $data[$i + 1] : $data[$i - 1]; }, array_keys($data)); return implode('', $result); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步