文章

一世人流流長,計一計有幾長

俗語有句話:「一世人流流長」 咁究竟有幾長? 作為一個稱職嘅編程員,當然首先要考慮用幾多個位元組的integer才不會溢位。 原來,只需用15 bits,當成32,767  日數 ,除以 365,已經足夠函括 89年零260日(扣除潤年),係大部分人的歲數(超過的話當bonus啦)。 原來,人的一生唔係想像中長,int 16 都用唔哂。真要善用時間,珍惜光陰呢~

彩色生命遊戲:戈斯珀滑翔機鎗 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 ,得出的類比電壓 與 目標電壓 作比較。當比較差是零或少於所需誤差值,該測試輸入值便是答案。