有關電腦起卦

taronwong 發表於
Forums

http://www.eee-learning.com/article/4357

後學看了版主所寫有關卜卦用具的文章, 有感如要起個以或然率而言, 要準確的卦, 實在不容易.

例如版主文中所言, 用現代銅板問題. 太極丸對物料及製作的工藝要求也高. 萬一太極丸的物料或製作有問題, 就直接影響到或然率.

而如果卜卦程式本身的演算法沒問題的話, 卜出來的卦應該也沒什麼問題. 未知各位前輩對用卜卦程式有什麼心得或看法?

Wong兄:

您這問題,除了站長或程式撰寫者能回答以外,其餘人士,並無法給出一個客觀的答案。因為要評斷一個占卦程式的優劣,如同要評斷一個骰子的對稱性,如果沒有到達一定的量,少數的幾百占,不管是說好或著說不好,並沒有統計意義。

過去當我還很在乎占驗率的時候,總覺得占卜時道具與儀式,對占驗率有極大幫助,因此對電腦占卜或論命,自然容易鄙視,甚至嗤之以鼻,但現在則不然,我認為不管什麼學問,都應該與時俱進,占卜也不例外。如果撰寫程式者是一位懂易理的人,那沒有一種工具能比電腦更隨機與均衡。因此要請站長告知,進階版的程式,六七八九的機率是採哪一種?只要您認同這樣的分配機率,電腦占卜,是可以使用的。不單是卜卦,在這邊,我也看到有同好用程式解卦,雖然電腦解卦仍不完美,但跟十幾年前相比,實有天壤之別,未來一定大有可為。

占卜時,我們當考究工具的公平性,工具如果不均衡,占驗率一定受影響,不過即使工具是100%公平與均衡,卻不必然保證占驗。工具的均衡是占驗的必要但非充分條件,這是每一個占卜者在占卜前必須放在心上的。

關於KHS大所問易學網卜卦程式,這裡做個說明。

我的程式都是用javascript寫的。

機率則依程式而不同。簡易法的機率就是任何一卦的機率都是1/64。

進階法裡,六爻都有自己的一個變數,每一爻的筮數機率如下:

  • 六:1/8
  • 七:3/8
  • 八:3/8
  • 九:1/8

這應該是與三錢法或是太極丸法的機率是一樣的,但與50策的大衍法是不一樣的。

為了解決這個問題,多年來也做了很多機率的研究,證實大衍法機率大有問題(主要是依春秋筮例的機率來調整)。

但從後台各卦的流量來看,機率是否就與這樣的設定吻合呢?其實差距還挺大的。

不過,這是因為干擾的因素非常多。主要可能的因素來自於可能的搜尋流量引導。因為每卦的解釋都是網路上的公開內容,任何人都可引導流量過去,因此這也實在很難從後台流量來斷定。

先前自製太極丸,曾經試驗了三顆的機率,也都不可能達到真的1:1,大概都會接近45:55至50:50的範圍之內。

簡單說,程式的機率應該是最為完美的,因為那是純數的推算。而只要有媒介介質的,那麼機率就不會完美。但這應該不致於影響到總體的占斷。影響較大的會像是分二之前到底是48策還是49策的這種差別。這種差別才會真正造成機率的重大扭曲。

我看見站內卜卦程式是用下面的方法以 pseudo-random 取卦:

焦氏: Math.round(Math.random()*10000000000000000)%64+1
初級: Math.round(Math.random()*10000000000000000)%64+1
進階: Math.round(Math.random()*100000)%8

普遍來說, 電腦 pseudo-random 的質量 (可說是 "隨機度/感"), 是高位置 (high order bits) 的比較好.  (更正2: 2016 後 web browser 的亂數產生器基本上已經修正了.)  而上述的方法, 先乘大後取餘數, 是採取了中至低的位置 (尤其 "焦氏" 和 "初級").  此外, Math.round() 是四捨五入, 也極輕微地使機會率偏了一丁點.  我建議修改如下:

焦氏: Math.floor(Math.random()*64)+1
初級: Math.floor(Math.random()*64)+1
進階: Math.floor(Math.random()*8)

(容我大膽估計, 站長先把數字乘大, 應該是想減輕由 Math.round() 所引致的機率偏差.)

(更正 1: Math.round() 所引致的機率偏差被緊接的餘數計算修正了.)

 

若是用你的程式,先x64或x8再取整數,這樣的機率是否會更精確我是相當存疑的(純粹是因為還沒攪懂中間的算術),還望詳解。

另外,其精確度的提高,有多高這也是我想要知道的地方。甚至有沒有可能機率分配反而變差了(我自己的大致推理感覺好像是變差了,雖然沒有到不能接受的地步)

Javascript 裡面的數值, 是用 IEEE-754 的 binary64 格式儲存, 即是 Java 的 double.  它用了 1 bit 放正負號, 11 bits 放 "指數", 52 bits 去放 "有效數", 折算成十進數就是 15 至16 個有效數字 (理論值是 15.95).  大家可以想像, "987,654.321" 這個數字是儲成 "+1 * 9.87654321 * 10^6", 正負號是 "+1", 指數是 "6", 有效數是 "9.87654321".  不過電腦不是用十進數, 全是用二進數的.

Math.random(), 基本上是由(僞)亂數產生器, 拿出一定數量的 "(僞)亂" bits (0 或 1), "製成" 一個等於或大於 0 又小於 1 的小數.  數學上我們寫成 [0, 1)

Math.random() 是 [0, 1)

那麼 10000000000000000 * Math.random() 是 [0.0, 10000000000000000.0), 亦即是 [0.0, 0.5) + [0.5, 9999999999999999.5) + [9999999999999999.5, 10000000000000000.0)

再來一個 Math.round() 的四捨五入, 便得出 [0, 10000000000000000], 共有 10000000000000001 個數值, 當中 0 和 10000000000000000 的出現率比其他數字少一半.  可幸接著就 "% 64", 所以 0 至 63 的出現率理論上是相同的.

問題是 10000000000000000 這個數字太大了.

10,000,000,000,000,000 的二進制有 54 個位, 但 Math.random() 只有 53 bits 的 "隨機度" (因為限制了 0 至 1), 所以 10000000000000000 乘 Math.random() 所得的積數, 最低位置的 bits 其實是由前面的 bits 衍生出來的.  (如果使用特定的質數, 是可以把 Math.random() "隨機度" "適當地" "分散" 到積數的高低不同位置, 但背後的數學太艱深, 我不會.)

此外, Javascript 裡面的數值只有 15~16 個有效數字, 而可能的出現的積數, 十中有九, 整數部份都需要 16 個有效數字.  所以相乘數值後的個位甚至十位都有機會不準確, 而且有一些數值是直接丟失了.

最後一步, 用 "% 64" 計出餘數, 只取用了積數最後的 6 個 bits.

所以無論是 0 ~ 63 的出現率, 又或者是 "隨機度", 都有問題.

那 "進階" 的 "* 100000" 又如何呢?  現在很晚了, 請恕我明天才可以繼續.

簡單來說, "Math.round(Math.random()*100000)%8" 沒有問題, 但可以簡化.

隨機度方面, 是先取最高約 17 bits 的亂數 (100,000 ~= 2^16.61),  再取這 17 bits 的最低 3 bits (8 = 2^3).  而因為 2016 年後差不多所有瀏覽器都改用了比較高質素的(偽)亂數產生器, 所以這個方法是可行的.

分佈方面, Math.round() 是有問題.  但因為 100000 可以被 8 整除, 所以又修正了, 變成沒有問題.

但為甚麼要寫得那麼複雜呢?

我的建議, 只是引用了 Mozilla (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random) 的例子.

我算是「偽」程式設計師,找不到人幫忙寫,所以只好自己上陣。

為了寫這程式而邊學邊寫硬湊出來的。

現在你若叫我寫,我大概也是得再重新邊Google邊拼湊。

這個機率問題我會再找時間慢慢將它換掉。另有一問題。

焦氏易林的值日卦的程式裡,原本要能夠用程式決定每年二十四節氣的分界點,再去計算出每天的值日卦。

我Google很久雖有找到範例程式,但弄不出來。

後來只好用笨方法,每年去查香港天文台的觀測時間,以該時間為每個月做一個值日卦的計算檔案。

所以得年年上傳這些檔。不知有沒有漂亮的寫法不用年年上傳檔案?

1) 如果用家以 "http://www.eee-learning.com/eeeApp/eee.html" 進入, 程式會把產生的巫數放在網址, 例如 "http://www.eee-learning.com/eeeApp/eee.html?method=sanqian&random=uniform&numbers=898777"

2) 在程式第 14 行可以指定巫法和亂數分佈, 合共有 (1+1+1+2*3) = 9 種方法.   我記得站裡有文章說進階版是使用 "大衍揲卦", 不過現在跟 Jack 大意思, 預設為三錢法.

2b) 如果想看到巫數/變爻分佈, 可以在 address 加入 "&runstats=true".

3) "error.jpg" 是例外情況, 正常情況不會觸發, 不需要理會它.

這個易學平台一字一句都是站長的心血結晶 大家有目共睹.  

"(僞)亂數產生器" 只是 "pseudo-random number generator" 的翻譯, 沒有其他意思, 若有冒犯, 請你原諒.

此外, 我發現 2017 和 2018 的資料有 xml 格式. 

http://www.weather.gov.hk/gts/astron2017/24SolarTerms_2017.xml

http://www.weather.gov.hk/gts/astron2018/24SolarTerms_2018.xml

1) 是不是由立春時間 "2016/02/04 17:46:02.659" 開始排 "小過"?

2) "驚蟄 和 "春分" 相䧚不足 30 天, 是不是用 6:6:6:6:6:1 的比例排入 "需, 隨, 晉, 解, 大壯"?

 

節氣 香港時間 相隔
小寒 2016/01/06 06:08:23.310 14.7225209491
大寒 2016/01/20 23:27:06.303 14.7213309375
立春 2016/02/04 17:46:02.659 14.7631522685
雨水 2016/02/19 13:33:43.760 14.8247812616
驚蟄 2016/03/05 11:43:33.000 14.9234865741
春分 2016/03/20 12:30:11.370 15.0323885417
清明 2016/04/04 16:27:31.640 15.1648179398
榖雨 2016/04/19 23:29:26.230 15.2929929398
立夏 2016/05/05 09:41:53.200 15.4253121528
小滿 2016/05/20 22:36:29.720 15.5379226852
芒種 2016/06/05 13:48:31.110 15.6333494213
夏至 2016/06/21 06:34:11.480 15.698383912
小暑 2016/07/07 00:03:21.950 15.7285934028
大暑 2016/07/22 17:30:12.410 15.7269729167
立秋 2016/08/07 09:53:01.756 15.6825155787
處暑 2016/08/23 00:38:28.480 15.6148926389
白露 2016/09/07 12:51:05.809 15.5087653819
秋分 2016/09/22 22:21:07.542 15.3958533912
寒露 2016/10/08 04:33:23.200 15.2585145602
霜降 2016/10/23 07:45:33.500 15.1334525463
立冬 2016/11/07 07:47:42.500 15.0014930556
小雪 2016/11/22 05:22:23.580 14.8990865741
大雪 2016/12/07 00:41:08.443 14.8046859144
冬至 2016/12/21 18:44:10.570 14.7521079514

 

六十卦每卦直六日,共直三百六十日。餘四卦各寄直一日。

立春 雨水 三十日五卦,每卦直六日

小過 蒙 益 漸 泰

驚蟄 春分 春分震卦直一日

需 隨 晉 解 大壯

清明 穀雨

豫 訟 蠱 革 夬

立夏 小滿

旅 師 比 小畜 乾

芒種 夏至 夏至離卦直一日

大有 家人 井 咸 姤

小暑 大暑

鼎 豐 渙 履 遯

立秋 處暑

恒 節 同人 損 否

白露 秋分 秋分兌卦直一日

巽 萃 大畜 賁 觀

寒露 霜降

歸妹 無妄 明夷 困 剝

立冬 小雪

艮 既濟 噬嗑 大過 坤

大雪 冬至 冬至坎卦直一日

未濟 蹇 頤 中孚 復

從大雪後將坎卦入數斷。從立冬後四十五日係王相不斷。

小寒 大寒

屯 謙 睽 升 臨

每兩節氣共三十日,管五卦,逐日終而復始排定。一卦相次管六日。凡卜,看本日得何卦,便於本日卦內尋所卜得卦看凶吉。

按:四正卦分值二分二至各一日。震春分,離夏至,兌秋分,坎冬至。

其餘60卦的值日,應該以節氣交換時間做為開始,直至下一節氣結束,再由五卦均分,值日時間大約是一卦六日。有時會略多,有時會略少。

例如,春分至雨水是小過、蒙、益、漸、泰五卦值日。當以春分開始的時間,至雨水結束時間,這期間的時間均分給小過、蒙、益、漸、泰五卦。

方法一: 把 "驚蟄至春分" 和 "春分至清明" 分開看, 兩段時間分別以 6:6:3 和 1:3:6:6 分拆; 所以需/隨佔 6.01 日, 解/大壯 佔 5.69 日, 晉卦兩段合共 5.85 日.  這應該合乎 Jack 大所說: "其餘以其他五卦順序均分,應該大致是 6:6:3:1:3:6:6。但震卦吃掉一日會讓後面的分布變形".

方法二: 把 "驚蟄至清明" 一體看, 以 6:6:k:1:(6-k):6:6 分拆; 春分開始時間依天文臺數據, 排在晉卦中間, 所以晉卦是前段 3.34 日 (比例是 k), 後段 2.50 日 (比例是 6-k), 共 5.84 日.  好處是保持 需/隨/晉/解/大壯 的日數相同.

方法二是否比較好?

 

        方法一 方法二
節氣 節氣香港時間 值日卦 比重 值日卦日數 值日卦香港時間 值日卦日數 值日卦香港時間
驚蟄 2016/03/05 11:43:33.000 6 6.0130 2016/03/05 11:43:33.000 5.8446 2016/03/05 11:43:33.000
    6 6.0130 2016/03/11 12:02:12.348 5.8446 2016/03/11 07:59:48.221
    3 3.0065 2016/03/17 12:20:51.696 3.3431 2016/03/17 04:16:03.441
春分 2016/03/20 12:30:11.370 1 0.9478 2016/03/20 12:30:11.370 0.9741 2016/03/20 12:30:11.370
    3 2.8434 2016/03/21 11:15:01.387 2.5015 2016/03/21 11:52:53.907
    6 5.6868 2016/03/24 07:29:31.438 5.8446 2016/03/23 23:55:01.199
    大壯 6 5.6868 2016/03/29 23:58:31.539 5.8446 2016/03/29 20:11:16.419
清明 2016/04/04 16:27:31.640 6        

方法3, 是整年看, 將 360 度平分 364 份. 震離兌坎各得 1 份, 其餘 60 卦各得 6 份.

這樣 60 卦的角闊會相等, 不會因四正卦而不同.  這也大約合乎 "每兩節氣共三十日, 管五卦" 這個設定, 有四正卦的四對節氣多管了約 0.66 度, 其餘八對節氣就少管了約 0.33 度.

 

    方法 2 方法 3  
節氣 節氣角 值日卦 值日卦的黃經 佔角 值日的黃經 佔角 黃經
春分 0 0.0000 0.9677 0.0000 0.9890 0.0000
    0.9677 2.4194 0.9890 2.4725 0.0213
    3.3871 5.8065 3.4615 5.9341 0.0744
    大壯 9.1935 5.8065 9.3956 5.9341 0.2021
清明 15 15.0000 6.0000 15.3297 5.9341 0.3297
    21.0000 6.0000 21.2637 5.9341 0.2637
    27.0000 6.0000 27.1978 5.9341 0.1978
榖雨 30 33.0000 6.0000 33.1319 5.9341 0.1319
    39.0000 6.0000 39.0659 5.9341 0.0659
立夏 45 45.0000 6.0000 45.0000 5.9341 0.0000
    51.0000 6.0000 50.9341 5.9341 -0.0659
    57.0000 6.0000 56.8681 5.9341 -0.1319
小滿 60 小畜 63.0000 6.0000 62.8022 5.9341 -0.1978
    69.0000 6.0000 68.7363 5.9341 -0.2637
芒種 75 大有 75.0000 5.8065 74.6703 5.9341 -0.3297
    家人 80.8065 5.8065 80.6044 5.9341 -0.2021
    86.6129 3.3871 86.5385 3.4615 -0.0744
夏至 90 90.0000 0.9677 90.0000 0.9890 0.0000
    90.9677 2.4194 90.9890 2.4725 0.0213
    93.3871 5.8065 93.4615 5.9341 0.0744
    99.1935 5.8065 99.3956 5.9341 0.2021
小暑 105 105.0000 6.0000 105.3297 5.9341 0.3297
    111.0000 6.0000 111.2637 5.9341 0.2637
    117.0000 6.0000 117.1978 5.9341 0.1978
大暑 120 123.0000 6.0000 123.1319 5.9341 0.1319
    129.0000 6.0000 129.0659 5.9341 0.0659
立秋 135 135.0000 6.0000 135.0000 5.9341 0.0000
    141.0000 6.0000 140.9341 5.9341 -0.0659
    同人 147.0000 6.0000 146.8681 5.9341 -0.1319
處暑 150 153.0000 6.0000 152.8022 5.9341 -0.1978
    159.0000 6.0000 158.7363 5.9341 -0.2637
白露 165 165.0000 5.8065 164.6703 5.9341 -0.3297
    170.8065 5.8065 170.6044 5.9341 -0.2021
    大畜 176.6129 3.3871 176.5385 3.4615 -0.0744
秋分 180 180.0000 0.9677 180.0000 0.9890 0.0000
    大畜 180.9677 2.4194 180.9890 2.4725 0.0213
    183.3871 5.8065 183.4615 5.9341 0.0744
    189.1935 5.8065 189.3956 5.9341 0.2021
寒露 195 歸妹 195.0000 6.0000 195.3297 5.9341 0.3297
    無妄 201.0000 6.0000 201.2637 5.9341 0.2637
    明夷 207.0000 6.0000 207.1978 5.9341 0.1978
霜降 210 213.0000 6.0000 213.1319 5.9341 0.1319
    219.0000 6.0000 219.0659 5.9341 0.0659
立冬 225 225.0000 6.0000 225.0000 5.9341 0.0000
    既濟 231.0000 6.0000 230.9341 5.9341 -0.0659
    噬嗑 237.0000 6.0000 236.8681 5.9341 -0.1319
小雪 240 大過 243.0000 6.0000 242.8022 5.9341 -0.1978
    249.0000 6.0000 248.7363 5.9341 -0.2637
大雪 255 未濟 255.0000 5.8065 254.6703 5.9341 -0.3297
    260.8065 5.8065 260.6044 5.9341 -0.2021
    266.6129 3.3871 266.5385 3.4615 -0.0744
冬至 270 270.0000 0.9677 270.0000 0.9890 0.0000
    270.9677 2.4194 270.9890 2.4725 0.0213
    中孚 273.3871 5.8065 273.4615 5.9341 0.0744
    279.1935 5.8065 279.3956 5.9341 0.2021
小寒 285 285.0000 6.0000 285.3297 5.9341 0.3297
    291.0000 6.0000 291.2637 5.9341 0.2637
    297.0000 6.0000 297.1978 5.9341 0.1978
大寒 300 303.0000 6.0000 303.1319 5.9341 0.1319
    309.0000 6.0000 309.0659 5.9341 0.0659
立春 315 小過 315.0000 6.0000 315.0000 5.9341 0.0000
    321.0000 6.0000 320.9341 5.9341 -0.0659
    327.0000 6.0000 326.8681 5.9341 -0.1319
雨水 330 333.0000 6.0000 332.8022 5.9341 -0.1978
    339.0000 6.0000 338.7363 5.9341 -0.2637
驚蟄 345 345.0000 5.8065 344.6703 5.9341 -0.3297
    350.8065 5.8065 350.6044 5.9341 -0.2021
    356.6129 3.3871 356.5385 3.4615 -0.0744

 

對於天文曆法不是很了解。

最準的其實還是依天文台的預測。用這種簡單的數學公式之後與實際的狀況差多遠,這是要考慮的。

因為地球並不是一個正球形。

現在用 wiki 上的公式, 並不太差.  wiki 上說直至 2050 年只有 0.01 度以內的誤差, 即大約 15 分鐘.

相同時區中, 不同經度的地方裡, 節氣交替時間本來就不同;  網站程式為了方便用家, 只使用電腦時間,這已經是一個約數.

而香港天文臺節氣表所標的是香港時間, 如果轉換成真太陽時間, 比較 2017 和 2018 的節氣時間, wiki 公式只快了兩三分鐘.  好像還不錯呢.

有三個檔案在 https://drive.google.com/open?id=0BwwlupmDRV3QeTREZjRRc0NhRUU

1) 進階版占卜

除了要用 "eee-common.js" 和 "eee-advanced.js" 取代原本的 "eeemin.js", 原本的 eee.html 基本上只需要改呼叫方法 (可參考 eee-advanced.js 和 eee_new.html).   新程式會在 URL 加上 method, random 和 numbers 三個參數, 讓人可以把占卜結果放上討論區.

占法 (method) 預設是 sanqian (三錢法), 另外有 大衍/49蓍 (dayan49), 大衍/50蓍 (dayan50), 簡易/無變爻 (simple) 和 必一變爻 (gaodao).

2) 焦氏易林

新的 "eee-common.js" 和 "eee-yilin.js" 取代原本的 "duty.js".  另外 1.html ~ 64.html 完全由新的 "lot_result_new.html" 取代, 但 1.js ~ 64.js 就要保留 (其實是我懶得動它們).  新程式會在 URL 加上 duty 和 gua 兩個參數, 讓人可以把占卜結果放上討論區.

現在用了 wiki 裡的近似式計算當日的黃經度數, 從而得出節氣和值日卦, 應該可用至 2050 年不需修改.  不過在春分, 夏至, 秋分, 冬至四大節氣前後, 值日卦的編排方法可能和站長不同, 請站長看看是否妥當.

https://drive.google.com/drive/folders/0BwwlupmDRV3QSEhKY0xqanN1d00

  1. 亂數產生方法移到了 eee-random.js, 也改用了更安全 (更"亂") 的產生器.
  2. eee.html 裡 "必一變爻" 的方法, 名字改為 "yibian"
  3. (刪除)

影響大衍揲卦機率的因素有兩個: 其一是開始蓍數, 是 48 還是 49?  這個大家都應該很熟悉;  其二是 "分二" 時所採納的機率分佈, 這個站長大人在三年前亦一同指出 (http://www.eee-learning.com/article/3368), 只是大家比較少討論.  事實上, 如果揲卦者是用平均隨機的方法去 "分二", 就算是由48蓍開始, 巫數 6/7/8/9 的機率會是 1617:5448:6030:2200, 和三錢法不同.

當時我也和站長討論過, "分二"的機率應該用平均分佈, 還是二項分佈.  站長的結論是應該根據字面解釋, 採用平均分佈.

所以我剛剛把程式改回去了. Cool

前陣子曾經有三度去弄哪程式。

一變爻的頁面一直沒弄出來。

太久沒稿Javascript了,程式碼一時之間看不懂。

可以的話Henry大也幫忙把那頁面做出來。近來事情太忙,沒法挪出很多時間把這事一次做完。

拖了這麼久,實在不好意思。

目前以新程式碼上線的只有焦氏易林。

https://drive.google.com/drive/folders/0BwwlupmDRV3QS2l2NVEtbmhTaDQ?usp=sharing

  1. eee_qinghua.html?method=sheshi  <= 清華簡/揲蓍法
  2. eee_qinghua.html?method=sanwan  <= 清華簡/太極丸
  3. eee_new.html (進階版) 和 eee_qinghua.html (清華簡) 跑 statistics 的結果會在頁面顯示.  例如 eee_qinghua.html?method=sheshi&random=uniform&runstats=100000

站長:

弟想建議再增加一隻一爻變的程式進入網站之中,

如果真有心習易者,一爻變可說是中階的版本,除了解卦的方法有共通性外,學者可體會易經中的易理與文句,這方是學易最有價值的部分。

焦氏易林,弟曾經研究數年,本想是否可藉此釐清多爻變的占解法,多年下來,除了歸納出論卦以之卦為主外,其餘一無所知,研究尚秉和的註解亦然,他可以把卦象說得無懈可擊,但卻忽視最基本的論卦方向與易例,這有可能是弟沒有人指導,自己瞎耗所致。萬般沮喪下,最終只能自我解嘲,焦氏易林偏向籤詩系統,毫無邏輯可言,與易經不同,雖然用之占卜亦有所中,然卻遠不及易經有益,邏輯也不如納甲,故與其花時間研究,不如拿那些時間研究易經或納甲。

以上為個人偏見,網站上如有能通曉焦氏易林者,尚望能指導一二。

如題。先前倒沒想過。

記得學生時代習易,我們常用的就是一枚五元加五枚一元銅板。當初的考慮也是為了練習爻象。

這個建議真的很好。

至於焦氏易林,個人認為尚秉和的方向是錯的。他把易林當做是「逸象」之寶庫,以象來解是不通的。

觀《漢書》所載:「以候司先知姦邪,盜賊不得發。」「其說長於災變,分六十四卦,更直日用事,以風雨寒溫為候,各有占驗,房用之尤精。」占侯是焦贛所長,《易林》背後的一些邏輯原則聽說是寫在未傳世的《易林變占》裡,但在此書重新面世前無從驗證。倒是占侯的素材,在易林中所用甚多。

個人認為,在易林背後邏輯被找到之前,關於占侯還有典故的研究是一個可行的方向,不盡然可以解開什麼謎團,但是這當中或有可與周易相驗證者。

高島吞象好像分三次取下卦, 上卦 和 動爻.  三次都是用 49 枝竹籤開始, 隨意分兩份, 只算其中一份. 取下卦和上卦是拿 8 的餘數, 取動爻就拿 6 的餘數.

那是不是以卦辭為背景, 再用爻辭去解?

高島吞象的略筮法其實用的是梅花易的先天數起卦法。

設計程式只要把機率原理控制好即可。不需仿效梅花易。

我認為只要設定成兩個變數:1. 取本卦的機率為1/64,然後對應到1-64卦。2. 取變爻。機率控制在1/6,初爻,2爻,3爻至上爻的機率皆為1/6。

最後呈現的有兩個資訊:1. 卦辭(含十翼解釋)。2. 爻辭(含十翼解釋)。

最後並提供詳讀周易今解的連結。到時後周易今解裡,我會再加anchor,讓每個卜卦結果都能夠連到每一個爻辭的解釋。

var v_rnd = Math.random() * 64;
var v_gua = Math.floor(v_rnd) + 1; /* 1 to 64 */
var v_chg = Math.floor((v_rnd + 1 - v_gua) * 6) + 1; /* 1 to 6 */

又或者

var v_gua = Math.floor(Math.random() * 64) + 1; /* 1 to 64 */
var v_chg = Math.floor(Math.random() * 6) + 1; /* 1 to 6 */

又又或者

var v_rnd = Math.random() * 64 * 6;  /* 0 to 383 */
var v_gua = Math.floor(v_rnd / 6) + 1; /* 1 to 64 */
var v_chg = (Math.floor(v_rnd % 6)) + 1; /* 1 to 6; wrong to use  "Math.floor(v_rnd / 64) + 1" */

站長想不想小改一下占卦網頁, 方便用家張貼連結?

例如 "http://www.eee-learning.com/eeeApp/eee.html?gua=666999" 就是否之泰.

如果覺得可行, 我可以嘗試幫助.