演算法高階(2) 多年以前的電腦算命是怎麼回事?

2021-09-26 16:11:44 字數 1592 閱讀 6834

「電腦算命」看起來挺玄乎,只要你報出自己出生的年、月、日和性別,一按按鍵,螢幕上就會出現所謂性格、命運的句子,據說這就是你的「命」。

認為電腦算命不准的人,認為電腦算命充其量不過是電腦遊戲而已,我們用數學上的抽屜原理很容易說明它的荒謬,抽屜原理又稱鴿籠原理或狄利克雷原理,他是數學中證明存在性的一種特殊的方法,舉個最簡單的例子,把3個蘋果任意的方式放入兩個抽屜中,那麼一定有乙個抽屜裡放了兩個或兩個以上的蘋果,這是因為如果每乙個抽屜裡最多放乙個蘋果,那麼兩個抽屜裡最多隻放有兩個蘋果,運用同樣的推理可以得到:

原理1 把多於n個的物體放到n個抽屜裡,則至少有乙個抽屜裡有2個或2個以上的物體。

原理2 把多於mn個的物體放到n個抽屜裡,則至少有乙個抽屜裡有m+1個或多於m+1個的物體。如果以70年計算,按出生的年、月、日、性別的不同組合數應為70×365×2=51100,我們把它作為「抽屜」數,我國現有人口11億,我們把它作為「物體」數。由於1.1×=21526×51100+21400,根據原理2,存在21526個以上的人,儘管他們的出身,經歷,天資,機遇各不相同,但他們卻有完全相同的「命」,這真是荒謬絕倫!

電腦的特點是運算很快,儲存容量大,處理那些重複性的繁瑣的任務得心應手。 程式能夠處理複雜的任務,但是它的「智商」遠遠不如人類的大腦,人工智慧也遠不如人的大腦能力。程式要幹乙個活兒,你必須告訴它每一步如何做,如果是計算性的問題,你必須告訴它每一步的公式。換句話說,你事先必須設計好如何如何做,電腦只能照章辦事。

那麼電腦程式是如何推算人的八字的呢?

開發程式的人必須先定義好各種規則,每種規則對應一條或者幾條斷語。電腦按照公式或者從資料庫中生成乙個人的八字之後,它就開始分析八字,把八字中的天干地支逐條的與規則庫中的規則進行匹配,一旦匹配到一條規則就列印這條規則對應的斷語。

電腦推算八字,程式看到乙個規則就來一條斷語,不會像人一樣綜合分析,更別說象人一樣根據經驗來聯想,或者靈活機動的全盤分析,或者突然來乙個靈感。它只能老老實實按照設計程式的人實現設計好的規則來匹配。寫這個算命程式的人的八字水平首先值得懷疑。實際上既精通電腦又精通八字的人並不多。

需要說明的是,如果開發設計程式的人既精通八字又精通程式設計,並且很重要的,還精通形式語言、人工智慧和機器學習等理論的話,那麼他開發出來的程式可能就比一般的程式聰明多了。但是即便是這樣的程式得出來的結論還是需要人工修正的,正確性還是有限。

所以和真正的大師相比,電腦算命準確率還是要差一些;但是和充斥以大街小巷的江湖術士相比,電腦算命準確率又更高一些。

這就是一道小學奧數題目,但蘊含的數學原理在生活中卻隨處可見。抽屜原理跟兩桃殺三士正好相反,抽屜相當於三士分四桃,他們肯定打不起來,沒準還會互相謙讓一下哦,是一件非常和諧友好的事情。

總的來說,儘管有四柱**、八卦等偽科學理論做支撐,運用電腦程式算命是「頂著科學的帽子作不科學的事」。電腦僅是工具而已,電腦程式的背後是程式設計師的演算法指令,不可因為使用工具是帶有科技光環的電腦,就認為電腦算命具有較高的可信性。

說起來,能在90年代開發出電腦算命這套程式的,一定是個大神,不光擼得一手好**,而且對周易、八卦等命學一定也是非常精通。高人,佩服佩服!

時至今日,電腦算命不但沒有消失,還發揚光大了,現在有更好聽的名詞:網際網路+風水。

Python演算法高階 2 刪除鍊錶中的節點

請編寫乙個函式,使其可以刪除某個鍊錶中給定的 非末尾 節點,你將只被給定要求被刪除的節點。現有乙個鍊錶 head 4,5,1,9 它可以表示為 示例 1 輸入 head 4,5,1,9 node 5 輸出 4,1,9 解釋 給定你鍊錶中值為 5 的第二個節點,那麼在呼叫了你的函式之後,該鍊錶應變為 ...

Paxos演算法P2c是如何滿足P2b的?

從paxos到zookeeper分布式一致性原理與實踐 書中,滿足p2b的條件,即滿足p2a 滿足p2a的條件,即滿足p2,這樣的過程,比較好理解,本文就不再贅述了,主要來分析一下,滿足p2c為什麼就可以滿足p2b?首先,我們要明確幾個前提 我們看一下p2c的條件 存在乙個由超過半數的accepto...

從1開始的演算法學習 2,什麼是窮舉法?

窮舉法也叫列舉演算法,最簡單,最沒有效率。具體的實現方式是,羅列所有可能的情況,找出目標答案。優點是準確性最強,簡單,缺點是吃時間。但話雖如此,只要寄予的運算時間足夠長,就可以以最簡單的方式得到解。因而,窮舉法也是競賽中最常用的方法 火柴棒等式 火柴棒共n根,可以拼出多少個形如a b c的等式?如果...