第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何確定數(shù)字是否為正則表達(dá)式的質(zhì)數(shù)?

如何確定數(shù)字是否為正則表達(dá)式的質(zhì)數(shù)?

翻閱古今 2019-11-22 12:51:39
我在RosettaCode上找到了以下Java代碼示例:public static boolean prime(int n) {  return !new String(new char[n]).matches(".?|(..+?)\\1+");}我不是特別了解Java,但除了正則表達(dá)式本身以外,都了解此代碼段的所有方面當(dāng)您在內(nèi)置的PHP函數(shù)中找到它時(shí),我對(duì)Regex有基本的基礎(chǔ)知識(shí)。.?|(..+?)\\1+素?cái)?shù)如何匹配?
查看完整描述

3 回答

?
鴻蒙傳說(shuō)

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

您說(shuō)您了解這部分,但是為了強(qiáng)調(diào),生成的字符串的長(zhǎng)度等于提供的數(shù)字。因此,當(dāng)且僅當(dāng)字符串包含三個(gè)字符n == 3。


.?

正則表達(dá)式的第一部分說(shuō):“任何字符,零次或一次”。因此,基本上有零個(gè)或一個(gè)字符-或,按照我上面提到的,n == 0 || n == 1。如果我們有匹配項(xiàng),則返回該否定項(xiàng)。這與零和一不是質(zhì)數(shù)這一事實(shí)相對(duì)應(yīng)。


(..+?)\\1+

正則表達(dá)式的第二部分有些麻煩,它依賴(lài)于組和反向引用。組是括號(hào)內(nèi)的任何內(nèi)容,然后將由正則表達(dá)式引擎捕獲并存儲(chǔ)以供以后使用。反向引用是一個(gè)匹配的組,稍后將在同一正則表達(dá)式中使用。


該組捕獲1個(gè)字符,然后捕獲1個(gè)或更多字符。(+字符表示一個(gè)或多個(gè),但僅表示前一個(gè)字符或組。因此,這不是“兩個(gè)或四個(gè)或六個(gè)等字符”,而是“兩個(gè)或三個(gè)等。” +?類(lèi)似于+,但是它會(huì)嘗試匹配盡可能少的字符。+通常會(huì)嘗試對(duì)整個(gè)字符串進(jìn)行吞噬,這在這種情況下很糟糕,因?yàn)檫@會(huì)阻止反向引用部分正常工作。)


下一部分是反向引用:同一組字符(兩個(gè)或更多)再次出現(xiàn)。所述反向引用出現(xiàn)一次或多次。


所以。捕獲的組對(duì)應(yīng)于捕獲的自然字符數(shù)(從2開(kāi)始)。該組然后出現(xiàn)一些自然的次數(shù)(也從2開(kāi)始)。如果存在匹配項(xiàng),則意味著可以找到兩個(gè)大于或等于2的數(shù)字的乘積,該兩個(gè)數(shù)字與n長(zhǎng)度的字符串匹配……意味著您有一個(gè)復(fù)合n。再次返回成功匹配的否定:n不是素?cái)?shù)。


如果找不到匹配項(xiàng),那么您將無(wú)法得出兩個(gè)大于或等于2的自然數(shù)的乘積...并且您同時(shí)具有不匹配項(xiàng)和素?cái)?shù),因此再次返回否定項(xiàng)比賽結(jié)果。


你現(xiàn)在看到了嗎?這真是令人難以置信的棘手(而且計(jì)算量很大?。且坏┇@得它,它同時(shí)也很簡(jiǎn)單。:-)


如果您還有其他問(wèn)題,例如正則表達(dá)式解析的實(shí)際工作方式,我可以詳細(xì)說(shuō)明。但是我現(xiàn)在試圖使這個(gè)答案簡(jiǎn)單(或盡可能簡(jiǎn)單)。


查看完整回答
反對(duì) 回復(fù) 2019-11-22
?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊

不錯(cuò)的正則表達(dá)式技巧(盡管效率很低)... :)

正則表達(dá)式對(duì)非素?cái)?shù)的定義如下:

當(dāng)且僅當(dāng)N <= 1或N被K> 1整除時(shí),N不是素?cái)?shù)。

與其傳遞N的簡(jiǎn)單數(shù)字表示形式到正則表達(dá)式引擎,不如給它提供長(zhǎng)度為 N 的序列,該序列由重復(fù)字符組成。析取的第一部分檢查N = 0或N = 1,第二部分使用后向引用尋找除數(shù)K> 1。它迫使正則表達(dá)式引擎找到一些可以重復(fù)至少兩次以形成序列的非空子序列。如果存在這樣的子序列,則意味著其長(zhǎng)度除以N,因此N不是素?cái)?shù)。


查看完整回答
反對(duì) 回復(fù) 2019-11-22
  • 3 回答
  • 0 關(guān)注
  • 731 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)