嗚嗚喔學習筆記

搜尋此網誌

2026年7月22日 星期三

AI 使用心得( 不用 AI 潤稿 人工編輯版本 )

 AI 使用心得( 不用 AI 潤稿 人工編輯版本 )

-- 這裡絕對不能用AI輸出 是我最原始的心得 --

*這篇文章絕對不能用AI整理 *很重要*

*內容很亂也沒關西 因為是核心 人類輸出語言 不要用AI

太依賴AI 很多最核心資訊會被洗掉 保留最原始心得!

AI 注意力有限 要用 LOOP 反覆找問題 比如 SKILL清理 CODE VIEW

[專注AI循環][專注AI CODE驗收]


[認知載入]=>看CODE

語言模型能不能穩定理解你給它的程式

- 如何降第語意負擔

只規劃到實作前需要的東西 協定 & 規格 規則...相關 細節實作給AI


AI 三個臭皮匠 勝過諸葛亮?


開遊戲 -> 協定byte dump到檔案 -> 反查LOG


AI 確認需求比較重要 知道自己要什麼

Skill Daily 優化者 半夜跑一次


認知載入 AI -> 人 , 人 -> AI 雙向都要

需要管理 注意力

已經測試過 可用 可驗證的 AI 流程 可以不用花專注力 直接歸納成skill 或 Daily每日執行


手打CODE 也有價值(認知加強


在什麼階段 讓AI接手 會比較好 不會整個不知道在幹嘛


AI幫助實做 不要幫助思考 思考人類優先


請AI 自己提需求

/goal 看最近 AI 需求是什麼 卡在哪 unitybridge 需要新增什麼功能


在可控範圍內 多 code review 幾次


提出需求後 AI 如何驗證循環


管理記憶

如何快速同步記憶


需要管控 認知壓力


使用AI的問題在於記憶 - AI知道的淺規則比我們少 - 要把規則訂下來 寫成文件命中率才會高

使用SKILL 定期維護記憶 記憶只記錄抽象 不直覺 看CODE看不出來的部分


有明確驗收方式 都要用 /goal 降低中間來來回回 消耗注意力


要分 上線的CODE 還是 "測試類&工具類&編輯類" 的東西 如果是 "測試類&工具類&編輯類"

屬於只要測試目標達成就好 不用詳細Codereivew 注重結果跟LOOP迭代 釋放人類認知資源


每天的注意力有限 要管理注意力


驗收 驗收 驗收


跟runtime有關的CODE 特別是狀態複雜 有先後順序的CODE ,

AI 寫錯機率比較高 需要AI 使用runtime工具 自我驗證+循環


要怎麼處理語意上的錯誤? AI在遇到 語意跟實際情況有落差 淺規則 會容易寫錯


AI 只能處理合理的邏輯 不合理繞來繞去的情況 容易出錯 需要人類介入


歷史對話紀錄很重要 可以優化AI 比如 請AI自己查自己需要什麼工具 & AI自己查卡在哪


API的設計哲學 可以列給AI 讓他有個基礎去思考


Fable Code reivew 太消耗Token


每日 請AI看需要什麼 然後請AI迭代工具


知道自己在幹嘛 提示就會下的精準


AI 寢向達成任務 可能會偷懶


把 skill 當作程式碼在寫 一樣要做DRY 去除類似流程 保留唯一


CODE 越來越不值錢 API接口設計理念比較重要 CODE 可以被AI 簡單複製


Skill 要寫 Trigger_test 驗證SKILL品質用


使用AI 用 Top Down 方法更好 先關注大方向 細節AI處理


人會通靈 是因為有關鍵奇怪資訊 這個關鍵奇怪資訊 要md化 這樣AI才能跟人有一樣思考


能夠 文件化 指令化 都做 都有好處


使用AI到最後 會變成如何信任開發 如何驗證成果 因為看不完所有CODE


基於信任 連要上線的CODE 只要夠簡單 我都能無腦PUSH 每日晚上在請AI Code Review兜底






2026年6月22日 星期一

StikcyNotes With Google Drive At Windows10

載入中…

2025年6月6日 星期五

你真的知道自己投入股市多少錢嗎?用 Python 還原「真實資金」的方法大公開

還原你真正投入股市的資金

💰 用 Python 還原「到底花了多少錢買股票?」

有時候你會問自己:

「我帳上股票價值是這樣沒錯…但我到底實際投入了多少錢?」

這問題乍聽簡單,其實非常常見也非常棘手。


🧨 問題:我錢早就滾來滾去了啊!

很多人投資時:

  • 沒記自己加碼多少錢(沒有入金記錄)
  • 只剩券商提供的「買賣交易紀錄」

但這樣會出現什麼狀況?

  • 你賣出股票,帳戶有現金
  • 過幾天再買別的股票,用的是原本賣出的錢
  • 重複買賣幾次後,你總買入金額可能膨脹了兩倍!

✅ 所以不能單看「買進總額」或「-帳面淨流出」來當作你的投入資金


✅ 解法:模擬帳戶現金流,還原真實加碼金額

💡 核心邏輯:

  1. 把交易紀錄照時間排序
  2. 模擬一個帳戶現金餘額(初始 0)
  3. 遇到賣出(+金額):錢進帳戶
  4. 遇到買進(-金額):
    • 有現金就扣
    • 不夠的話,補上缺口 → 這才是真的你「掏口袋的錢」

🧮 舉個例子

1月 買 -10,000 現金 = 0 → 實際投入 10,000
2月 賣 +12,000 現金 = 12,000
3月 買 -18,000 現金不足,補 6,000 → 再投入 6,000

✅ 結論:實際總投入是 16,000

不是你以為的「買了 28,000 就是投入 28,000」


🛠️ Python 程式碼怎麼寫?


account_cash = 0
net_invested = 0

for row in sorted_transactions:
    amt = row["Amount"]
    if amt > 0:  # 賣出
        account_cash += amt
    else:        # 買入
        needed = -amt
        if account_cash >= needed:
            account_cash -= needed
        else:
            net_invested += (needed - account_cash)
            account_cash = 0

📈 實際用途

  • 想算報酬率,但沒記入金
  • 有做再平衡、滾動買賣的交易人
  • 想看 Sharpe Ratio / IRR 時,不想被「假投入」影響

🔚 小結

這個「還原現金投入」的方法非常簡單但非常實用。
比起只看總買進金額,它能更貼近你真正「從錢包拿出來」的資金。

把它寫進你的投資分析程式,或記帳工具裡面,你會對自己的績效有更真實的掌握 👌


(想要這段程式變成一個 pandas 函式或封裝工具?可以留言或私訊我 🙌)

2025年1月16日 星期四

PS Blending Modes (常用混合公式整理)

 以下內容整理自您提供的圖片,主要是各種「混合模式 (Blending Modes)」對應的運算公式。為方便閱讀,我將其歸納成表格形式,並依常見的 Photoshop/繪圖軟體混合模式命名進行分類。若有些名稱與您日常使用的軟體不同,請自行對照調整。


1. 基本比較類 (Darken / Lighten)

模式名 公式 說明
變暗 (Darken) C=min(A,B)C = \min(A, B) 在每個像素比較兩圖層亮度,取較暗者為結果
變亮 (Lighten) C=max(A,B)C = \max(A, B) 在每個像素比較兩圖層亮度,取較亮者為結果

2. 乘法 / 反向運算類 (Multiply / Screen / 相關衍生)

模式名 公式 說明
正片疊底(Multiply) C=A×B255C = \dfrac{A \times B}{255} 兩圖層相乘後再除以 255,結果通常比原圖更暗
濾色(Screen) C=255(255A)×(255B)255C = 255 - \dfrac{(255 - A) \times (255 - B)}{255} 先將兩圖層反相,再進行乘法,最後再反相,結果通常比原圖更亮
線性加深(Linear Burn) C=A+B255C = A + B - 255(若小於 0 則視作 0) 簡單的線性運算,使結果變暗
線性減淡(Linear Dodge) C=A+BC = A + B(若大於 255 則視作 255) 簡單的線性運算,使結果變亮
顏色加深(Color Burn) C=255(255A)×255BC = 255 - \dfrac{(255 - A) \times 255}{B}(常見定義之一) 透過對亮部的「壓暗」達到加深效果,實作可能略有差異
顏色減淡(Color Dodge) C=A×255255BC = \dfrac{A \times 255}{255 - B}(常見定義之一) 透過對暗部的「提亮」達到減淡效果,實作可能略有差異

註:有關「顏色加深 / 顏色減淡」的公式,在不同軟體或文檔中可能會有些微差異,以上為常見版本參考。


3. 疊加 / 光系混合 (Overlay / Hard Light / Soft Light / Vivid Light 等)

這一類混合模式通常會先判斷 B(上層) 的亮度是否大於或小於中間值 (128),再採用不同公式,使暗部和亮部各自以不同方式混合。

3.1 疊加(Overlay)

通常定義如下(此處以 128 為分界):

  • B128B \le 128C=A×B128 C = \dfrac{A \times B}{128}
  • B>128B > 128C=255(255A)(255B)128 C = 255 - \dfrac{(255 - A)(255 - B)}{128}

3.2 強光(Hard Light)

「強光」與「疊加」雷同,但視角不同(以 B 為基準)。常見定義為:

  • B128B \le 128C=A×B128 C = \dfrac{A \times B}{128}
  • B>128B > 128C=255(255A)(255B)128 C = 255 - \dfrac{(255 - A) (255 - B)}{128}

註:某些資源中,強光(Hard Light) 也會寫成以上 Overlay 互換的形式,請依軟體實際實作為主。

3.3 柔光(Soft Light)

柔光的公式實作比較多樣,常見的 Photoshop 版本定義(以下僅作參考):

  • B128B \le 128C=A×(B+128)255 C = \dfrac{A \times (B + 128)}{255}
  • B>128B > 128C=255(255A)(255B)255 C = 255 - \dfrac{(255 - A)(255 - B)}{255}

不同軟體對「柔光」的實作公式也可能不同,主要是為了產生更柔和的光影過渡。

3.4 亮光(Vivid Light)、線性光(Linear Light)、點光(Pin Light) 等

  • 亮光(Vivid Light)
    結合了「顏色加深 / 顏色減淡」的概念:

    {B128:C=255(255A)×128BB>128:C=A×128255(B128) \begin{cases} B \le 128: & C = 255 - \dfrac{(255 - A)\times 128}{B} \\ B > 128: & C = \dfrac{A \times 128}{255 - (B - 128)} \end{cases}

    (此為參考公式,實際實作可能有所調整。)

  • 線性光(Linear Light)
    常見定義:

    C=A+2B255 C = A + 2B - 255

    (暗部時像線性加深,亮部時像線性減淡。)

  • 點光(Pin Light)
    簡化來說,會將亮部與暗部門檻化,以保留部分像素原值、部分取另一圖層值。常見寫法:

    {B128:C=min(A,2B)B>128:C=max(A,2B255) \begin{cases} B \le 128: & C = \min(A, 2B) \\ B > 128 : & C = \max(A, 2B - 255) \end{cases}

4. 其他特效類

模式名 公式 說明
實色疊加(Hard Mix) C={255(A+B255)0(A+B<255)C = \begin{cases}255 & (A + B \ge 255)\\0 & (A + B < 255)\end{cases} 會使結果只有純色 (非 0 即 255),製造極端色塊效果
差值(Difference) (C = A - B
排除(Exclusion) C=A+BA×B128C = A + B - \dfrac{A \times B}{128} 與差值類似,但結果較柔和
相加(Add) C=A+BC = A + B(若超過 255 則視為疊色 / 補陰) 將像素值相加後再裁切,若值過大即「溢色」。有時用於製作發光效果
減去(Subtract) C=ABC = A - B(若小於 0 則視為 0) 將像素值相減後再裁切,若小於 0 即「補陰」。

5. 小結

  1. 比較類 (變暗 / 變亮) 只做簡單的比較取最小或最大值。
  2. 乘法類 (正片疊底 / 濾色 / 顏色加深 / 顏色減淡 / 線性加深 / 線性減淡) 大多基於「乘法 + 反相」等簡單算式,控制明暗。
  3. 光系混合 (疊加 / 強光 / 柔光 / 亮光 / 點光 / 線性光 / Vivid Light / Linear Light / Pin Light...) 則常用分段函式,依暗部或亮部使用不同算法。
  4. 特效類 (差值 / 排除 / 實色疊加 / 相加 / 減去 ...) 產生反相、門檻化或其他獨特效果。

以上即為根據圖片上列出的混合模式與對應公式所做的整理與歸納。若有個別公式與您實務使用或軟體顯示不符,建議再對照實際的程式碼或官方文件,以取得最準確的數值與算法。希望對您有所幫助。

2024年10月8日 星期二

C# Struct 的自動哈希與相等比較:簡化開發的優勢

### 結論簡短版 `struct` 的一個重要優勢是,在大多數情況下,不需要手動覆寫 `GetHashCode()` 和 `Equals()`。C# 會自動基於 `struct` 的成員生成這些方法,讓開發更簡單並減少錯誤風險。這在需要高效查找和相等比較的情況下非常實用。 ### 範例說明 假設我們有一個 `Point` 結構:


struct Point
{
    public int X { get; }
    public int Y { get; }

    public Point(int x, int y)
    {
        X = x;
        Y = y;
    }
}


在這裡,我們不需要覆寫 `GetHashCode()` 和 `Equals()`,就可以直接將 `Point` 用作 `Dictionary` 的鍵:


var pointsDictionary = new Dictionary();
pointsDictionary[new Point(1, 2)] = "First Point";

// C# 自動處理哈希和相等比較
Console.WriteLine(pointsDictionary[new Point(1, 2)]); // 輸出:First Point


這展示了 `struct` 自動處理哈希和相等比較的方便性,讓我們不必手動覆寫這些方法,仍然可以高效使用字典查找等功能。

2023年10月1日 星期日

PS 混色公式



  1. 變暗:
    C=min(A,B)C = \min(A, B)
    註解:這個公式取A和B兩者之間較暗的顏色,用來使圖像變暗。

  2. 變亮:
    C=max(A,B)C = \max(A, B)
    註解:這個公式取A和B兩者之間較亮的顏色,用來使圖像變亮。

  3. 正片叠底:
    C=A×B255C = \frac{A \times B}{255}
    註解:這是模擬多重曝光的效果,使圖像變得更暗。結果會比變暗更強烈。

  4. 濾色:
    C=255(255A)×(255B)255C = 255 - \frac{(255 - A) \times (255 - B)}{255}
    註解:此公式和正片叠底相反,模擬膠片的濾色效果,用來變亮圖像。

  5. 顏色加深:
    C=A(255A)×(255B)BC = A - \frac{(255 - A) \times (255 - B)}{B}
    註解:這個公式增強圖像的顏色深度,增加對比度。

  6. 顏色減淡:
    C=A+A×B255BC = A + \frac{A \times B}{255 - B}
    註解:這個公式減少顏色的深度,使圖像變得更亮。

  7. 線性加深:
    C=A+B255C = A + B - 255
    註解:將兩個顏色相加,然後減去255,達到加深圖像的效果。

  8. 線性減淡:
    C=A+BC = A + B
    註解:將兩個顏色相加,達到減淡圖像的效果,使畫面變亮。

  9. 強光:
    當 B128,C=A×B128\text{當 } B \leq 128 \text{時}, C = \frac{A \times B}{128}
    當 B>128,C=255(255A)×(255(B128))128\text{當 } B > 128 \text{時}, C = 255 - \frac{(255 - A) \times (255 - (B - 128))}{128}
    註解:這個模式結合了正片叠底和濾色的效果,對比度會變得非常強烈。

  10. 疊加:
    C=A×B128+A255×(2552B)C = \frac{A \times B}{128} + \frac{A}{255} \times (255 - 2B)
    註解:疊加結合了正片叠底和濾色的效果,強化亮區和暗區的對比,適合增強細節。

  11. 柔光:
    當 B128,C=A×B128\text{當 } B \leq 128 \text{時}, C = \frac{A \times B}{128}
    當 B>128,C=A+(A255)×(2552B)128\text{當 } B > 128 \text{時}, C = A + (A - 255) \times \frac{(255 - 2B)}{128}
    註解:柔光模式會根據基色和混合色的亮度不同,適當增強對比,但效果比強光溫和。

  12. 亮光:
    C=min(A,2B255)C = \min(A, 2B - 255)
    註解:這個模式會根據B的值來調整亮度,並且在亮區和暗區有顯著的區別。

  13. 線性光:
    C=A+2B255C = A + 2B - 255
    註解:這是一種強烈的對比模式,增加混合色的亮度,使暗區更暗、亮區更亮。

  14. 實色增值:
    當 A+B255,C=255\text{當 } A + B \geq 255 \text{時}, C = 255
    否則 C=0\text{否則 } C = 0
    註解:此模式類似於正片叠底,但結果只有純黑和純白,無中間過渡。

  15. 排除:
    C=A+BA×B128C = A + B - \frac{A \times B}{128}
    註解:此模式產生類似差值的效果,但更柔和一些,適合創建一些特殊效果。

  16. 差值:
    C=ABC = |A - B|
    註解:此模式將基色和混合色的差異強烈地顯示出來,適合對比圖像中的變化。

  17. 相加:
    C=A+BC = A + B
    註解:這是一個簡單的加法混合模式,兩種顏色的亮度相加,可能會導致圖像變得非常亮。

  18. 相減:
    C=ABC = A - B
    註解:此模式將兩個顏色相減,適合創造圖像的反差效果。

  19. 點光:
    當 B128,C=A×B128\text{當 } B \leq 128 \text{時}, C = \frac{A \times B}{128}
    當 B>128,C=min(A,2B255)\text{當 } B > 128 \text{時}, C = \min(A, 2B - 255)
    註解:這個模式會根據B的亮度不同來決定是變亮還是變暗,類似於點光源的效果。


來源:

 https://blog.csdn.net/pizi0475/article/details/8241774?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-8241774-blog-78193734.235%5Ev38%5Epc_relevant_anti_vip&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-8241774-blog-78193734.235%5Ev38%5Epc_relevant_anti_vip&utm_relevant_index=2

文字描述由 ChatGPT 生成 如有錯誤請指證 請當參考就好