python中怎样定义一个函数来计算两点距离?import math
class Dot:
def __init__(self,x,y,z):
self.x=float(x)
self.y=float(y)
self.z=float(z)
t1=input('请输入点t1的坐标:')
t2=input('请输入点t2的坐标:')
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('点t1:',T1.x,T1.y,T1.z)
print('点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("两点间的距离为:%s"% s)
python动态规划及编辑距离计算实例动态规划的三要素:最优子结构,边界和状态转移函数,最优子结构是指每个阶段的最优状态可以从之前某个阶段的某个或某些状态直接得到(子问题的最优解能够决定这个问题的最优解),边界指的是问题最小子集的解(初始范围),状态转移函数是指从一个阶段向另一个阶段过度的具体形式,描述的是两个相邻子问题之间的关系(递推式)
重叠子问题,对每个子问题只计算一次,然后将其计算的结果保存到一个表格中,每一次需要上一个子问题解时,进行调用,只要o(1)时间复杂度,准确的说,动态规划是利用空间去换取时间的算法.
判断是否可以利用动态规划求解,第一个是判断是否存在重叠子问题 。
爬楼梯
假设你正在爬楼梯 。需要 n 阶你才能到达楼顶 。
每次你可以爬 1 或 2 个台阶 。你有多少种不同的方法可以爬到楼顶呢python距离计算函数?
注意python距离计算函数:给定 n 是一个正整数 。
示例 1:
输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶 。
1.1 阶 + 1 阶
2.2 阶
示例 2:
输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶 。
1.1 阶 + 1 阶 + 1 阶
2.1 阶 + 2 阶
3.2 阶 + 1 阶
分析:
假定n=10,首先考虑最后一步的情况,要么从第九级台阶再走一级到第十级,要么从第八级台阶走两级到第十级,因而,要想到达第十级台阶,最后一步一定是从第八级或者第九级台阶开始.也就是说已知从地面到第八级台阶一共有X种走法,从地面到第九级台阶一共有Y种走法,那么从地面到第十级台阶一共有X+Y种走法.
即F(10)=F(9)+F(8)
分析到这里,动态规划的三要素出来python距离计算函数了.
边界:F(1)=1,F(2)=2
最优子结构:F(10)的最优子结构即F(9)和F(8)
状态转移函数: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#状态转移
a=b#最优子结构
b=temp#最优子结构
return temp
利用动态规划的思想计算编辑距离 。
编辑距离是指两个字串之间python距离计算函数,由一个转成另一个所需的最少编辑操作次数 。通常来说,编辑距离越?。礁鑫谋镜南嗨菩栽酱?。这里的编辑操作主要包括三种:
插入:将一个字符插入某个字符串python距离计算函数;
删除:将字符串中的某个字符删除;
替换:将字符串中的某个字符替换为另外一个字符 。
那么,如何用Python计算编辑距离呢?我们可以从较为简单的情况进行分析 。
当两个字符串都为空串,那么编辑距离为0;
当其中一个字符串为空串时,那么编辑距离为另一个非空字符串的长度;
当两个字符串均为非空时(长度分别为 i 和 j ),取以下三种情况最小值即可:
1、长度分别为 i-1 和 j 的字符串的编辑距离已知 , 那么加1即可;
推荐阅读
- 做精酿啤酒如何营销,做精酿啤酒如何营销呢
- 六代i7cpu配什么主板,6代i7配什么显卡
- 射击类红包赚钱游戏,射击类红包游戏大全
- 社群直播带货大会方案,带货直播活动
- go语言工具怎么运行项目 go语言chan
- go语言冒号等号,数学冒号后面加等号
- 苹果删了安卓微信评论还在,苹果删了安卓微信评论还在怎么回事
- python中for循环常用方法,python中for循环的用法
- c语言函数调用求和函数是 c语言用函数求和的程序