真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python中的距離函數(shù) python 距離計(jì)算

Python中range()函數(shù)的用法

Python range()函數(shù)可創(chuàng)建一個(gè)整數(shù)列表,一般用在for循環(huán)中。

劍河ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書(shū)銷(xiāo)售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話(huà)聯(lián)系或者加微信:18982081108(備注:SSL證書(shū)合作)期待與您的合作!

注意:Python3 range()返回的是一個(gè)可迭代對(duì)象,類(lèi)型是對(duì)象,而不是列表類(lèi)型,所以打印的時(shí)候不會(huì)打印列表。

函數(shù)語(yǔ)法:

range(start,stop[,step])

參數(shù)說(shuō)明:

start:計(jì)數(shù)從start開(kāi)始。默認(rèn)是從0開(kāi)始。例如range(5)等價(jià)于range(0,5);

stop:計(jì)數(shù)到stop結(jié)束,但不包括stop。例如:range(0,5)是[0,1,2,3,4]沒(méi)有5;

step:步長(zhǎng),默認(rèn)為1。例如:range(0,5)等價(jià)于range(0,5,1)。

實(shí)例:

range(10) # 從 0 開(kāi)始到 9

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

range(1, 11) # 從 1 開(kāi)始到 10

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

range(0, 30, 5) # 步長(zhǎng)為 5

[0, 5, 10, 15, 20, 25]

range(0, 10, 3) # 步長(zhǎng)為 3

[0, 3, 6, 9]

range(0, -10, -1) # 負(fù)數(shù)

[0, -1, -2, -3, -4, -5, -6, -7, -8, -9]

range(0)

[]

range(1, 0)

[]

以下是range在for中的使用,循環(huán)出runoob的每個(gè)字母:

x = 'runoob'

for i in range(len(x)) :

... print(x[i])

...

r

u

n

o

o

b

python求兩點(diǎn)之間距離的程序

import math

#定義點(diǎn)的函數(shù)

class Point:

def __init__(self,x=0,y=0):

self.x = x

self.y = y

#定義直線(xiàn)函數(shù)

def getlen(p1, p2):

#用math.sqrt()求平方根

len = math.sqrt(((p1.x - p2.x) ** 2) +((p1.y - p2.y) ** 2))

return self.len

#設(shè)置點(diǎn)p1的坐標(biāo)

p1 = Point(0,0)

#設(shè)置點(diǎn)p2的坐標(biāo)

p2 = Point(3,4)

#獲取兩點(diǎn)之間直線(xiàn)的長(zhǎng)度

d =.getlen(p1, p2)

print(d)

python動(dòng)態(tài)規(guī)劃及編輯距離計(jì)算實(shí)例

動(dòng)態(tài)規(guī)劃的三要素:最優(yōu)子結(jié)構(gòu),邊界和狀態(tài)轉(zhuǎn)移函數(shù),最優(yōu)子結(jié)構(gòu)是指每個(gè)階段的最優(yōu)狀態(tài)可以從之前某個(gè)階段的某個(gè)或某些狀態(tài)直接得到(子問(wèn)題的最優(yōu)解能夠決定這個(gè)問(wèn)題的最優(yōu)解),邊界指的是問(wèn)題最小子集的解(初始范圍),狀態(tài)轉(zhuǎn)移函數(shù)是指從一個(gè)階段向另一個(gè)階段過(guò)度的具體形式,描述的是兩個(gè)相鄰子問(wèn)題之間的關(guān)系(遞推式)

重疊子問(wèn)題,對(duì)每個(gè)子問(wèn)題只計(jì)算一次,然后將其計(jì)算的結(jié)果保存到一個(gè)表格中,每一次需要上一個(gè)子問(wèn)題解時(shí),進(jìn)行調(diào)用,只要o(1)時(shí)間復(fù)雜度,準(zhǔn)確的說(shuō),動(dòng)態(tài)規(guī)劃是利用空間去換取時(shí)間的算法.

判斷是否可以利用動(dòng)態(tài)規(guī)劃求解,第一個(gè)是判斷是否存在重疊子問(wèn)題。

爬樓梯

假設(shè)你正在爬樓梯。需要 n 階你才能到達(dá)樓頂。

每次你可以爬 1 或 2 個(gè)臺(tái)階。你有多少種不同的方法可以爬到樓頂呢?

注意:給定 n 是一個(gè)正整數(shù)。

示例 1:

輸入: 2

輸出: 2

解釋?zhuān)?有兩種方法可以爬到樓頂。

1. ?1 階 + 1 階

2. ?2 階

示例 2:

輸入: 3

輸出: 3

解釋?zhuān)?有三種方法可以爬到樓頂。

1. ?1 階 + 1 階 + 1 階

2. ?1 階 + 2 階

3. ?2 階 + 1 階

分析:

假定n=10,首先考慮最后一步的情況,要么從第九級(jí)臺(tái)階再走一級(jí)到第十級(jí),要么從第八級(jí)臺(tái)階走兩級(jí)到第十級(jí),因而,要想到達(dá)第十級(jí)臺(tái)階,最后一步一定是從第八級(jí)或者第九級(jí)臺(tái)階開(kāi)始.也就是說(shuō)已知從地面到第八級(jí)臺(tái)階一共有X種走法,從地面到第九級(jí)臺(tái)階一共有Y種走法,那么從地面到第十級(jí)臺(tái)階一共有X+Y種走法.

即F(10)=F(9)+F(8)

分析到這里,動(dòng)態(tài)規(guī)劃的三要素出來(lái)了.

邊界:F(1)=1,F(2)=2

最優(yōu)子結(jié)構(gòu):F(10)的最優(yōu)子結(jié)構(gòu)即F(9)和F(8)

狀態(tài)轉(zhuǎn)移函數(shù):F(n)=F(n-1)+F(n-2)

class Solution(object):

def climbStairs(self, n):

? ? """

? ? :type n: int

? ? :rtype: int

? ? """

? ? if n=2:

? ? ? ? return n

? ? a=1#邊界

? ? b=2#邊界

? ? temp=0

? ? for i in range(3,n+1):

? ? ? ? temp=a+b#狀態(tài)轉(zhuǎn)移

? ? ? ? a=b#最優(yōu)子結(jié)構(gòu)

? ? ? ? b=temp#最優(yōu)子結(jié)構(gòu)

? ? return temp

利用動(dòng)態(tài)規(guī)劃的思想計(jì)算編輯距離。

編輯距離是指兩個(gè)字串之間,由一個(gè)轉(zhuǎn)成另一個(gè)所需的最少編輯操作次數(shù)。通常來(lái)說(shuō),編輯距離越小,兩個(gè)文本的相似性越大。這里的編輯操作主要包括三種:

插入:將一個(gè)字符插入某個(gè)字符串;

刪除:將字符串中的某個(gè)字符刪除;

替換:將字符串中的某個(gè)字符替換為另外一個(gè)字符。

那么,如何用Python計(jì)算編輯距離呢?我們可以從較為簡(jiǎn)單的情況進(jìn)行分析。

當(dāng)兩個(gè)字符串都為空串,那么編輯距離為0;

當(dāng)其中一個(gè)字符串為空串時(shí),那么編輯距離為另一個(gè)非空字符串的長(zhǎng)度;

當(dāng)兩個(gè)字符串均為非空時(shí)(長(zhǎng)度分別為 i 和 j ),取以下三種情況最小值即可:

1、長(zhǎng)度分別為 i-1 和 j 的字符串的編輯距離已知,那么加1即可;

2、長(zhǎng)度分別為 i 和 j-1 的字符串的編輯距離已知,那么加1即可;

3、長(zhǎng)度分別為 i-1 和 j-1 的字符串的編輯距離已知,此時(shí)考慮兩種情況,若第i個(gè)字符和第j個(gè)字符不同,那么加1即可;如果相同,那么不需要加1。

很明顯,上述算法的思想即為 動(dòng)態(tài)規(guī)劃 。

求長(zhǎng)度為m和n的字符串的編輯距離,首先定義函數(shù)——edit(i, j),它表示第一個(gè)長(zhǎng)度為i的字符串與第二個(gè)長(zhǎng)度為j的字符串之間的編輯距離。動(dòng)態(tài)規(guī)劃表達(dá)式可以寫(xiě)為:

if i == 0 且 j == 0,edit(i, j) = 0

if (i == 0 且 j 0 )或者 (i 0 且j == 0),edit(i, j) = i + j

if i ≥ 1 且 j ≥ 1 ,edit(i, j) == min{ edit(i-1, j) + 1, edit(i, j-1) + 1, edit(i-1, j-1) + d(i, j) },當(dāng)?shù)谝粋€(gè)字符串的第i個(gè)字符不等于第二個(gè)字符串的第j個(gè)字符時(shí),d(i, j) = 1;否則,d(i, j) = 0。

def edit_distance(word1, word2):

len1 = len(word1)

len2 = len(word2)

dp = np.zeros((len1 + 1,len2 + 1))

for i in range(len1 + 1):

? ? dp[i][0] = i? ?

for j in range(len2 + 1):

? ? dp[0][j] = j

for i in range(1, len1 + 1):

? ? for j in range(1, len2 + 1):

? ? ? ? delta = 0 if word1[i-1] == word2[j-1] else 1

? ? ? ? dp[i][j] = min(dp[i - 1][j - 1] + delta, min(dp[i-1][j] + 1, dp[i][j - 1] + 1))

return dp[len1][len2]

edit_distance('牛奶','華西奶')

結(jié)果:2

Python 計(jì)算三維空間某點(diǎn)距離原點(diǎn)的歐式距離

1、點(diǎn)擊“開(kāi)始”——“ArcGIS”——“ArcMap”,啟動(dòng)ArcMap程序,并添加兩個(gè)點(diǎn)要素類(lèi)到地圖上。

2、點(diǎn)擊“ArcToolbox”——“分析工具”——“鄰域分析”——“點(diǎn)距離”,打開(kāi)點(diǎn)距離工具界面。

3、選擇輸入要素,即作為起點(diǎn)的要素類(lèi),可以選擇已添加到地圖上的要素類(lèi),也可以選擇外部要素類(lèi)。

4、選擇鄰近要素,即作為終點(diǎn)的要素類(lèi),可以選擇已添加到地圖上的要素類(lèi),也可以選擇外部要素類(lèi)。

5、選擇計(jì)算結(jié)果的存放位置和表名稱(chēng)。

6、輸入搜索半徑,即要計(jì)算多大半徑范圍內(nèi)的鄰近點(diǎn)要素之間的距離,可以為空,如果為空,則計(jì)算起點(diǎn)到鄰近要素類(lèi)中所有點(diǎn)要素之間的距離。點(diǎn)擊“確定”,開(kāi)始計(jì)算起點(diǎn)要素到鄰近要素之間的距離。

7、計(jì)算完成后,計(jì)算結(jié)果表會(huì)自動(dòng)添加到地圖上,右鍵點(diǎn)擊結(jié)果表,點(diǎn)擊打開(kāi),可以查看計(jì)算結(jié)果。

python中怎樣定義一個(gè)函數(shù)來(lái)計(jì)算兩點(diǎn)距離?

import?math

class?Dot:

def?__init__(self,x,y,z):

self.x=float(x)

self.y=float(y)

self.z=float(z)???

t1=input('請(qǐng)輸入點(diǎn)t1的坐標(biāo):')

t2=input('請(qǐng)輸入點(diǎn)t2的坐標(biāo):')

t1=eval('[%s]'%t1)

t2=eval('[%s]'%t2)

T1=Dot(t1[0],t1[1],t1[2])

T2=Dot(t2[0],t2[1],t2[2])

print('點(diǎn)t1:',T1.x,T1.y,T1.z)

print('點(diǎn)t2:',T2.x,T2.y,T2.z)

s=math.sqrt((T1.x-T2.x)*(T1.x-T2.x)-(T1.y-T2.y)*(T1.y-T2.y)+(T1.z-T2.z)*(T1.z-T2.z))

print("兩點(diǎn)間的距離為:%s"%?s)

Python編程題:編程求兩點(diǎn)之間的曼哈頓距離?

def My_abs(num):

if num 0:

num *= -1

return num

print(abs(-5))

x1,y1=eval(input("輸入A點(diǎn)坐標(biāo),以逗號(hào)分隔:"))

x2,y2=eval(input("輸入B點(diǎn)坐標(biāo),以逗號(hào)分隔:"))

# 計(jì)算曼哈頓距離的函數(shù)

def getManhattanDistance(x1, y1, x2, y2):

return My_abs(x1 - x2) + My_abs(y1 - y2)

# 調(diào)用并輸出計(jì)算的曼哈頓距離

print(getManhattanDistance(x1, y1, x2, y2))

abs在Python中有了,然后我就命名成了My_abs。

備注也都打好了。

折柳成蔭寫(xiě)的是C,soulofbug寫(xiě)的是python


分享題目:python中的距離函數(shù) python 距離計(jì)算
URL標(biāo)題:http://weahome.cn/article/hijdis.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部