亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > regex > 正文

檢查素數的正則表達式分享

2020-01-20 22:16:45
字體:
來源:轉載
供稿:網友
這個正則表達式如入所示:

檢查素數與否的正則表達式

要使用這個正規則表達式,你需要把自然數轉成多個1的字符串,如:2 要寫成 “11”, 3 要寫成 “111”, 17 要寫成“11111111111111111”,這種工作使用一些腳本語言可以輕松的完成。

一開始我對這個表達式持懷疑態度,但仔細研究了一下這個表達式,發現是非常合理的,下面,讓我帶你來細細剖析一下是這個表達式的工作原理。

首先,我們看到這個表達式中有“|”,也就是說這個表達式可以分成兩個部分:/^1?$/ 和 /^(11+?)/1+$/

  • 第一部分:/^1?$/, 這個部分相信不用我多說了,其表示匹配“空串”以及字串中只有一個“1”的字符串。
  • 第二部分:/^(11+?)/1+$/,這個部分是整個表達式的關鍵部分。其可以分成兩個部分,(11+?)/1+$,前半部很簡單了,匹配以“11”開頭的并重復0或n個1的字符串,后面的部分意思是把前半部分作為一個字串去匹配還剩下的字符串1次或多次(這句話的意思是――剩余的字串的1的個數要是前面字串1個數的整數倍)。

可見這個正規則表達式是取非素數,要得到素數還得要對整個表達式求反。通過上面的分析,我們知道,第二部分是最重要的,對于第二部分,舉幾個例子,

示例一:判斷自然數8。我們可以知道,8轉成我們的格式就是“11111111”,對于(11+?),其匹配了“11”,于是還剩下“111111”,而/1+$正好匹配了剩下的“111111”,因為,“11”這個模式在“111111”出現了三次,符合模式匹配,返回true。所以,匹配成功,于是這個數不是質數。

示例二:判斷自然數11。轉成我們需要的格式是“11111111111”(十一個1),對于(11+?),其匹配了“11”(前兩個1),還剩下“111111111”(九個1),而/1+$無法為“11”匹配那“九個1”,因為“11”這個模式并沒有在“九個1”這個串中正好出現N次。于是,我們的正則表達式引擎會嘗試下一種方法,先匹配“111”(前三個1),然后把“111”作為模式去匹配剩下的“11111111”(八個1),很明顯,那“八個1”并沒有匹配“三個1”多次。所以,引擎會繼續向下嘗試……直至嘗試所有可能都無法匹配成功。所以11是素數。

通過示例二,我們可以得到這樣的等價數算算法,正則表達式會匹配這若干個1中有沒有出現“二個1”的整數倍,“三個1”的整數倍,“四個1”的整數倍……,而,這正好是我們需要的算素數的算法?,F在大家明白了吧。

下面,我們用perl來使用這個正規則表達式不停地輸出素數:(關于perl的語法我就不多說了,請注意表達式前的取反操作符)

perl -e'$|++;(1 x$_)!~/^1?$|^(11+?)/1+$/&&print"$_ "while ++$_'

另外,讓我們來舉一反三,根據上述的這種方法,我們甚至可以用正則表達式來求證某方式是否有解,如:

  • 二元方程:17x + 12y = 51   判斷其是否有解的正則表達式是:^(.*)/1{16}(.*)/2{11}$
  • 三元方程:11x + 2y + 5z = 115 判斷其是否有解的正則表達式是:^(.*)/1{10}(.*)/2{1}(.*)/3{4}$

大家不妨自己做做練習,為什么上述的兩個正則表達式可以判斷方程是否有解。如果無法參透其中的奧妙的話,你可以讀讀這篇英文文章。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品乱码久久久久久金桔影视| 91色视频在线观看| 俺去了亚洲欧美日韩| 91精品国产91久久久久久| 九九热精品视频国产| 欧美xxxx18国产| 欧美在线免费视频| 少妇精69xxtheporn| 久久免费国产精品1| 91成人福利在线| 在线观看免费高清视频97| 久久久av亚洲男天堂| 久久99久国产精品黄毛片入口| 免费97视频在线精品国自产拍| 久久久久久久久久久网站| 国产aⅴ夜夜欢一区二区三区| 欧美成人三级视频网站| 日韩中文在线中文网三级| 亚洲日本欧美中文幕| 成人中心免费视频| 午夜免费日韩视频| 米奇精品一区二区三区在线观看| 精品国产福利在线| 国产精品美女呻吟| 日韩免费在线电影| 日韩精品免费在线观看| 国产69精品久久久久9999| 国产免费一区二区三区在线能观看| 国产精品一区二区久久国产| 国产精品久久久久久久久久久新郎| 九九九久久久久久| 亚洲美女中文字幕| 成人网欧美在线视频| 国外日韩电影在线观看| 2019最新中文字幕| 菠萝蜜影院一区二区免费| 97在线视频精品| 国产精品免费久久久| 欧美国产日产韩国视频| 欧美成人免费在线视频| 操人视频在线观看欧美| 亚洲伊人一本大道中文字幕| 欧美日本高清视频| 久久久久久久久国产精品| 韩国福利视频一区| 在线日韩第一页| 久久精品人人做人人爽| 国产成+人+综合+亚洲欧美丁香花| 欧美成年人网站| 国产精品亚洲激情| 精品综合久久久久久97| 久久久国产精品视频| 亚洲一区二区黄| 日韩av中文字幕在线| 亚洲国产精品一区二区久| 日韩精品免费综合视频在线播放| 日韩精品免费在线视频观看| 一区二区福利视频| 欧美激情2020午夜免费观看| 亚洲欧洲在线看| 欧美日韩在线视频观看| 一区二区在线视频播放| www.欧美精品一二三区| 久久综合88中文色鬼| 欧美激情乱人伦一区| 91豆花精品一区| 欧美日韩美女在线| 国产精品福利在线观看| 97国产精品免费视频| 日韩经典一区二区三区| 日韩国产精品亚洲а∨天堂免| 成人夜晚看av| 91精品视频在线免费观看| 性欧美在线看片a免费观看| 欧美成aaa人片免费看| 韩国国内大量揄拍精品视频| 中文字幕欧美在线| 色综合久久88色综合天天看泰| 国产午夜精品视频免费不卡69堂| 久久久亚洲影院| 成人精品一区二区三区电影黑人| 亚洲最新视频在线| 亚洲女人被黑人巨大进入al| 亚洲福利视频久久| 久久久999精品免费| 亚洲一区二区三区毛片| 国产精品欧美风情| 亚洲性夜色噜噜噜7777| www.日韩视频| 欧美激情a∨在线视频播放| 草民午夜欧美限制a级福利片| 欧美日本精品在线| 俺去了亚洲欧美日韩| 亚洲xxxxx| 中文字幕免费国产精品| www.日本久久久久com.| 亚洲综合精品伊人久久| 亚洲精品国产欧美| 国产精品视频自拍| 国产成人精品免高潮费视频| 在线精品国产欧美| 久热精品视频在线免费观看| 亚洲精品美女免费| 欧美日韩国产999| 亚州av一区二区| 国产精品v日韩精品| 久久久久一本一区二区青青蜜月| 欧美性xxxxxx| 日韩高清免费在线| 亚洲人成电影在线播放| 影音先锋欧美精品| 亚洲成色777777在线观看影院| 91理论片午午论夜理片久久| 亚洲一区二区三区成人在线视频精品| 日韩精品视频免费专区在线播放| 久久精品美女视频网站| 日韩在线免费视频| 国产欧美一区二区三区久久| 日韩一中文字幕| 欧美日韩国产在线播放| 国产成人精品在线播放| 欧美国产日韩xxxxx| 91欧美精品成人综合在线观看| 亚洲黄页视频免费观看| 亚洲性无码av在线| 久久久久久噜噜噜久久久精品| 精品中文字幕在线观看| 国产精品一区二区在线| 欧美日韩中文在线观看| 日韩久久精品电影| 97久久精品人搡人人玩| 最近2019中文字幕在线高清| 黑丝美女久久久| 日韩欧美国产免费播放| 日韩在线视频中文字幕| www.日韩系列| 粉嫩老牛aⅴ一区二区三区| 国模gogo一区二区大胆私拍| 欧美成人三级视频网站| 亚洲免费精彩视频| 久久精品99久久香蕉国产色戒| 欧美色播在线播放| 97在线视频精品| 亚洲高清av在线| 日韩av大片免费看| 国产成人精品免高潮费视频| 亚洲第一视频网| 中文字幕亚洲在线| 久久青草精品视频免费观看| 国产精品久久久久久久9999| 日韩在线观看免费高清完整版| 亚洲视频自拍偷拍| 国产日本欧美在线观看| 欧美激情xxxxx| 中文国产成人精品| 日韩经典中文字幕在线观看| 久久精品亚洲国产| 91精品久久久久久久久中文字幕| 国产69久久精品成人| 欧美在线日韩在线| 久久久91精品国产| 欧美一区二区三区免费观看| 国语自产精品视频在免费| 欧美成人精品激情在线观看|