[c++][代碼]六爻算卦的程式化

來源:互聯網
上載者:User

標籤:AC   太極   std   分表   出現   include   三次   注釋   手機   

周易是一本玄學的書。

其中裡面的算卦我特別感興趣,對於梅花易數或者投硬幣的方法可以自己親自算。速度蠻快的。

但是六爻算卦卻有些麻煩。在自己算了一卦後,便決定試試將其程式化,估計應該沒什麼人感興趣,注釋什麼的我也省了。

手機寫的,估計也沒什麼排版。

 

蓍草占卜事先要準備五十根蓍草。演算開始時,先取一根放在外面,表示天地產生之前的“太極”狀態。然後將剩餘的四十九根蓍草隨意分為兩部分,左手所持有的部分表示“天”,右手所持有的部分表示“地”。再從右手任意取出一根放在左手小指和無名指之間,表示“人”。此後繼續以每四根為一組表示“四季”進行分發,先用右手分數左手的蓍草,再用左手分數右手的蓍草。直至分到出現以下規律:左餘一,右餘三,左餘二,右餘二,左餘三,右餘一,左餘四,右餘四。然後,將左手所剩蓍草放在右手中指和無名指之間,右手所剩蓍草放在左手食指與中指之間,這就完成了“第一變”。“第二變”如法炮製,去除指縫間的餘數,將剩餘的蓍草按“第一變”的順序和方法繼續演算。然後按間樣的順序和辦法進行第三次演算。“三變”之後,兩手所持的蓍草總數應為三十六、三十二、二十是二十四。然後除以四,得到一爻。

    蓍草占卜共有六爻,必須經過十八次演算,才能得到一個卦象,因此又被稱為“六爻”。推演過程全部結束後,根據推論規則對卦象進行解釋,占卜才算真正完成。

 

 1 #include <iostream> 2 #include <stdlib.h> 3 #include <time.h> 4 using namespace std; 5  6  7 int main() { 8  9   srand(unsigned (time(0)));10   int su;11   int a, b, a1, b1, c;12   int yao[6];//儲存六爻13   for (int i1 = 0; i1 < 6; i1++) {14     su = 49;15     for (int i2 = 0; i2 < 3; i2++) {16 17       a = 4 + rand() % su - 5;18       b = su - 1 - a;19       a1 = a % 4;20       b1 = b % 4;21 22       if (a1 == 0) {23         a1 = 4;24       }25       if (b1 == 0) {26         b1 = 4;27       }28 29       c = 1 + a1 + b1;30 31       su = su - c;32 33       /* cout << "a: " << a << endl; cout << "b: " << b << endl;34 35          cout << "a1: " << a1 << endl; cout << "b1: " << b1 << endl;36 37          //cout << "c: " << c << endl;38 39          cout << "數: " << su << endl;40 41          cout << endl; */42 43 44     }45 46     yao[i1] = su / 4;47 48   }49   cout << "本卦:\n";50   for (int i = 0; i < 6; i++) {51 52     // cout << yao[i] << "\n";53 54     switch (yao[i]) {55 56     case 6:57       cout << "--\n";58       break;59     case 7:60       cout << "─\n";61       break;62     case 8:63       cout << "--x\n";64       break;65     case 9:66       cout << "─○\n";67       break;68 69     }70   }71   cout << "變卦:\n";72   for (int i = 0; i < 6; i++) {73 74     switch (yao[i]) {75 76     case 6:77       cout << "--\n";78       break;79     case 7:80       cout << "─\n";81       break;82     case 8:83       cout << "─\n";84       break;85     case 9:86       cout << "--\n";87       break;88 89     }90   }91 92 93 94 }

 

[c++][代碼]六爻算卦的程式化

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.