A Logical Calculus of the Ideas Immanent in Nervous Activity(神經網絡早期的M-P模型)

哈嘍,各位朋友大家上午好!今天我們要一起啃下這篇神經科學與邏輯學交叉領域的奠基之作——McCulloch和Pitts的《A Logical Calculus of the Ideas Immanent in Nervous Activity》。
在這里插入圖片描述

這篇論文篇幅不長,但每一個定理、每一個假設都像精密齒輪,共同構成了“神經活動可被邏輯描述”的核心框架。從最基礎的假設講起,逐個解析所有定理,對于大家關注的定理部分,會做深入拆解。

基本信息

  1. 論文標題: A LOGICAL CALCULUS OF THE IDEAS IMMANENT IN NERVOUS ACTIVITY*
  2. 作者與合著者: WARREN S. MCCULLOCH(美國伊利諾伊大學醫學院、伊利諾伊神經精神病學研究所精神病學系)、WALTER PITTS(美國芝加哥大學)
  3. 發表期刊 / 會議:最初發表于《Bulletin of Mathematical Biophysics》第 5 卷,第 115-133 頁,后重印于《Bulletin of Mathematical Biology》第 52 卷第 1/2 期,第 99-115 頁
  4. 發表時間: 1943 年(最初發表),1990 年(重印)
  5. DOI/URL: https://doi.org/10.1007/BF02478259

一、引言:神經活動與邏輯的“相遇”

論文開篇就點明了核心洞察:神經元的“全或無”特性(要么興奮,要么不興奮),使得神經事件及其關系可以用命題邏輯處理,好比開關的“通”與“斷”對應邏輯的“真”與“假”,為整個理論埋下了伏筆。

同時,簡單網絡可用基礎邏輯描述,含循環的復雜網絡則需要更復雜的邏輯工具;反之,滿足特定條件的邏輯表達式,總能找到對應的神經網絡。

二、神經生理學的核心假設:理論的“地基”

要建立邏輯模型,必須先明確神經元的“行為規則”。作者提出了5個物理假設,這些是所有定理的前提:

  1. 全或無特性:神經元活動是“非此即彼”的過程,沒有中間狀態,對應命題的二值性(真/假)。
  2. 固定閾值:激發神經元需要“潛伏疊加期”(<0.25ms)內達到一定數量的興奮性突觸激活,這個數量不隨歷史或位置變化。比如,神經元A的閾值是3,就必須在0.25ms內有3個興奮性突觸同時被激活才能興奮。
  3. 突觸延遲是唯一顯著延遲:神經元內部的傳導延遲可忽略,只有突觸處有>0.5ms的延遲。這讓時間可以被離散化為“突觸延遲的整數倍”(t=0,1,2,…),方便用邏輯符號描述時間關系。
  4. 抑制性突觸的絕對作用:只要有抑制性突觸被激活,神經元就絕對不會興奮,對應邏輯中的“否定”(?)——抑制信號直接讓命題為假。
  5. 網絡結構不變:短期內不考慮學習導致的突觸變化,后續會用“循環網絡”模擬學習。

這些假設看似簡化了真實神經生理(比如實際神經元的閾值可能變化),但正是這種抽象讓邏輯建模成為可能。比如“突觸延遲”的設定,使得時間可以被量化為離散的“步長”,為后續的“時間命題表達式”奠定了基礎。

三、符號系統:神經活動的“邏輯語言”

要將神經活動轉化為邏輯,必須定義一套符號系統。作者借鑒了Carnap、羅素和懷特海的符號,構建了專屬語言:

  • 神經元動作符號Ni(t)N_i(t)Ni?(t)表示“神經元cic_ici?在時間t(t為突觸延遲的整數倍)被激發”。比如N1(2)N_1(2)N1?(2)意為“神經元1在第2個突觸延遲時刻興奮”。
  • 時間算子SS(P)(t)S(P)(t)S(P)(t)等價于P(t?1)P(t-1)P(t?1),表示“前一個時間步的P狀態”。比如S(N2)(t)S(N_2)(t)S(N2?)(t)N2(t?1)N_2(t-1)N2?(t?1),描述了“神經元2在前一時刻的興奮狀態”。
  • 邏輯連接符:使用∨(析取,“或”)、∧(合取,“與”)、?(否定,“非”)表示命題關系,與傳統邏輯一致。

該符號系統是“神經活動→邏輯表達式”的翻譯工具。比如,“神經元3在t時刻興奮,當且僅當神經元1在t-1時刻興奮,或神經元2在t-3時刻興奮且t-2時刻未興奮”,可寫成:
N3(t)≡N1(t?1)∨(N2(t?3)∧?N2(t?2))N_3(t) \equiv N_1(t-1) \lor (N_2(t-3) \land \neg N_2(t-2))N3?(t)N1?(t?1)(N2?(t?3)?N2?(t?2))
在論文中對應于冷熱感知錯覺的例子,直觀展示了符號系統的用法。

四、時間命題表達式(TPE):可被神經網絡實現的邏輯

并非所有邏輯表達式都能對應神經活動,作者定義了“時間命題表達式(TPE)”來框定范圍,其遞歸定義如下:

  1. 基礎形式:單個謂詞變量的時間函數p(z1)p(z_1)p(z1?)(如Ni(t)N_i(t)Ni?(t))是TPE。
  2. 復合形式:若S1S_1S1?S2S_2S2?是含相同自由變量的TPE,則S(S1)S(S_1)S(S1?)(前一時間的S1S_1S1?)、S1∨S2S_1∨S_2S1?S2?S1∧S2S_1∧S_2S1?S2?S1∧?S2S_1∧?S_2S1??S2?也是TPE。

即TPE是“能被神經網絡實現的邏輯表達式”,其核心是只能涉及過去或現在的狀態,不能預測未來,這與神經活動的因果性一致。

五、零階網絡(無循環)的定理:簡單邏輯與網絡的等價性

零階網絡是指沒有“循環路徑”(如A→B→C→A)的網絡,其行為最容易用TPE描述,在論文用3個定理建立了兩者的雙向關系。
在這里插入圖片描述

定理1:零階網絡的行為可用TPE描述

含義:任何無循環的神經網絡,其每個神經元的興奮規則都能寫成TPE。
證明思路

  • 對零階網絡中的神經元cic_ici?,設其閾值為βi\beta_iβi?,有ppp個興奮性突觸來自ci1,...,cipc_{i1},...,c_{ip}ci1?,...,cip?qqq個抑制性突觸來自cj1,...,cjqc_{j1},...,c_{jq}cj1?,...,cjq?
  • 其興奮條件為:
    • ① 所有抑制性神經元在t-1時刻未興奮(∏m=1q?Njm(t?1)\prod_{m=1}^q \neg N_{jm}(t-1)m=1q??Njm?(t?1));
    • ② 興奮性神經元的某個子集的突觸數量之和超過閾值(∑α∈κi∏s∈αNis(t?1)\sum_{\alpha \in \kappa_i} \prod_{s \in \alpha} N_{is}(t-1)ακi??sα?Nis?(t?1),其中κi\kappa_iκi?是滿足條件的子集集合)。
  • 結合時間算子S,可寫成:Ni(t)≡S{∏m=1q?Njm(t)∧∑α∈κi∏s∈αNis(t)}N_i(t) \equiv S\left\{ \prod_{m=1}^q \neg N_{jm}(t) \land \sum_{\alpha \in \kappa_i} \prod_{s \in \alpha} N_{is}(t) \right\}Ni?(t)S{m=1q??Njm?(t)ακi??sα?Nis?(t)}
  • 由于網絡無循環,可通過“替換法”逐步消除非外周神經元(將其表達式代入其他神經元的規則),最終所有神經元的活動都能用外周神經元的TPE表示。

:一個簡單的“與門”網絡(神經元C的閾值為2,接收A和B的興奮性突觸),其規則為NC(t)≡S(NA(t)∧NB(t))N_C(t) \equiv S(N_A(t) ∧ N_B(t))NC?(t)S(NA?(t)NB?(t)),顯然是TPE。

定理2:任何TPE都能被零階網絡實現

含義:只要是TPE,就一定能設計出對應的無循環網絡。
證明思路

  • 基礎case:單個p(z1)p(z_1)p(z1?)可由單個神經元實現(外周神經元)。
  • 復合case:
    • S(p1)S(p_1)S(p1?):用一個神經元接收p1p_1p1?的突觸,延遲一個時間步輸出(圖1a)。
    • p1∨p2p_1∨p_2p1?p2?:設計神經元,閾值為1,接收p1p_1p1?p2p_2p2?的興奮性突觸(圖1b)。
    • p1∧p2p_1∧p_2p1?p2?:設計神經元,閾值為2,接收p1p_1p1?p2p_2p2?的興奮性突觸(圖1c)。
    • p1∧?p2p_1∧?p_2p1??p2?:設計神經元,閾值為1,接收p1p_1p1?的興奮性突觸和p2p_2p2?的抑制性突觸(圖1d)。
  • 通過歸納法,所有TPE都可由這些基礎結構組合實現。

:TPE“S(p1)∨(p2∧?p3)S(p_1) ∨ (p_2 ∧ ?p_3)S(p1?)(p2??p3?)”可由“S(p1)S(p_1)S(p1?)的網絡”與“p2∧?p3p_2 ∧ ?p_3p2??p3?的網絡”通過“或門”組合而成。

定理3:TPE的判定條件

含義:一個邏輯表達式是TPE,當且僅當它滿足三個等價條件之一:

  1. 當所有 constituent p(z1?zz)p(z_1-zz)p(z1??zz) 為假時,表達式為假;
  2. 其真值表最后一行(所有輸入為假)為“假”;
  3. 其希爾伯特析取范式中,沒有僅由否定項組成的項。

證明思路

  • 必要性:TPE由基礎形式通過∨、∧、?和S組合而成,當所有輸入為假時,復合表達式必為假(如S1∨S2S_1∨S_2S1?S2?S1S_1S1?S2S_2S2?都假時為假)。
  • 充分性:若表達式滿足條件3,可寫成(S1∧...∧Sm)∧?(Sm+1∨...∨Sn)(S_1∧...∧S_m) ∧ ?(S_{m+1}∨...∨S_n)(S1?...Sm?)?(Sm+1?...Sn?),顯然是TPE。

:“p∨?qp∨?qp?q”不是TPE(當p和q都假時,表達式為真,違反條件1);“p∧qp∧qpq”是TPE(p和q都假時為假)。

六、等價性定理:不同神經機制的“邏輯等效”

神經生理存在多種可能機制(如抑制的方式、學習的實現),作者證明了它們在“擴展意義上等價”——即一種機制能實現的功能,另一種也能實現(可能時間不同)。

定理4:相對抑制與絕對抑制等價

  • 相對抑制:抑制性突觸提高神經元閾值(如原本需3個興奮,1個抑制后需4個)。
  • 絕對抑制:抑制性突觸直接阻止神經元興奮(只要有1個抑制,無論多少興奮都無效)。
  • 等價性證明
    • 相對抑制的規則可寫成TPE(如“興奮數-抑制數>閾值”),而TPE可由零階網絡實現(定理2),其中絕對抑制可模擬相對抑制的效果(如用多個抑制性突觸抵消興奮性輸入)。
    • 反之,絕對抑制也可通過相對抑制模擬(如設置足夠高的閾值,讓抑制后永遠無法達到)。

定理5:消退與絕對抑制等價

  • 消退:神經元興奮后,閾值在一段時間內升高(如興奮后j個時間步,閾值+ bjb_jbj?)。
  • 等價性證明
    • 用M個循環網絡T1,...,TM\mathscr{T}_1,...,\mathscr{T}_MT1?,...,TM?(分別含1,…,M個神經元)模擬消退:神經元cic_ici?興奮后,激活這些循環,每個循環在j個時間步后通過bjb_jbj?個抑制性突觸作用于cic_ici?,等效于閾值升高。
    • 反之,絕對抑制也可通過消退模擬(如設置足夠大的bjb_jbj?)。

定理6:易化與時間總和可被空間總和替代

  • 易化/時間總和:神經元對時間上分散的興奮(如t-2和t-1時刻的興奮)進行疊加。
  • 等價性證明
    • 引入延遲鏈(含不同數量突觸的路徑),將時間上的興奮轉化為空間上的同步興奮(如t-2的興奮通過2個突觸延遲,t-1的興奮通過1個突觸延遲,最終在t時刻同步到達),從而用空間總和模擬時間總和。

定理7:可改變的突觸(學習)可被循環替代

  • 可改變的突觸:原本無效的突觸,在“神經元興奮且突觸同時激活”后變為有效。
  • 等價性證明
    • 用循環網絡模擬突觸變化:當神經元cic_ici?興奮且突觸前神經元cjc_jcj?激活時,激活一個循環路徑,使cjc_jcj?的信號持續作用于cic_ici?,等效于突觸變為有效。

七、高階網絡(含循環)的定理:處理“記憶”與遞歸

當網絡存在循環(如A→B→A),神經元活動會依賴“歷史狀態”(記憶),其行為需用遞歸函數描述。

定理8:循環網絡的解可通過遞歸表達式描述

含義:含循環的網絡(階數p)的行為,可通過含遞歸的表達式描述,其中神經元活動依賴于自身或其他神經元的過去狀態(可能是任意早的過去)。
證明思路

  • 設循環集為c1,...,cpc_1,...,c_pc1?,...,cp?,其活動滿足Ni(t)≡Pri[Sni1N1(t),...,SnipNp(t)]N_i(t) \equiv Pr_i[S^{n_{i1}}N_1(t),...,S^{n_{ip}}N_p(t)]Ni?(t)Pri?[Sni1?N1?(t),...,Snip?Np?(t)]PriPr_iPri?為含外周輸入的表達式)。
  • 通過反復代入,可將表達式轉化為依賴SnNj(t)S^nN_j(t)SnNj?(t)(n為nijn_{ij}nij?的最小公倍數)的形式,再轉化為希爾伯特析取范式,最終用遞歸函數表示為:
    Ni(t)≡(E?)(x)t?1??(x)≤2p??(t)=i?P[?(x+1),?(x),N?(0)(0)]N_i(t) \equiv (E\phi)(x)_{t-1} \cdot \phi(x) \le 2^p \cdot \phi(t)=i \cdot P[\phi(x+1), \phi(x), N_{\phi(0)}(0)]Ni?(t)(E?)(x)t?1???(x)2p??(t)=i?P[?(x+1),?(x),N?(0)?(0)]
    其中?\phi?是描述歷史狀態序列的函數,體現了“記憶”的作用。

定理9:可實現類(prehensible classes)的判定條件

含義:一個類的函數能被神經網絡實現,當且僅當它滿足特定的遞歸條件(涉及邏輯運算和時間算子的封閉性)。
證明思路

  • 基于前面的符號和定理,可實現類需對邏輯運算(?、∧、∨)和時間算子S封閉,且能通過有限步驟遞歸定義。

定理10:集合K的所有成員均可實現

  • 集合K的定義
    1. 任何TPE,以及用K中成員替換TPE的變元后仍屬于K;
    2. Pr1(z1)∈KPr_1(z_1)\in KPr1?(z1?)K,則(z2)z1Pr1(z2)(z_2)_{z_1}Pr_1(z_2)(z2?)z1??Pr1?(z2?)(全稱量詞)、(Ez2)z1Pr1(z2)(Ez_2)_{z_1}Pr_1(z_2)(Ez2?)z1??Pr1?(z2?)(存在量詞)、Cmn(z1)C_{mn}(z_1)Cmn?(z1?)(模n同余m)也屬于K。
  • 證明:通過歸納法,K中的成員均可通過循環網絡實現(如用循環網絡實現量詞和模運算)。

八、神經網絡與圖靈機的等價性

論文最后指出:神經網絡的計算能力與圖靈機等價

  • 任何圖靈機能計算的數,配備“紙帶、掃描儀、效應器”的神經網絡都能計算;
  • 神經網絡能計算的數,圖靈機也能計算;
  • 含循環的神經網絡可在無紙帶時計算部分數,但范圍不超過圖靈機。

這一結論將神經活動與“可計算性”理論綁定,為“認知即計算”的思想提供了早期依據。

九、研究思路總結

該論文的研究思路堪稱“從現象到理論”的典范,可拆解為四步:

  1. 現象抽象:從神經元“全或無”“突觸延遲”等特性中,提煉出與二值邏輯的相似性,將神經活動映射為命題。
  2. 符號建模:定義Ni(t)N_i(t)Ni?(t)、S算子等符號,構建“神經活動→邏輯表達式”的翻譯系統,明確TPE的范圍。
  3. 雙向驗證
    • 正向:證明零階網絡的行為能被TPE描述(定理1),高階網絡的行為能被遞歸表達式描述(定理8);
    • 反向:證明TPE和更復雜的表達式(集合K)能被對應網絡實現(定理2、10)。
  4. 等價擴展:證明不同神經機制(抑制、消退、學習等)在邏輯功能上等價,拓寬理論的適用范圍(定理4-7)。

該“觀察→抽象→建模→驗證→擴展”的框架體現了跨學科研究的核心方法論。其核心觀點在于:面對復雜的生物系統,研究者無需在初始階段過度關注細節,而應通過合理的抽象化過程提取關鍵規律,進而運用邏輯與數學工具構建具有普適性的理論模型。本研究的學術價值不僅體現在為神經網絡奠定了理論基礎,更在于通過嚴謹的邏輯推演揭示了生命現象的內在機制——此類研究范式可為多領域學術探索提供方法論借鑒。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/95097.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/95097.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/95097.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大語言模型提示工程與應用:提示工程-提升模型準確性與減少偏見的方法

語言模型可靠性優化 學習目標 在本課程中&#xff0c;我們將學習通過提示工程提升模型事實準確性、減少偏見的有效方法。 相關知識點 語言模型可靠性優化 學習內容 1 語言模型可靠性優化 1.1 事實準確性增強 LLM可能生成看似合理但實際虛構的內容。優化策略包括&#x…

遇到前端導出 Excel 文件出現亂碼或文件損壞的問題

1. 檢查后端返回的數據格式確認接口響應&#xff1a;確保后端返回的是二進制流&#xff08;如 ArrayBuffer&#xff09;或 Base64 編碼的 Excel 文件&#xff0c;而非 JSON 字符串。用瀏覽器開發者工具&#xff08;Network 標簽&#xff09;檢查接口響應類型&#xff1a;正確的…

2025年Cloudflare WAF防護機制深度剖析:5秒盾繞過完全指南

2025年Cloudflare WAF防護機制深度剖析&#xff1a;5秒盾繞過完全指南 技術概述 Cloudflare作為全球領先的CDN和網絡安全服務提供商&#xff0c;其WAF&#xff08;Web Application Firewall&#xff09;防護系統已經成為現代Web安全的標桿。特別是其標志性的"5秒盾"…

【Android調用相冊、拍照、錄像】等功能的封裝

關于調用Android項目 關于Android中調用相機拍照、錄像&#xff0c;調用相冊選圖等是比較繁瑣的&#xff0c;為了減少代碼冗余&#xff0c;肯定需要封裝成工具類&#xff0c;最終使用大概如下&#xff0c;大部分代碼使用Java編寫&#xff0c;因為需要照顧到不適用kotlin的伸手…

Git 分支管理:從新開發分支遷移為主分支的完整指南

問題背景 我在使用 Git 進行開發時&#xff0c;由于原有的主分支遭到了污染&#xff0c;不得已在多方嘗試之后&#xff0c;決定替換原有的主分支。創建一個新分支并完成了重要修改&#xff1a; 基于提交 0fcb6df0f5e8caa3d853bb1f43f23cfe6d269b18 創建了 new-development 分支…

nginx常見問題(四):端口無權限

當 Nginx 日志報錯 bind() to 80 failed (13: Permission denied) 時&#xff0c;這通常是由于權限不足導致 Nginx 無法綁定到 80 端口&#xff08;該端口為系統特權端口&#xff09;。以下是詳細的問題分析與解決方案&#xff1a;一、問題原因分析80 端口屬于 系統特權端口&am…

【線性代數】線性方程組與矩陣——(3)線性方程組解的結構

上一節&#xff1a;【線性代數】線性方程組與矩陣——&#xff08;2&#xff09;矩陣與線性方程組的解 總目錄&#xff1a;【線性代數】目錄 文章目錄9. 向量組的線性相關性與線性方程組解的結構9.1. 向量組及其線性組合9.2. 向量組的線性相關性9.3. 向量組的秩9.4. 線性方程組…

機器學習-----K-means算法介紹

一、為什么需要 K-Means&#xff1f;在監督學習中&#xff0c;我們總把數據寫成 (x, y)&#xff0c;讓模型學習 x → y 的映射。 但現實中很多數據根本沒有標簽 y&#xff0c;例如&#xff1a;啤酒&#xff1a;熱量、鈉含量、酒精度、價格用戶&#xff1a;訪問時長、點擊次數、…

Spring Security自動處理/login請求,后端控制層沒有 @PostMapping(“/login“) 這樣的 Controller 方法

一&#xff1a;前言 &#xff08;1&#xff09;Spring Security概念&#xff1a; Spring Security 是屬于 Spring 生態下一個功能強大且高度可定制的認證和授權框架&#xff0c;它不僅限于 Web 應用程序的安全性&#xff0c;也可以用于保護任何類型的應用程序。 &#xff08…

idea開發工具中git如何忽略編譯文件build、gradle的文件?

idea開發工具中&#xff1a; git顯示下面這個文件有變更&#xff1a; ~/Documents/wwwroot-dev/wlxl-backend/java/hyh-apis/hyh-apis-springboot/build/resources/main/mapping/AccountRealnameMapper.xml 我git的根路徑是&#xff1a; ~/Documents/wwwroot-dev/wlxl-backend/…

狀態機淺析

狀態機是處理狀態依賴型行為的高效工具&#xff0c;通過結構化建模狀態轉換&#xff0c;解決了傳統條件判斷的冗余和混亂問題。它在設備控制、流程管理、協議解析等場景中表現優異&#xff0c;核心優勢在于邏輯清晰、可擴展性強和易于調試。 一、介紹 1. 概念 狀態機&#x…

Windows 手動病毒排查指南:不依賴殺毒軟件的系統安全防護

Windows 手動病毒排查指南&#xff1a;不依賴殺毒軟件的系統安全防護 在數字時代&#xff0c;電腦病毒就像潛伏的"網絡幽靈"&#xff0c;從竊取隱私的木馬到消耗資源的蠕蟲&#xff0c;時刻威脅著系統安全。當殺毒軟件失效或遭遇新型威脅時&#xff0c;手動排查病毒便…

GPT-5 is here

GPT-5 is here https://openai.com/index/introducing-gpt-5/ — and it’s #1 across the board! #1 in Text, WebDev, and Vision Arena #1 in Hard Prompts, Coding, Math, Creativity, Long Queries, and more Tested under the codename “summit”, GPT-5 now holds the …

【華為機試】55. 跳躍游戲

文章目錄55. 跳躍游戲題目描述示例 1&#xff1a;示例 2&#xff1a;提示&#xff1a;解題思路一、問題本質與建模二、方法總覽與選擇三、貪心算法的正確性&#xff08;直觀解釋 循環不變式&#xff09;四、反向貪心&#xff1a;等價但有啟發的視角五、與動態規劃的對比與誤區…

RabbitMQ面試精講 Day 18:內存與磁盤優化配置

【RabbitMQ面試精講 Day 18】內存與磁盤優化配置 開篇&#xff1a;內存與磁盤優化的重要性 歡迎來到"RabbitMQ面試精講"系列的第18天&#xff01;今天我們將深入探討RabbitMQ的內存與磁盤優化配置&#xff0c;這是面試中經常被問及的高頻主題&#xff0c;也是生產環…

【C++】string 的特性和使用

Ciallo&#xff5e; (∠?ω< )⌒★ string&#xff08;1&#xff09;1. 構造函數1.1 string();1.2 string(const char* s);1.3 string(const string& str);1.4 string(size_t n, char c);1.5 string(const string& str, size_t pos, size_t len npos);1.6 string(…

創始人IP的精神修煉:于成長中積蓄力量

IP 經濟席卷之下&#xff0c;眾多企業家常被 “是否入局 IP”“能否做好 IP” 的焦慮裹挾。這種潛藏的精神內耗&#xff0c;對企業根基的侵蝕往往勝過業績的起伏。著名文化學者于丹在全球創始人 IP 領袖高峰論壇上的洞見&#xff0c;為創始人 IP 的精神成長照亮了前路&#xff…

gbase8s數據庫中對象元數據查詢

最近整理了gbase8s數據庫中常見的元數據的查詢&#xff0c;包括表、視圖、序列、包、類型、觸發器、plsql等等&#xff0c;僅供參考。set environment sqlmode oracle; drop package DBMS_METADATA; create or replace package DBMS_METADATA is function GET_DDL(objtype varc…

常用hook鉤子函數

爬蟲Hook技術常用字段和勾子函數 目錄 Hook技術概述網絡請求相關Hook瀏覽器環境HookJavaScript引擎Hook加密算法Hook反爬蟲檢測Hook實際應用示例Hook工具和框架 Hook技術概述 Hook&#xff08;鉤子&#xff09;技術是一種在程序運行時攔截和修改函數調用的技術。在爬蟲中&a…

【解決方法】華為電腦的亮度調節失靈

華為電腦的亮度調節失靈 參考文章&#xff1a; 華為電腦屏幕亮度怎么調不了&#xff1f;華為電腦調節亮度沒反應解決教程 親測&#xff0c;在控制面板中卸載HWOSD&#xff0c;再重裝有用。