文章

彩色生命遊戲:戈斯珀滑翔機鎗 Gosper's Glider Gun, Game of Life

圖片
  這是一個模擬細胞活動的電腦編程遊戲。我加上不同顏色使其更易明白:     黑色、空格     紅色、新生兒出現在有3個鄰居的空格     綠色、有2或3個鄰居的細胞     藍色、細胞剛離世,因為太孤獨或太擁擠(少於2個或多於3個鄰居)。 不被計算為鄰居 。 (你可能已經留意到,選色附合 RGB 在彩虹的順序)😁 The game of go is a well-known computer science game which uses simple rules to produce complex cell-like behaviors.  What makes it easier to understand?  Coloring the cells!     BLACK - empty spots     RED - new borns were at empty spots with exactly 3 neighbours.     GREEN - existing cells with 2 or 3 neighbours live on     BLUE - cells just dead due to loneliness or starved from crowdiness, less than 2 or more than 3 neighbors.  Think of BLUEs non-exist . (you might have already noticed that the colours, RGB, are selected for the life phases to match the same sequences as on a rainbow 🌈 ) the 'gun' Gosper's Glider Gun is an interesting pattern, each cycle has 60 frames, while the glider ...

你以為知道「潤年」是什麼?未必⋯⋯

了解潤年便可以算出一千年前一月一日是星期幾,即是說可以製作萬年曆。請看..... 潤年,即 2月有29日。 很多人以為 潤年 是每四年一潤;唔,籠統地說可以,不盡然。 潤年,是每四年潤一日,但每一百年不潤,然後每四百年又潤。 例如: 1600 是潤年。 1700,1800,1900 都不是。 2000 是潤年。 這是為什麼? 因為每年的日數準確地是 365.24... 日。所以每四年有 四個 365 另 0.97.. 日。 ***** 明白以上之後,便可以計算出,前後幾十年或幾百年的幾月幾日是星期幾。 一年365 日是 52 星期 加一日。 例如今日(七月)是星期三,去年今日便是減一日,星期二;明年今日則加一日,星期四。 這是以這幾年都不是潤年來說。 如果今年是潤年,去年要減多一日,星期一。 如果明年是潤年,明年要加多一日,星期五。 ***** 以這方法,小孩時我算過耶穌出生那天公元零年是星期幾。 然後大個後,才發現耶穌不是公元零年生 --- 根本沒有公元零年。 耶穌是公元第一年生;卻不是聖誕節12月25日生。 公元第一年的前一年,是公元前一年。 即: -2, -1, 1, 2, ..., 沒有 0 再後來,前幾年知道,1752年的 9月被刪除了11日。 有興趣的話,可以上網 google  "September 1752"。 再後來,發現原來1582年10月5至14日全世界沒有人出生,因為這十日被刪去了。 所以說,我小時候算的聖穌生日是錯的。殘念。

人工智能有何用?

AI 在哪方面的應用 可享優勢?  例如:從X 光片 偵測 早期 腫瘤; 從外太空的電磁波搜尋特定信號 Detection among Massive Data      從海量資料中 偵測 特定組合 這當中,有四個可能性: 真陽性 True Positive - desired result 真陰性 True Negative 假陽性 False Positive 假陰性 False Negative 如果過份倚賴人工智能,對AI的運算結果不作覆核確認,那 假陽性 及 假陰性 便會被忽略。 有人提出過,若AI 準確率能達到  某百份比 之後,作為一種科技應用的代價,錯誤的部份可被犠牲⋯⋯ 但,如果是人命呢? 無人回應,因為大家心知肚明。 AI 模型不容易被修改,因為牽涉太多數據,要重建模型需時,成本效益低,在商言商,無人會做。 聽過有一真實個案,研究人員調查不準確的結果,已經找到問題所在,但結論是 "不予修改"!

逆向思維 reverse operation

We have input x and output y with the relationship: 假設有一未知函數 F (i.e. 電子線路),輸入X 後會得到 輸出Y:      x --> [ f(x) ] --> y Given y, if we want to find x, we need   f^-1(y)  so that 如果有逆函數 F^-1 ,就可以從目標輸出 Y 找到需要的 輸入 X:      y --> [ f^-1(y) ] --> x Another approach:      for each xi among all possible x's, check          if  f(xi)  equals to y, then answer is xi, and return;          otherwise, next xi. ADC uses the same approach (internally has a DAC) 另一途徑,是輪流測試不同的輸入,直至得到目標輸出。例如有些類比信號的量化(ADC)便是用這方法。          逐一測試  由 0 至 255 (8-bit) 輸入到內置DAC ,得出的類比電壓 與 目標電壓 作比較。當比較差是零或少於所需誤差值,該測試輸入值便是答案。

魔方研究

圖片
  射鵰英雄傳 瑛姑 在黑沼 隱居十餘年 計算魔方3x3 (洛書)。 3x3 有 (9!)=362,880個組合,其中有4(旋轉)x4(鏡射)=16 個解答。 當中要符合'米'字計算結果相同,中心必須為5。 成 8! 組合。 然後有四對數必須在'米'字相對:1-9, 2-8, 3-7, etc. (續 ⋯⋯ ) 講返瑛姑,362880 ÷ 365日 ÷ 10小時 ÷ 4個骨 ==> 不遇見黃蓉的話,最壞情況可望在24年10個月算出答案。 今時今日,一台舊電腦,walk through.. 2 秒 $ time node square.js [ 2, 7, 6, 9, 5, 1, 4, 3, 8 ] real 0m1.742s user 0m2.097s sys 0m0.173s (edited 2021) 興起一個想法:3x3x3 cube 有沒有solution? 遍歷是不太可能的了,以代入的方式減少計算量至可能範圍,可惜結果為不存在解答。 (edited 2024) 維基有人造出3x3x3 立方,但我不喜歡這個解答,必須穿過立方中心、或者8條邊上的和才等於42, 但六個面上的對角線和則各有不同。 https://en.wikipedia.org/wiki/Magic_cube 事實上,正如之前提到,我已確認不存在能符合任直線三點和的解。