欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mid函數(shù)python mid函數(shù)提取年月日格式為年月日

#Python干貨#python實(shí)現(xiàn)——最優(yōu)化算法

函數(shù)詳見(jiàn)rres,此代碼使該算法運(yùn)行了兩次

創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作,網(wǎng)頁(yè)設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);可快速的進(jìn)行網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,是專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

收獲:

這是我第一個(gè)實(shí)現(xiàn)的代碼。學(xué)習(xí)完該算法以后,邏輯框架基本上就有了,剩下需要明確的就是對(duì)應(yīng)的python的語(yǔ)言。于是我就開(kāi)始了查找“如何定義函數(shù)”(詳見(jiàn)mofan的優(yōu)酷),“循環(huán)體”和“if條件語(yǔ)句”的格式()“數(shù)學(xué)符號(hào)”(詳見(jiàn)mofan的優(yōu)酷),以及print的使用

1.def是python中指定義,一般用來(lái)定義函數(shù),如果需要深度學(xué)習(xí)搭建網(wǎng)絡(luò)可用來(lái)定義網(wǎng)絡(luò)。值得注意的一點(diǎn)是

我不清楚為什么,但是如果沒(méi)有加的話(huà),那個(gè)函數(shù)公式就是一個(gè)花瓶,就像一個(gè)結(jié)果輸不出去。

2.最坑的就是邏輯。一開(kāi)始邏輯沒(méi)理清楚,或者說(shuō)在代碼上有疏漏,導(dǎo)致我將left和right放在了循環(huán)體里,結(jié)果可想而知。不過(guò)也是因?yàn)檫@個(gè)錯(cuò)誤,我知道pycharm中的debug怎么用,挺簡(jiǎn)單的,百度一下就出來(lái)了。

3.不知道什么原因,看的莫煩視頻中的print多個(gè)變量一起輸出是沒(méi)有辦法在我的pycharm中使用的,出來(lái)的結(jié)果很奇怪。可能是因?yàn)槲沂莣in10不是ios吧。print如果多個(gè)變量一起輸出必須是print("名字:%s,名字2:%s"%(a,b))結(jié)果輸出就是名字:a ,名字2:b

關(guān)于python中數(shù)據(jù)變量。第一遍運(yùn)行結(jié)果出現(xiàn)很明顯不對(duì),于是我采用了debug。結(jié)果發(fā)現(xiàn),mid1處一直為1而不是1.5,于是就開(kāi)始了解數(shù)據(jù)變量。起初我猜測(cè)python默認(rèn)所有變量為整型,但是根據(jù)二分法的結(jié)果我意識(shí)到此猜測(cè)不對(duì),所以要改整個(gè)file的變量格式?jīng)]有必要。所以我就在mid1式子前面加了一個(gè)float,結(jié)果就顯示為1.5了。但是如果我將整個(gè)式子用()括起來(lái),前面加float,結(jié)果還是1。我不太理解為什么。不過(guò)我知道了python的數(shù)據(jù)格式是根據(jù)輸入量決定的,也就是說(shuō)你的輸入量如果是整型,那么與其直接相關(guān)的計(jì)算輸出結(jié)果一定是整型,而且還是不采用進(jìn)位的整型。在我沒(méi)有采用+float/+.0這兩種方法之前,mid1~3全部是整型。

或者不再mid1前面加float,直接將輸入量后面點(diǎn)個(gè)點(diǎn)就行

真的很想吐槽一下print,好麻煩啊啊啊啊每次都得弄個(gè)%s,而且有時(shí)候還不能放一起?。。。?/p>

不要問(wèn)我掌握了什么,要問(wèn)我現(xiàn)在寫(xiě)完這個(gè)代碼后有多么的愛(ài)python的精度表示 :-)我決定以后只要再編寫(xiě)數(shù)學(xué)公式的代碼都將輸入量的小數(shù)學(xué)點(diǎn)后面補(bǔ)很多0

fibonacci函數(shù)定義,每次debug后我的手都是抖的O( _ )O~

不知道自己什么時(shí)候有的強(qiáng)迫癥,只要是代碼下面有“~”我就必須要消掉。笑哭。這個(gè)很簡(jiǎn)單,前四個(gè)除了費(fèi)波納茨,都很簡(jiǎn)單。

這個(gè)公式看起來(lái)很麻煩,便寫(xiě)的時(shí)候更要謹(jǐn)慎。我上回把那個(gè)2擱在了分號(hào)下面,結(jié)果很大,所以還是換算成0.5更好(PS:勿忘那長(zhǎng)河般的0)。

雖然代碼很長(zhǎng),但是主要是因?yàn)閜rint太多。本打算在開(kāi)頭print,最后結(jié)果會(huì)漏掉最后一部分。懶得想其他辦法了,直接就這樣吧

一開(kāi)始while里面寫(xiě)成了,導(dǎo)致run不出來(lái)。繼而,debug也沒(méi)法用。在網(wǎng)上一查才知道 “沒(méi)聯(lián)網(wǎng)”+“沒(méi)選斷點(diǎn)”。最后想嘗試將else里面的內(nèi)容輸出來(lái),結(jié)果發(fā)現(xiàn)run以后被刷屏了。于是改成i7以后還是不行,于是想著加一個(gè)break跳出循環(huán),結(jié)果成效了。

然后剛剛由debug了一下,才知道原來(lái)是i+1在if里面,因?yàn)闆](méi)有辦法+1,所以i=6一直存在,就不斷循環(huán)。因?yàn)榧觔reak也好,i+1也好,都可以。

這是我第一組自己實(shí)現(xiàn)的python代碼,就是數(shù)學(xué)公式用python語(yǔ)言組裝起來(lái)。剛開(kāi)始的時(shí)候知道大概需要在語(yǔ)言中體現(xiàn)什么,但不太清楚。于是我就在網(wǎng)上找了幾個(gè)二分法的,他們都各有不同,但框架都差不多,不過(guò)如果要用到我們的那個(gè)公式里還需要改變很多。然后我就開(kāi)始分析我們的題,我發(fā)現(xiàn)大體需要兩部分,一部分函數(shù)定義,一部分循環(huán)體。但我不知道如何定義函數(shù),如何寫(xiě)數(shù)學(xué)公式,如何弄變量,也就是說(shuō)一些小點(diǎn)不太會(huì),所以我選擇直接百度。因?yàn)槲抑雷约洪喿x的能力不錯(cuò),相比于從視頻中提取要素,我更擅長(zhǎng)通過(guò)閱讀獲得要點(diǎn)。有目的性地找知識(shí)點(diǎn),掌握地更牢固。

于是我就開(kāi)始了第一個(gè)——二分法的編寫(xiě)。我發(fā)現(xiàn),自己出現(xiàn)了很多錯(cuò)誤而且有很多地方都很基礎(chǔ)。但我依然沒(méi)選擇視頻,而是將這些問(wèn)題直接在百度上找,因?yàn)橐曨l講完或許你也沒(méi)找到點(diǎn)。當(dāng)然,這是一步一步走的,不是直接就將程序擺上去,一點(diǎn)一點(diǎn)改。

隨著前兩個(gè)的成功,我發(fā)現(xiàn)自己對(duì)于這些代碼有了自信,似乎看透了他們的偽裝,抓住了本質(zhì)。除此之外,我還意識(shí)到自己自從8月份以后,學(xué)習(xí)能力似乎提高了不少,而且有了更為有效的學(xué)習(xí)方法。各方面都有了一定的覺(jué)醒。除了第一個(gè)找了幾個(gè)牛頭不對(duì)馬嘴的代碼,其他都是根據(jù)自己的邏輯寫(xiě),邏輯通下來(lái)以后,對(duì)應(yīng)語(yǔ)言中某一部分不知道如何翻譯就去百度,其實(shí)這幾個(gè)套路都一樣或者說(shuō)數(shù)學(xué)公式轉(zhuǎn)化的套路都一樣。

我還意識(shí)到,匯編其實(shí)是最難的語(yǔ)言,目前為止所學(xué)到的,因?yàn)楹芏喽夹枰约喝ザx,去死摳,需要記住大量的指令且不能靈活變通。但是其他的卻只需要將一些對(duì)應(yīng)的記下來(lái)就好。python真的挺簡(jiǎn)單的。而且,我發(fā)現(xiàn)自己今天似乎打開(kāi)了新世界的大門(mén),我愛(ài)上了這種充滿(mǎn)了靈性的東西,充滿(mǎn)了嚴(yán)謹(jǐn)?shù)拿利悾€有那未知的變化,我發(fā)現(xiàn)我似乎愛(ài)上了代碼。可能不僅僅局限于python,這些語(yǔ)言都充滿(mǎn)了挑戰(zhàn)性。我覺(jué)得當(dāng)你疑惑的時(shí)候,就需要相信直覺(jué),至少我發(fā)現(xiàn)它很準(zhǔn)

python身份證號(hào)換成***

最近工作中剛好要清洗一批客戶(hù)數(shù)據(jù),涉及到身份證號(hào)碼15位和18位的轉(zhuǎn)換,特意研究了下,在這里分享下。

身份證號(hào)碼的構(gòu)成

既然談到了身份證轉(zhuǎn)換,那就需要先了解下證件號(hào)碼的構(gòu)成。

公民身份號(hào)碼是特征組合碼,由 十七位數(shù)字本體碼 和 一位數(shù)字校驗(yàn)碼 組成;

排列順序從左至右依次為:六位數(shù)字地址碼,八位數(shù)字出生日期碼,三位數(shù)字順序碼和一位數(shù)字校驗(yàn)碼。

六位數(shù)字地址碼:表示編碼對(duì)象常住戶(hù)口所在縣(市、旗、區(qū))的行政區(qū)劃代碼,按GB/T 2260 的規(guī)定執(zhí)行。

八位數(shù)字出生日期碼:表示編碼對(duì)象出生的年、月、日,按 GB/T 7408 的規(guī)定執(zhí)行。年、月、日代碼之間不用分隔符。某人出生日期為 1995年08月12日,其出生日期碼為 19950812。

三位順序碼:表示在同一地址碼所標(biāo)識(shí)的區(qū)域范圍內(nèi),對(duì)同年、同月、同日出生的人編定的順序號(hào),順序碼的奇數(shù)分配給男性,偶數(shù)分配給女性。

一位校驗(yàn)碼:校驗(yàn)碼按照 ISO 7064:1983.MOD 11-2校驗(yàn)碼計(jì)算出來(lái)的檢驗(yàn)碼。

校驗(yàn)碼計(jì)算方法

1、將前面的身份證號(hào)碼17位數(shù)分別乘以不同的系數(shù)。從第一位到第十七位的系數(shù)分別為: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 ;

2、將這17位數(shù)字和系數(shù)相乘的結(jié)果相加;

3、用加出來(lái)和除以11,看余數(shù)是多少;

4、余數(shù)只可能有0 1 2 3 4 5 6 7 8 9 10這11個(gè)數(shù)字。其分別對(duì)應(yīng)的最后一位身份證的號(hào)碼為 1 0 X 9 8 7 6 5 4 3 2 ;

5、通過(guò)上面得知如果余數(shù)是2,就會(huì)在身份證的第18位數(shù)字上出現(xiàn)羅馬數(shù)字的X。

解決思路

15位轉(zhuǎn)18位:即身份證號(hào)碼的前六位數(shù)字+ '19' + 身份證第六位以后的數(shù)字 + 校驗(yàn)碼

(不要問(wèn)我為什么加19這種白癡(′⊙ω⊙`) @?¥?的問(wèn)題,當(dāng)然是因?yàn)橹挥?9世紀(jì)的人才可能擁有15位的身份證號(hào)啦)

校驗(yàn)碼計(jì)算方法就更簡(jiǎn)單了,將這17位數(shù)字和系數(shù)相乘的結(jié)果相加除以11匹配余數(shù)對(duì)應(yīng)的號(hào)碼即可。

注意:代碼中我用了幾個(gè)變量,在這里拆解講解下。

Ai: 表示第i位置上的身份證號(hào)碼數(shù)字值 Wi: 表示第i位置上的加權(quán)因子 Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

十七位數(shù)字本體碼加權(quán)求和公式: S = Sum(AiWi), i = 0, … , 16 ,先對(duì)前17位數(shù)字的權(quán)求和

計(jì)算模 Y = mod(S, 11)

通過(guò)模得到對(duì)應(yīng)的校驗(yàn)碼

Y: 0 1 2 3 4 5 6 7 8 9 10

校驗(yàn)碼: 1 0 X 9 8 7 6 5 4 3 2

OK,分析的差不多了,直接看代碼。

怎么用代碼實(shí)現(xiàn)?

# encoding: utf-8

"""

CREATED ON 19-11-05

@AUTHOR: XUSL

"""

WI = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1, ]

VI = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2, ]

DEF GET_VERITY(EIGHTEEN_CARD):

"""

:PARAM EIGHTEEN_CARD:

:RETURN:

"""

AI = []

REMAINING = ''

IF LEN(EIGHTEEN_CARD) == 18:

EIGHTEEN_CARD = EIGHTEEN_CARD[0:-1]

IF LEN(EIGHTEEN_CARD) == 17:

S = 0

FOR I IN EIGHTEEN_CARD:

AI.APPEND(INT(I))

FOR I IN RANGE(17):

S = S + WI[I] * AI[I]

REMAINING = S % 11

RETURN 'X' IF REMAINING == 2 ELSE STR(VI[REMAINING])

DEF UP_TO_EIGHTEEN(FIFTEEN_CARD):

"""

15位轉(zhuǎn)18位

:PARAM FIFTEEN_CARD:

:RETURN:

"""

EIGHTEEN_CARD = FIFTEEN_CARD[0:6] + '19' + FIFTEEN_CARD[6:15]

RETURN EIGHTEEN_CARD + GET_VERITY(EIGHTEEN_CARD)

DEF DOWN_TO_FIFTEEN(EIGHTEEN_CARD):

"""

18位轉(zhuǎn)15位

:PARAM EIGHTEEN_CARD:

:RETURN:

"""

RETURN EIGHTEEN_CARD[0:6] + EIGHTEEN_CARD[8:17]

IF __NAME__ == '__MAIN__':

# 15位轉(zhuǎn)18位

CARD_1 = UP_TO_EIGHTEEN('632123820927051')

PRINT(CARD_1)

# 18位轉(zhuǎn)15位

CARD_2 = DOWN_TO_FIFTEEN('410125199908222000')

PRINT(CARD_2)

當(dāng)然,這只是個(gè)小功能,主要還是想分享下代碼,如果有同樣的處理可以直接用。

總結(jié)

以上所述是小編給大家介紹的使用Python完成15位18位身份證的互轉(zhuǎn)功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

python中如何從字符串中提取數(shù)字?

1、如下圖,要提取#后面的字符,也即紅色的“SDK”到B列。

2、首先,在B2中輸入公式:

=FIND("#",A2)

返回#在字符串中的位置,#在A(yíng)2單元格文本中是第6個(gè)字符。

3、知識(shí)點(diǎn)說(shuō)明:

FIND()函數(shù)查找第一參數(shù)在第二參數(shù)中的位置。如下圖,查找“B”在“ABCD”中是第幾個(gè)字符。第一參數(shù)是要查找的字符“B”,第二參數(shù)是被查找的字符串。最終返回“B”在“ABCD”中是第2個(gè)字符。

4、然后,在B2中輸入公式:

=MID(A2,FIND("#",A2)+1,99)

這樣,就提取出了#后的字符。

5、知識(shí)點(diǎn)說(shuō)明:

MID()函數(shù)返回從字符串中制定字符開(kāi)始若干個(gè)字符的字符串。如下圖,MID()函數(shù)返回“ABCDE”字符串中從第2個(gè)字符開(kāi)始的連續(xù)3個(gè)字符,也就是返回“BCD”。

6、綜上,=MID(A2,FIND("#",A2)+1,99)的意思就是從A2單元格#字符后面的一個(gè)字符起,取長(zhǎng)度為99的字符串。其中的99是一個(gè)較大的數(shù)字,能涵蓋#后字符的最大長(zhǎng)度即可。

python分治法求二維數(shù)組局部峰值方法

python分治法求二維數(shù)組局部峰值方法

下面小編就為大家分享一篇python分治法求二維數(shù)組局部峰值方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

題目的意思大致是在一個(gè)n*m的二維數(shù)組中,找到一個(gè)局部峰值。峰值要求大于相鄰的四個(gè)元素(數(shù)組邊界以外視為負(fù)無(wú)窮),比如最后我們找到峰值A(chǔ)[j][i],則有A[j][i] A[j+1][i] A[j][i] A[j-1][i] A[j][i] A[j][i+1] A[j][i] A[j][i-1]。返回該峰值的坐標(biāo)和值。

當(dāng)然,最簡(jiǎn)單直接的方法就是遍歷所有數(shù)組元素,判斷是否為峰值,時(shí)間復(fù)雜度為O(n^2)

再優(yōu)化一點(diǎn)求每一行(列)的最大值,再通過(guò)二分法找最大值列的峰值(具體方法可見(jiàn)一維數(shù)組求峰值),這種算法時(shí)間復(fù)雜度為O(logn)

這里討論的是一種復(fù)雜度為O(n)的算法,算法思路分為以下幾步:

1、找“田”字。包括外圍的四條邊和中間橫豎兩條邊(圖中綠色部分),比較其大小,找到最大值的位置。(圖中的7)

2、找到田字中最大值后,判斷它是不是局部峰值,如果是返回該坐標(biāo),如果不是,記錄找到相鄰四個(gè)點(diǎn)中最大值坐標(biāo)。通過(guò)該坐標(biāo)所在的象限縮小范圍,繼續(xù)比較下一個(gè)田字

3、當(dāng)范圍縮小到3*3時(shí)必定會(huì)找到局部峰值(也可能之前就找到了)

關(guān)于為什么我們選擇的范圍內(nèi)一定存在峰值,大家可以這樣想,首先我們有一個(gè)圈,我們已知有圈內(nèi)至少有一個(gè)元素大于這個(gè)圈所有的元素,那么,是不是這個(gè)圈中一定有一個(gè)最大值?

可能說(shuō)得有點(diǎn)繞,但是多想想應(yīng)該能夠理解,也可以用數(shù)學(xué)的反證法來(lái)證明。

算法我們理解后接下來(lái)就是代碼實(shí)現(xiàn)了,這里我用的語(yǔ)言是python(初學(xué)python,可能有些用法上不夠簡(jiǎn)潔請(qǐng)見(jiàn)諒),先上代碼:

import numpy as np

def max_sit(*n): #返回最大元素的位置

temp = 0

sit = 0

for i in range(len(n)):

if(n[i]temp):

temp = n[i]

sit = i

return sit

def dp(s1,s2,e1,e2):

m1 = int((e1-s1)/2)+s1 #row

m2 = int((e2-s1)/2)+s2 #col

nub = e1-s1

temp = 0

sit_row = 0

sit_col = 0

for i in range(nub):

t = max_sit(list[s1][s2+i], #第一排

list[m1][s2+i], #中間排

list[e1][s2+i], #最后排

list[s1+i][s2], #第一列

list[s1+i][m2], #中間列

list[s1+i][e2], #最后列

temp)

if(t==6):

pass

elif(t==0):

temp = list[s1][s2+i]

sit_row = s1

sit_col = s2+i

elif(t==1):

temp = list[m1][s2+i]

sit_row = m1

sit_col = s2+i

elif(t==2):

temp = list[e1][s2+i]

sit_row = e1

sit_col = s2+i

elif(t==3):

temp = list[s1+i][s2]

sit_row = s1+i

sit_row = s2

elif(t==4):

temp = list[s1+i][m2]

sit_row = s1+i

sit_col = m2

elif(t==5):

temp = list[s1+i][e2]

sit_row = s1+i

sit_col = m2

t = max_sit(list[sit_row][sit_col], #中

list[sit_row-1][sit_col], #上

list[sit_row+1][sit_col], #下

list[sit_row][sit_col-1], #左

list[sit_row][sit_col+1]) #右

if(t==0):

return [sit_row-1,sit_col-1]

elif(t==1):

sit_row-=1

elif(t==2):

sit_row+=1

elif(t==3):

sit_col-=1

elif(t==4):

sit_col+=1

if(sit_rowm1):

e1 = m1

else:

s1 = m1

if(sit_colm2):

e2 = m2

else:

s2 = m2

return dp(s1,s2,e1,e2)

f = open("demo.txt","r")

list = f.read()

list = list.split("n") #對(duì)行進(jìn)行切片

list = ["0 "*len(list)]+list+["0 "*len(list)] #加上下的圍墻

for i in range(len(list)): #對(duì)列進(jìn)行切片

list[i] = list[i].split()

list[i] = ["0"]+list[i]+["0"] #加左右的圍墻

list = np.array(list).astype(np.int32)

row_n = len(list)

col_n = len(list[0])

ans_sit = dp(0,0,row_n-1,col_n-1)

print("找到峰值點(diǎn)位于:",ans_sit)

print("該峰值點(diǎn)大小為:",list[ans_sit[0]+1,ans_sit[1]+1])

f.close()

首先我的輸入寫(xiě)在txt文本文件里,通過(guò)字符串轉(zhuǎn)換變?yōu)槎S數(shù)組,具體轉(zhuǎn)換過(guò)程可以看我上一篇博客——python中字符串轉(zhuǎn)換為二維數(shù)組。(需要注意的是如果在windows環(huán)境中split后的列表沒(méi)有空尾巴,所以不用加list.pop()這句話(huà))。有的變動(dòng)是我在二維數(shù)組四周加了“0”的圍墻。加圍墻可以再我們判斷峰值的時(shí)候不用考慮邊界問(wèn)題。

max_sit(*n)函數(shù)用于找到多個(gè)值中最大值的位置,返回其位置,python的內(nèi)構(gòu)的max函數(shù)只能返回最大值,所以還是需要自己寫(xiě),*n表示不定長(zhǎng)參數(shù),因?yàn)槲倚枰诒容^田和十(判斷峰值)都用到這個(gè)函數(shù)

def max_sit(*n): #返回最大元素的位置

temp = 0

sit = 0

for i in range(len(n)):

if(n[i]temp):

temp = n[i]

sit = i

return sit

dp(s1,s2,e1,e2)函數(shù)中四個(gè)參數(shù)的分別可看為startx,starty,endx,endy。即我們查找范圍左上角和右下角的坐標(biāo)值。

m1,m2分別是row 和col的中間值,也就是田字的中間。

def dp(s1,s2,e1,e2):

m1 = int((e1-s1)/2)+s1 #row

m2 = int((e2-s1)/2)+s2 #col

依次比較3行3列中的值找到最大值,注意這里要求二維數(shù)組為正方形,如果為矩形需要做調(diào)整

for i in range(nub):

t = max_sit(list[s1][s2+i], #第一排

list[m1][s2+i], #中間排

list[e1][s2+i], #最后排

list[s1+i][s2], #第一列

list[s1+i][m2], #中間列

list[s1+i][e2], #最后列

temp)

if(t==6):

pass

elif(t==0):

temp = list[s1][s2+i]

sit_row = s1

sit_col = s2+i

elif(t==1):

temp = list[m1][s2+i]

sit_row = m1

sit_col = s2+i

elif(t==2):

temp = list[e1][s2+i]

sit_row = e1

sit_col = s2+i

elif(t==3):

temp = list[s1+i][s2]

sit_row = s1+i

sit_row = s2

elif(t==4):

temp = list[s1+i][m2]

sit_row = s1+i

sit_row = m2

elif(t==5):

temp = list[s1+i][e2]

sit_row = s1+i

sit_row = m2

判斷田字中最大值是不是峰值,并找不出相鄰最大值

t = max_sit(list[sit_row][sit_col], #中

list[sit_row-1][sit_col], #上

list[sit_row+1][sit_col], #下

list[sit_row][sit_col-1], #左

list[sit_row][sit_col+1]) #右

if(t==0):

return [sit_row-1,sit_col-1]

elif(t==1):

sit_row-=1

elif(t==2):

sit_row+=1

elif(t==3):

sit_col-=1

elif(t==4):

sit_col+=1

縮小范圍,遞歸求解

if(sit_rowm1):

e1 = m1

else:

s1 = m1

if(sit_colm2):

e2 = m2

else:

s2 = m2

return dp(s1,s2,e1,e2)

好了,到這里代碼基本分析完了。如果還有不清楚的地方歡迎下方留言。

除了這種算法外,我也寫(xiě)一種貪心算法來(lái)求解這道題,只可惜最壞的情況下算法復(fù)雜度還是O(n^2),QAQ。

大體的思路就是從中間位置起找相鄰4個(gè)點(diǎn)中最大的點(diǎn),繼續(xù)把該點(diǎn)來(lái)找相鄰最大點(diǎn),最后一定會(huì)找到一個(gè)峰值點(diǎn),有興趣的可以看一下,上代碼:

#!/usr/bin/python3

def dp(n):

temp = (str[n],str[n-9],str[n-1],str[n+1],str[n+9]) #中 上 左 右 下

sit = temp.index(max(temp))

if(sit==0):

return str[n]

elif(sit==1):

return dp(n-9)

elif(sit==2):

return dp(n-1)

elif(sit==3):

return dp(n+1)

else:

return dp(n+9)

f = open("/home/nancy/桌面/demo.txt","r")

list = f.read()

list = list.replace(" ","").split() #轉(zhuǎn)換為列表

row = len(list)

col = len(list[0])

str="0"*(col+3)

for x in list: #加圍墻 二維變一維

str+=x+"00"

str+="0"*(col+1)

mid = int(len(str)/2)

print(str,mid)

p = dp(mid)

print (p)

f.close()

以上這篇python分治法求二維數(shù)組局部峰值方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考

office計(jì)算機(jī)二級(jí),excel??己瘮?shù)有哪些?

if函數(shù)

=IF(AND(F3="是",G3="是",H3="是"),"完成","未完成")

這個(gè)函數(shù)的意思是,如果(同時(shí)滿(mǎn)足(F3="是",G3="是",H3="是"),那么就是"完成“,否則就是"未完成"。

還有一種情況是滿(mǎn)足一個(gè)條件的,也就是IF(OR(F3="是",G3="是",H3="是"),"完成","未完成")。

SUMIFS多條件求和

問(wèn)題如下圖

函數(shù)=SUMIFS(訂單明細(xì)表!H3:H636,訂單明細(xì)表!E3:E636,訂單明細(xì)表!E7,訂單明細(xì)表!B3:B636,"=2012-12-31",訂單明細(xì)表!B3:B636,"=2012-1-1")

=SUMIFS(總銷(xiāo)售額,條件區(qū)域1,條件1(《MS Office高級(jí)應(yīng)用》),條件區(qū)域2,條件2(2012年),條件區(qū)域3,條件3(2012年))

=VLOOKUP(D3,表2,2,0)

VLOOKUP是自動(dòng)填充函數(shù),這個(gè)函數(shù)解釋為,D3單元格是一個(gè)條件,表2有與D3相對(duì)應(yīng)的關(guān)系。需要填充的是表2的第2列。最后一個(gè)0為默認(rèn)的。

mid截取函數(shù)

=IF(MOD(MID(C2,17,1),2)=1,"男","女")

如果(除以(截?。–2單元格,從17位開(kāi)始,截取兩位),2)等于1的話(huà),那么就是“男”,否則就是“女”

這個(gè)函數(shù)要從最里邊的函數(shù)往外開(kāi)始翻譯。即MID--MOD--IF

擴(kuò)展資料:

計(jì)算機(jī)二級(jí)考試是全國(guó)計(jì)算機(jī)等級(jí)考試(National Computer Rank Examination,簡(jiǎn)稱(chēng)NCRE)四個(gè)等級(jí)中的一個(gè)等級(jí),考核計(jì)算機(jī)基礎(chǔ)知識(shí)和使用一種高級(jí)計(jì)算機(jī)語(yǔ)言編寫(xiě)程序以及上機(jī)調(diào)試的基本技能。計(jì)算機(jī)二級(jí)考試采用全國(guó)統(tǒng)一命題、統(tǒng)一考試的形式。

計(jì)算機(jī)二級(jí)考試包含:程序設(shè)計(jì)/辦公軟件高級(jí)應(yīng)用級(jí),考核內(nèi)容包括計(jì)算機(jī)語(yǔ)言與基礎(chǔ)程序設(shè)計(jì)能力,要求參試者掌握一門(mén)計(jì)算機(jī)語(yǔ)言,可選類(lèi)別有高級(jí)語(yǔ)言程序設(shè)計(jì)類(lèi)、數(shù)據(jù)庫(kù)程序設(shè)計(jì)類(lèi)等;

辦公軟件高級(jí)應(yīng)用能力,要求參試者具有計(jì)算機(jī)應(yīng)用知識(shí)及MS Office辦公軟件的高級(jí)應(yīng)用能力,能夠在實(shí)際辦公環(huán)境中開(kāi)展具體應(yīng)用。從2013年開(kāi)始全國(guó)計(jì)算機(jī)等級(jí)考試已從傳統(tǒng)的筆試和上機(jī)考試改革成無(wú)紙化考試,二級(jí)Delphi科目從2013年上半年開(kāi)始停考。

從 2018 年 3 月開(kāi)始,將實(shí)施 2018 版考試大綱,并按新體系開(kāi)考各個(gè)考試級(jí)別。

據(jù)了解,教育部考試中心確定從2013年上半年開(kāi)始,實(shí)施無(wú)紙化的NCRE,二級(jí)6個(gè)科目是:二級(jí)C,二級(jí)VB,二級(jí)VFP、二級(jí)JAVA、二級(jí)ACCESS、二級(jí)C++。取消“Delphi語(yǔ)言程序設(shè)計(jì)”科目(代碼:62)。

自2018年3月考試起,NCRE將執(zhí)行2018版考試大綱,二級(jí)取消“Visual FoxPro 數(shù)據(jù)庫(kù)程序設(shè)計(jì)”科目(代碼:27),2017年 12 月是其最后一次組考。新增“Python 語(yǔ)言程序設(shè)計(jì)”科目(代碼:66),考試時(shí)長(zhǎng):120 分鐘,2018 年 9 月首次開(kāi)考。

參考資料來(lái)源:百度百科:計(jì)算機(jī)二級(jí)

用PYTHON求導(dǎo)怎么求

#coding:utf-8

#一階導(dǎo)

def?fun1(X,?WINDOW?=?5):

result?=?[]

for?k?in?range(WINDOW,?len(X)-WINDOW):

mid?=?(X[k+WINDOW]-X[k-WINDOW])/(2*WINDOW)

result.append(mid)

return?result

#二階導(dǎo)

def?fun2(X,?WINDOW?=?5):

result?=?[]

for?k?in?range(WINDOW,?len(X)-WINDOW):

mid?=?(X[k+WINDOW]-2*X[k]+X[k-WINDOW])/(WINDOW*WINDOW)

result.append(mid)

return?result

X?=?[1,2,3,4,5,6,7,8,9,10]

result1?=?fun1(X,?3)

result2?=?fun2(X,?2)

如上自己寫(xiě),或者用numpy自帶的多項(xiàng)式的n階導(dǎo)函數(shù)。

得到多項(xiàng)式的n階導(dǎo)函數(shù):多項(xiàng)式.deriv(m = n)

from?numpy?import?*

X?=?[1,2,3,4,5,6,7,8,9,10]

result?=?X.deriv(m?=?n)?#n是導(dǎo)數(shù)階數(shù)

當(dāng)前題目:mid函數(shù)python mid函數(shù)提取年月日格式為年月日
當(dāng)前路徑:http://chinadenli.net/article44/hpioee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器企業(yè)建站、網(wǎng)站策劃外貿(mào)網(wǎng)站建設(shè)、定制網(wǎng)站、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化