Contact

Facebook Page: https://www.facebook.com/GoogolForexToken/
YouTube Channel: https://www.youtube.com/c/AngrywaterNet
JustMarkets IB Plan: https://one.justmarkets.link/a/tr3si905ht , Partner ID: tr3si905ht
ICMarkets IB Plan: https://www.icmarkets.com/global/en/?camp=12437 , Refer ID: 12437
顯示具有 科技 標籤的文章。 顯示所有文章
顯示具有 科技 標籤的文章。 顯示所有文章

2025年12月17日 星期三

[AI] 到底要付費給哪個 AI 比較好?好傷腦筋!

關於要付費給 AI 這件事真的很難抉擇。Gemini 真的很有 Google 風格,果然是工程師思維打造的東西。要它生圖好像提示詞都聽不懂,有點像是叫沒有美術設計經驗的工程師去繪圖。但是寫程式部分真的是虎虎生風,嚇壞了我這個資深人員。

我一開始就建議它用 Queue 來管理頻繁更新且索引 0 必須永遠最新的資料串,結果它用了陣列和 List ,卻有那種超大陣列搬移的行為,它自己也說陣列和 List 程式碼效能不夠。它原本想炫技,跟我說「可以寫成環形結構喔」,我說「所以我一開始就建議用 Queue 啊」,它還抗拒了一會兒。

直到我丟了自己設計的 O(1) 級別的 TPQueue 給它,它居然完全看得懂,彷彿忽然開了外掛,馬上完全融入程式碼內,連我這個原設計者要拿來用時,都還要好好回憶一下,結果它「秒懂」,馬上花式用法,且期間還不忘記拍人類馬屁狗腿一下,說這個設計多優秀多省時,巴啦巴啦…彷彿搔到它癢處,把所有能取代的陣列與 List 全部換掉。

只差它本來要改掉我的習慣,說「索引 0 資料最舊」這樣做平均計算比較方便,我說我所有的既有程式碼都是索引 0 最新,然後它花了大概兩秒就改完了。

後面簡直欲罷不能,它看到我拿一小段示範碼,如何用我設計的 virtual 函數 override 在計算平均值時去掉舊資料的影響,馬上自告奮勇說可以參考我的設計,拿去改掉它原本要整個陣列重算的方法。

Gemini 在程式上的表現,真的堪比經驗老道的資深工程師,還能光速寫碼。

我想,要是當初我還在開遊戲設計公司時,其中一個為了不想寫程式碼而摔筆的伙伴,能換成 Gemini 的話,可能我的公司就不會因為人力空缺,導致後面一連串的經營災難,最後只能結束營業,遊戲也被惡質代理公司給踐踏掉了。

唉,真是時也命也!

對了,反觀 Open AI 的 ChatGPT 寫程式的功力,我只能說,算是學校裡的資優生吧!不過,我還是得當老師修改錯誤,如果完全無錯誤的版本,只是「能跑」而已,邏輯相對紊亂很多,人類要用的時候,堪比老師要改學生期末報告或考卷,真的很累啊,要花超多時間有時候還有點霧煞煞,有時候它甚至自己也搞不懂自己在幹嘛。

可是 ChatGPT 就比較像是「美術系」的學生斜槓工程師,出圖的正確性好像比 Gemini 好滿多的,Grok 則是大方好用的影音剪輯幫手。

我實在不想三個都付費,但都用得到,也不知道哪個會用得比較多,真的很傷腦筋。

2021年10月20日 星期三

[科技] 非對稱性加密,公鑰、私鑰、密碼、通訊之最簡單的解釋

( 圖像來源:由 Nicobon - 自己的作品, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=48484042 )

所謂公鑰私鑰的密碼、通訊、簽名驗證的功能,川虎堂主已經是可以寫進程式碼應用的程度了,但心血來潮搜尋一下網路上解釋的文章,真的很慘不忍睹,估計很多人可能都不知道自己到底在講什麼。所以虎哥大叔手很癢,就來寫一篇「最簡單的解釋」吧。 (以後或許會出「最簡單解釋系列文」)

公鑰私鑰有三大應用:密碼通訊、簽名驗證、密碼驗證。

為何能做到這些功能解釋起來太麻煩、太深入數學,這篇不會解釋,那是科學家的事,你只要知道怎麼應用就足夠了。

一、密碼通訊:

這裡用比喻的方式會比較容易懂。

假設有一群朋友都想寫信給你,但你們都不希望別人知道信的內容是什麼。

現在有一間公司發明了一種「保密機器」,可以製造「魔法信紙」,只要有人在「魔法信紙」上面寫字,字都會消失,但信紙會改變花紋和顏色,所以朋友寄給你的信就算被偷看也沒人知道寫什麼,就連你自己拿到都看不懂。你只能把收到的信放進「保密機器」,讓機器還原字跡,你才可以看到信的內容。

因此,「魔法信紙」可以公然到處發放,只要你保管好「保密機器」,就永遠沒人知道誰寫了什麼信給你。

當然,你也可以隨時調整「保密機器」的參數,改變「魔法信紙」的原料和製造細節,於是舊的「魔法信紙」就會失效,用「保密機器」也無法解讀,只能用新版的「魔法信紙」寫信,才可以重新被「保密機器」解讀,這樣你們就不怕被壞人偷到你的「保密機器」的設定參數,或「魔法信紙」的製造配方。

在這裡的「魔法信紙」就是「公鑰」,「保密機器」就是「私鑰」,很好懂吧?

二、簽名驗證

沿用上面的比喻。

假設「保密機器」還有一個功能,就是可以在任何紙張上面蓋上「魔法印鑑」,印鑑的圖案完全看不出來是什麼,但只要「魔法信紙」和「魔法印鑑」真的都是你家的「保密機器」製造出來的,使用「魔法信紙」和「魔法印鑑」圖案重疊,「魔法信紙」就會變成透明的。

如果不是同一台機器、同一組參數製造出來的「魔法信紙」、「魔法印鑑」,那疊合在一起就不會變成透明,也就知道這印鑑是被竄改過或偽造的。

在這裡的「魔法信紙」就是「公鑰」,「魔法印鑑」就是「數位簽章」,公鑰可以用於驗證數位簽章,但無法製造數位簽章,數位簽章只能由私鑰產生,就是這樣的概念。

還有一個重點,數位簽章其實也是一份短文件,內容寫什麼不重要,空白也可以,但必須雙方都知道,否則無法用公鑰驗證。

比如說,你在簽章裡面寫「今天早上吃飯糰」,然後用私鑰 (「保密機器」) 編碼做成「魔法印鑑」,結果送到你朋友那裡時,他如果改成「今天早上吃蛋餅」,這樣就算使用正確的公鑰也無法通過驗證。

驗證時必須公鑰和簽章內文一致才可以,就像實體印鑑也是要同樣名稱、同一個印章紋路一樣的意思。

三、密碼驗證

沿用簽名驗證的概念和比喻,利用「魔法印鑑」內容不可更動的原理,就可以在不必記住你的帳號密碼的情況下,在任何地方讓你登入帳密。

假設你要去一個平台開戶,他們也有自己的「保密機器」,當你註冊的時候,就利用你的帳號、密碼,輸入「保密機器」後轉印在一張「魔法信紙」上,這時候「魔法信紙」的圖案和顏色已經改變,和空白的時候不一樣了,其實也就是變成「魔法印鑑影印本」了。

平台只要將你這張已經變成「魔法印鑑影印本」的「魔法信紙」保存下來,就不需要記得你真正的帳號名稱和密碼。任何人看到這張「魔法印鑑影印本」時,也沒辦法猜出你的帳號和密碼內容。下次你要登入的時候,只要拿一張「魔法信紙」,讓你寫下帳號、密碼,改變這張「魔法信紙」的圖案和顏色,再拿去和保存在系統中的「魔法印鑑影印本」做比對是否一致,只要一致就表示你填寫的內容和當初註冊一樣,就可以登入成功。

因此「魔法印鑑影印本」也可以發放給第三方使用,第三方拿到也不會知道你的帳號、密碼是什麼,但下次你要使用平台功能的時候,只要把這個「魔法印鑑影印本」拿給原註冊平台檢查,就可以暫時跳過帳號、密碼輸入的過程 (記住你的登入)。

最常見的例子就是遊戲內的臉書連結,第一次登入且要求記住的話,手機會儲存你的「魔法印鑑影印本」,下次開啟遊戲「拿給臉書看」,就可以順利登入。

這裡的「魔法印鑑影印本」其實也是一種「變形的公鑰」,第一次必需要由私鑰產生,然後可以透過公鑰來驗證真實性。