主頁 >  其他 > 自動機與形式語言復習:文法,DFA,NFA與正則運算式

自動機與形式語言復習:文法,DFA,NFA與正則運算式

2021-01-17 12:50:53 其他

目錄

  • 前言
  • 文法
  • DFA
  • NFA
  • NFA 轉換為 DFA
  • ε-NFA
  • 正則運算式
  • 圖上作業法
  • 泵引理
  • 極小化 DFA 演算法
  • FA 交集
  • CFG,二義性與其化簡

前言

自動機與形式語言通過規范化的文法,邏輯地表示某些字串,此外,通過對串的成分進行分析,同時給出一組狀態與對應的狀態轉移,組成自動機,DFA 和 NFA 是兩種自動機,都能夠判斷某些串是否能夠被接收,走到接收狀態就算接收,


還有三天,,,考完就可以 run 了,好耶!

我只考三門,都覺得復習很吃力,但是別人往往考 10 門,還比我先考,還游刃有余,這令我深刻的認識到:我是啥β

原本打算摸了,但是想到不復習真的可能會掛科,就來更新一下復習筆記了,

注:
因為我上了一學期課,從來沒有認真聽課超過 10 min,作業都是抄別人的
于是這篇復習筆記很可能錯漏百出,并且伴有缺內容,缺重點等等問題
? 請謹慎食用 ?

文法

通過文法可以規范化的表達某種語言(語言就是串的集合),我們通過四元組來表示一個文法:

G = ( V , T , P , S ) G = ( V, T, P, S ) G=(V,T,P,S)

其中 V 是 variable,表示變數,即狀態的集合,

T 是 terminal,終極符,通過一系列的終極符號 T,在不同的變數(V)中進行跳轉,比如 V1 可以通過接收字符 T,從而轉到 V2 狀態,

S 是 start symbol,為文法的開始符號,其中 S 屬于狀態集合 V

P 為 production,即產生式,產生式告訴我們狀態之間的聯系,比如一個狀態 V 可以產生一個字符 0,那么有:

V → 0 V \rightarrow 0 V0

當然也可以遞回地進行產生,比如產生的結果中,包含自己:

V → 0 V V \rightarrow 0V V0V

一個規范化的四元組長這樣:

G = ( { A , B } , { 0 , 1 } , { A → 0 , A → 1 A , B → 0 A , B → 1 } , B ) G = (\{A,B\}, \ \{0,1\}, \ \{A\rightarrow0,A\rightarrow1A,B\rightarrow0A,B\rightarrow1\}, \ B) G=({A,B}, {0,1}, {A0,A1A,B0A,B1}, B)


通過產生式,推出一個字串產生的程序,叫做推導,例子如下,給出文法 G,寫出句子 aaa 的推導程序

G = ( { A } , { a } , { A → a ∣ a A } , A ) G = (\{A\}, \ \{a\}, \ \{A\rightarrow a \mid aA \}, \ A) G=({A}, {a}, {AaaA}, A)

推導的程序如下:

A → a A , 使 用 產 生 式 A → a A a A → a a A , 使 用 產 生 式 A → a A a a A → a a a , 使 用 產 生 式 A → a A \rightarrow aA, \ 使用產生式 A\rightarrow aA \\ aA \rightarrow aaA, \ 使用產生式 A\rightarrow aA \\ aaA \rightarrow aaa, \ 使用產生式 A\rightarrow a AaA, 使AaAaAaaA, 使AaAaaAaaa, 使Aa


歸約則是和推導(又稱為派生)相反的程序,通過句子推匯出文法,

DFA

DFA 即為確定的有窮狀體自動機,和文法不同,文法注重描述一個串是如何產生的,而 DFA 則注重于觀察該串是否能被某些文法接收,

通過五元組:

M = ( 狀 態 集 合 , 輸 入 字 母 表 , 轉 移 函 數 , 起 始 狀 態 , 接 收 狀 態 集 合 ) M = ( 狀態集合, \ 輸入字母表, \ 轉移函式, \ 起始狀態, \ 接收狀態集合 ) M=(, , , , )

來描述一個 DFA,其中落入接收狀態的串是能夠被 DFA 識別的,比如:

在這里插入圖片描述

此外,DFA 還應該有陷阱狀態,表示當前串無法被接收時,狀態就落入陷阱狀態,比如有如下的例子,qt 就是陷阱狀態,表示讀取到不被接受的串:

在這里插入圖片描述

通過【即時描述】來表達一個自動機接收某個串的程序,即時描述通過狀態 q 在串上不停滑動,生動地表示了接收的程序,如下圖:

在這里插入圖片描述

NFA

NFA 意為不確定的有窮狀體自動機,DFA 一次只能通過一個輸入的字符,跳轉到一個單獨的狀態,而 NFA 則允許通過一個輸入的字符,跳轉到多個狀態,比如下圖,q0 接收 0 可以跳轉到 q1 或者 q0:

在這里插入圖片描述
如果說 DFA 是單執行緒的話,NFA 就是多執行緒,如果說 DFA 是 DFS(深搜)的話,NFA 就是 BFS(廣搜),這樣是否容易理解了?

NFA 轉換為 DFA

其實 NFA 和 DFA 是等價的,因為 DFA 是一次跳轉到一個狀態,而 NFA 是一次跳轉到一個狀態的集合,

如果把 NFA 的狀態集合視為 DFA 的一個狀態,那么就能實作 NFA 到 DFA 的轉換,這個思想叫做子集構造

比如將如下的 NFA 轉為 DFA:
在這里插入圖片描述
首先根據起始狀態 q0,到達兩個不同的狀態集合,分別是 {q0, q1} 和 {q0, q2}

因為把狀態集合看作是 DFA 的狀態,那么我們得到了兩個新狀態,分別是 {q0, q1} 和 {q0, q2},下圖的綠色標記了這兩個新狀態:

在這里插入圖片描述

然后來判斷新狀態 {q0, q1} 的狀態轉移,因為組合了狀態 q0 和 q1 的狀態轉移,我們將原 NFA 的狀態轉移結果取并集,作為該狀態的新轉移(下圖紅色箭頭),這里只給出接收 0 的箭頭,1 的同理,于是又產生了新的狀態 {q0, q1, q3} ,如下圖:

在這里插入圖片描述
同理,對 {q0, q2} 如法炮制,我們取原 NFA 的 q0 和 q2 的狀態轉移結果的并集,產生新狀態 {q0, q2, q3},如下圖:
在這里插入圖片描述

對兩個新狀態也是如法炮制:

在這里插入圖片描述
DFA,完成了!

ε-NFA

ε-NFA 允許通過空字符,即 ε 來轉移到新的狀態,

在這里插入圖片描述

對于 ε-NFA,可以對其進行空拓展,將其轉為一般的 NFA,因為接收到輸入字符 a,也可以認為是接收到 aε,aεε,εεa,εa,即多個空字符!而且空字符可以任意地組合在有效字符 a 的前綴或者后綴,

空拓展可以通過 ε 來轉移到任意狀態,只要 NFA 有對應的邊就允許任意輸入字符沿著這些 ε 的邊進行轉移,最終達到一個閉包(即聯通分量),下圖展示了如何構建一個拓展的空閉包:

在這里插入圖片描述
其實就是做了一次特殊的 dfs,只要遇到 ε 邊,都無腦去搜它就好了,至此,ε-NFA 也可以轉為普通的 NFA 了,因為普通 NFA 沒有 ε 輸入,我們只需要考慮正常的輸入,進行 NFA 狀態轉移(邊)的構造,

如下圖綠色部分所示,這些是我們關心的狀態轉移:

在這里插入圖片描述

正則運算式

注:
這個不是一般編程的正則運算式

正則運算式和文法類似,都是生成串的形式語言,正則運算式主要的操作有三個,分別是加法,連接和閉包,

加法能夠將兩個東西并行地聯系起來,如果用集合來表示,就是并集,比如:

( 0 + 1 ) ? 表 示 的 語 言 為 { 0 , 1 } \ \\ (0+1) \stackrel{表示的語言為}{\longrightarrow} \{0, 1\} \ \\ (0+1)??{0,1}

通過 0 和 1 取并,生成的語言為 {0, 1},

然后是連接(或者拼接?)連接運算則是按照順序將兩個運算式產生的串拼接起來,比如:

( 01 ) ? 表 示 的 語 言 為 { 01 } \ \\ (01) \stackrel{表示的語言為}{\longrightarrow} \{01\} \ \\ (01)??{01}

那么最終表示的語言就只有 01 一個串了,注意順序!

最后是閉包運算,閉包運算允許我們任意地將集合內的元素自由組合,比如:

( 01 ) ? ? 表 示 的 語 言 為 { 0 , 1 } ? \ \\ (01)^* \stackrel{表示的語言為}{\longrightarrow} \{0,1\} ^* \ \\ (01)???{0,1}?

最后貼一張定義:
在這里插入圖片描述

對應到自動機上,三種規則的構圖如下:

  1. 如果是 + 運算,那么分為兩個分支進行接收
  2. 如果是拼接運算,那么按照順序進行接收
  3. 如果是閉包運算,通過環路進行重復接收

下面來看一個例子:

在這里插入圖片描述
在這里插入圖片描述

圖上作業法

圖上作業法用于將一個自動機轉換為正則運算式,換句話說,可以通過該方法查找出該自動機接收的串的正則運算式,

圖上作業法的核心就算通過消除節點,來產生運算式,比如我們消除下圖的 q2 節點,因為我們可以從 q1 通過正則運算式一步到 q3,

因此 q1 到 q3 的程序被我們描述為正則運算式,并且形成一條邊,我們對 q2 的每個入度節點都要進行同樣的操作(即連接 q2 的入節點和出節點),如下圖:
在這里插入圖片描述
事實上一次完整的圖上作業法,第一步應該是虛擬起點和終點,將一個虛擬原點 X 通過空字符 ε 轉移到初始狀態,此外,將所有的接收狀態通過 ε 引導到虛擬終點 Y,如下圖:

在這里插入圖片描述
通過消去 q2 節點,我們得到:

在這里插入圖片描述
接著消去 q3 和 q4,這里我們得到兩條邊,我們可以通過加法合并他們:

在這里插入圖片描述
最后消去 q1,得到最終的運算式:

在這里插入圖片描述

泵引理

通過泵引理判斷一個語言是否是正則語言,思路是反證法,

如果有 n 個狀態,接收的串卻長度大于 n,那么自動機(圖)中必有環路,

先假設它是正則語言,我們沿著環路重復走 i 次,其中 i 可以是任意正整數,如果找到某個 i 使得該語言不被接收,那么就和假設矛盾,該語言就不是正則語言!

在這里插入圖片描述
比如證明語言:

{ 0 n 1 n ∣ n ≥ 1 } \{0^n1^n \mid n \ge 1 \} {0n1nn1}
不是正則語言,通過泵引理的思路如下:

在這里插入圖片描述
注:泵引理只能判斷某個東西不是正則語言,不能判斷它是正則語言,,,

極小化 DFA 演算法

DFA 中可能存在冗余的狀態,比如:
在這里插入圖片描述
明明都是兩條一樣的路,你偏要分開來,于是 DFA 的極小化演算法就算為了解決冗余的 DFA 而生,


首先定義一種狀態:可區分,什么是可區分呢?接收相同的輸入,卻去到了不同的狀態,

比如下圖,q2 q3 接收 0,一個去到了接收狀態,一個去了非接收狀態,那么 q2,q3 可區分,因為他們有截然不同的特征:

在這里插入圖片描述

此外,如果接收同樣的輸入,卻去到了兩個【可區分】的狀態,那么這兩個狀態同樣可區分,比如下圖,q0,q1 接收 1,去到了可區分的 q2,q3,那么 q0,q1 同樣是可區分的:

在這里插入圖片描述

注意對所有的接收字符,都要進行判斷,才能判斷兩個狀態是否可區分,同時這個判斷是遞回進行的,

因為有時接收相同的輸入,獲得一組新的狀態對 qi,qj 我們往往不知道他兩是否可區分,于是問題轉變為求 qi,qj 是否可區分,這就是遞回!

此外,如果接收相同的輸入,去到了相同的狀態,那么他們不可區分,這意味著他們是等價的:

在這里插入圖片描述
弄明白了啥可區分,不可區分,就可以開始進行演算法了!


演算法如下,首先準備一張可區分表,此外,可區分是相對的,ab 可區分意味著 ba 可區分,所以表的有效部分為上三角:

在這里插入圖片描述
首先進行初始化,已知狀態對 qi,qj 其中 qi 是接收狀態,而 qj 不是接收狀態,那么他們可區分,

  • {q0, q1} 接收 1 時,前者去到接收狀態 {q2, q3},而 q5 接收 1 去到非接收狀態 q5,于是 q0, q5 與 q1, q5 可區分
  • {q2, q3, q4} 接收 1 時都去到非接受狀態 q5,而 {q0, q1} 接收 1 去到接收狀態 {q2, q3},于是他們的 6 個組合,都可區分
  • {q2,q3,q4} 接收 0 去到接收狀態 q4,而 q5 接收 0 去到非接收狀態 q5,于是他們的三種組合都可區分

根據上面三個判斷,我們可以輕易地畫出初始化的表格:
在這里插入圖片描述

此外,如果接收到同一個輸入,去到了相同的狀態,那么他們不可區分(他們等價),于是有:

  • {q2, q3, q4} 接收 0 都去到 q4,接收 1 都去到 q5,于是 q2, q3, q4 都不可區分

通過下圖話 × 部分可以表示他們不可區分:
在這里插入圖片描述

然后遍歷表的每一項空缺,并且試圖利用遞回法判斷該狀態對是否可區分,這里只用判斷 q0,q1 是否可區分,

因為 q0,q1 接收 1 能夠到達 {q2, q3} 根據遞回,問題轉換為求 q2,q3 是否可區分!從表中看出他們不可區分,于是有:

在這里插入圖片描述
那么有:

  1. [q0, q1] 不可區分
  2. [q2, q3, q4] 不可區分

于是將原來的自動機(圖),根據狀態(節點)之間是否可區分,將圖劃分為三個連通分支,分別是:

[ q 0 , q 1 ] , [ q 2 , q 3 , q 4 ] , [ q 5 ] [q_0, q_1], \ [q_2, q_3,q_4], \ [q_5] [q0?,q1?], [q2?,q3?,q4?], [q5?]

極小化后的 DFA 將一個連通分支視為單獨的狀態(或者說節點),根據節點進行轉移,于是可以得出極小化后的 DFA:

在這里插入圖片描述

FA 交集

前面在提及正則運算式的時候,我們可以通過加法(或者說兩個單獨的分支)來實作 FA 的并操作,這里以一道例題說明如何實作 FA 的交操作:

在這里插入圖片描述
這里其實 1 不用管,因為滿足 2,3 自然滿足 1,根據 DFA 交集,我們首先構造滿足 2 和 3 的 DFA:

在這里插入圖片描述

緊接著取交集,從起始狀態開始,我們將 1 和 3 狀態合一,

  • 在左邊的自動機中,狀態 1 接收到 1,轉移到狀態 1
  • 在右邊的自動機中,狀態 3 接收到 1,轉移到狀態 4

于是我們起始狀態為 13,在接收 1 后,狀態轉變為 14 了!對于其他的狀態組合和輸入組合如法炮制,最終得到如下的 DFA:

在這里插入圖片描述

CFG,二義性與其化簡

CFG,context-free grammar 又名背景關系 免費 無關文法,是文法的一種特殊,它的定義是這樣的,對于文法:

G = ( V , T , P , S ) G = (V, T, P, S) G=(V,T,P,S)

的產生式 P,除了 A → ε 的這種空產生式之外:

對 于 任 意 產 生 式 : ? α → β 對于任意產生式:\forall \alpha \rightarrow \beta \\ ?αβ

產生的結果 β 都有如下規律:

∣ β ∣ ≥ ∣ α ∣ 且 β ∈ V |\beta| \ge |\alpha| \ 且 \ \beta ∈ V βα βV

意義就是對于任意的 A ∈ V,如果有產生式 A→B,無論 A 出現在什么位置,都可以通過將 A 替換成 B,而無需考慮 A 的背景關系,


CFG 可以通過派生樹來表示句子的生成程序,

在這里插入圖片描述

可以看作是一顆樹,生成樹,通過先序遍歷其所有葉子節點以獲取最終生成的句子,此外,一個句子可能有不同的生成樹,這叫做 二義性


CFG 可以被化簡,因為盡管一個文法符合 CFG 的標準,但是其任然存在一些無關的東西,化簡 CFG 的演算法通常分為兩個步驟:

  1. 去除無法終止的變數
  2. 去除無法到達的變數

而且這二者的順序不可交換!證明程序略,

演算法聽起來有點抽象,那么什么叫無法終止的變數呢?就是無法派生出終極符的變數,比如下面的文法中的 A 變數:

G = ( { A , B } , { a , b , c } , { A → a A } , A ) G = (\{A,B\}, \{a,b,c\}, \{A \rightarrow aA \}, A) G=({A,B},{a,b,c},{AaA},A)

可以看到 A 變數能夠生成 aA,但是無法終止,因為無論怎么生成,A 都消不掉,即無限遞回,此外,如果產生式中沒有出現的變數,比如上面文法的 B 變數就沒有產生式,這表示一旦有一個 B,文法就會 ”卡死“,因為找不到 B 的產生式!

值得注意的是,一旦發現一個不可消去的變數 X,就要 “順藤摸瓜” 地回溯,找到所有產生 X 的變數,并且這些產生 X 的變數也是不可消去的,

如圖,還沒消去的情況,因為 B 消除不掉,我們順藤摸瓜,將 S→BB ,S→AB, C→ABa 也標記為無法終結的產生式:
在這里插入圖片描述

紅色的葉子表示不可終結的變數 B,我們待消去的產生式如下:

S → A B S → B B C → A B a S \rightarrow AB \\ S \rightarrow BB \\ C \rightarrow ABa \\ SABSBBCABa

消去無法終結的產生式之后的派生:

在這里插入圖片描述

這里就來到了第二步:消除到達不了的變數,可以看到從 S 變數除法,無法到達 A,B 所以 A B 要被消去,消去之后的文法如下:

在這里插入圖片描述
至此,CFG 化簡完成,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/249855.html

標籤:AI

上一篇:【ArcGIS風暴】ArcGIS平臺實作中國地表覆寫資料GlobeLand30預處理(批量投影、拼接、掩膜提取)

下一篇:震驚!2021年數十個技術領域圖譜曝光,包含Golang、區塊鏈、人工智能、架構師等領域學習路線

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more