昨日(2018-03-31)本宅參加了由輔大宗教系所主辦的 第七屆中華傳統術數文化學術研討會 (
https://goo.gl/ncUsZf ) ,該研討會歷年來是一年辦一次,邀請各界五術高手上台發表論文,台上台下互相交流,好不熱鬧。
會中最後一場演講,由潘柏年老師(本站的 Wally 網友)發表的《常見起卦方法機率試算》,文中有一段提及「命理網上的案例而言,即使電腦起卦的案例,依然也有可靠的準確度」

本站的易卦排盤 (
https://destiny.to/app/iching/Divine ) 多年前就提供了「手動起卦」以及「電腦起卦」的功能。「手動起卦」主要是針對對易經卜卦已經入門、懂得排卦的使用者所用,不會去探討硬幣的正反面與陰陽的關係(例如:三人頭是老陽還是老陰? 兩頭一背是少陽還是少陰),這由網友自己的背景知識去判斷、設定。而對於不懂易經易卦的網友而言,本站鼓勵他們點擊「電腦起卦」的按鈕以取得卦象。
Wally 在本站多年,服務、觀察過的案例上千位,他觀察到,即使網友採用電腦起卦,卦象很大的機率仍是準確的。「所謂電腦取亂數,乃是一整組雜亂無規律的數字,取亂數時自這串數字的某個點隨機帶入」,這段描述,則不夠精確。
「亂數」是一門非常高深且困難的資訊科學,許多博士生更是以亂數產生器 ( random generator ) 作為博士論文。大家一致的目的,就是要讓所產生的亂數「夠亂」。 在各個電腦語言(或平台)的設計上,所採用的亂數產生器也並非完美。

舉例,上圖左邊是 Google Chrome 49之前的版本,內部的亂數產生器所產生的「亂數」圖檔,您要說他亂嘛,其實不夠亂,好像裡面有某些 pattern(條紋)在內,這是因為它採用了 MWC1616 的演算法,該演算法有漏洞,產生的亂數不夠亂,只要是「不夠亂」的亂數,將其攤開來勢必會呈現某種條紋。 這個演算法在 Chrome 49 之後被 xorshift128+ 演算法給取代,展現出來的圖就為右邊這張,就「夠亂」了。

而程式語言更重要了,程式語言所採用的亂數產生器會影響到許多應用,上圖是 PHP 的 rand() function 在 Windows 上所採用的演算法展開的圖形。也可以看到有明顯的紋路,這代表它也不夠「亂」。
數十年來,許多教授、博士都是研究以如何用電腦演算法,模擬出「夠亂」的亂數作為研究主題。但,這些終究是模擬出來的,再怎麼模擬,在夠大的尺度下,仍有可能出現隱晦的條紋,只是我們目前仍未發現。
於是有科學家想:既然用演算法模擬出來的亂數,總是會有某些缺陷,那我們用「我們非常難以模擬的、實際的東西」來產生亂數如何? 於是有科學家 ( Landon Noll 以及其在 SGI 的同事) 於 1996 年發明了 Lavarand 這個玩意兒。
Lava Lamp 熔岩燈 ( 又稱為蠟燈、水母燈。名字源於其內不定形狀的蠟滴的緩慢流動,讓人聯想到熔岩的流動。熔岩燈有多種形狀和顏色。 (from wiki) ), Lavarand 這公司,認為熔岩燈裡面液體的流動,充滿了極高的不確定性,是真實亂數的展現,可以將其作為真實的亂數產生器。著名的 CDN 廠商 CloudFlare 甚至引入此產品,建構出一整面牆,作為系統內的亂數產生器,如下圖:

本站後台的應用程式,排盤程式,全是用 Java/Kotlin 所開發。 JDK 內建的亂數演算法稱為
線性同餘方法 (Linear Congruential Generator , LCG ) ,當然不是真實亂數,而是一個比較簡單且容易實作的演算法,並不適合用於極端嚴謹的場合,因此多年來本站一直尋找真實亂數的解決方案。

上圖為 LCG 演算法在三維模式下,會出現的 pattern 問題。
很幸運地,本站找到了另一種解決方案,利用「大氣擾動 ( atmospheric noise ) 」 來截取亂數。大氣的擾動是人類無法完全精確預知、模擬的數值。今天您觀察火力發電廠的一枚煙塵粒子,您完全無法預測一秒後,該粒子會往哪裡飄、飄幾度、升高幾公分或降低幾公分、瞬時速率是多少...等等。因此,大氣擾動是亂數尤其針對 PM2.5 之值,而特別設計。

因此,空汙越嚴重,本站的亂數就越亂!
根據本站所使用的空汙亂數產生器,所產生的亂數圖如下:

在任何已知的尺度下,都不會出現任何可觀察出來的條紋 ( pattern ) , 可謂是真實亂數的展現!
我們無法用愛發電,但是可以善用空汙的效果,取得最精確的卦象,這何嘗不是因禍得福呢?
