【机器学习知识点】2. 输入一个多项式,返回该多项式的一阶导数多项式

简介: 【机器学习知识点】2. 输入一个多项式,返回该多项式的一阶导数多项式

目标描述:


输入一个多项式,返回该多项式的一阶导数多项式


输入要求:


1、输入的多项式只包含一个变量变量可以是任意英文字母,不一定是x

2、不需要按照次数升高或降低的方式排列

3、系数需位于变量前

4、不存在次数相同的两项(输入的多项式必须是合并同类项后的结果)


需求示例:


输入:2*x^3+3*x^2+5*x+1  
输出:6*x^2+6*x+5


代码实现:


import random
import re
class process_derivative(object):
    def __init__(self, polynominal):
        self.polynominal = polynominal
    def get_first_derivative(self):
        # 查找多项式变量名
        letter = re.search('[a-zA-Z]+', self.polynominal)
        # 如果输入是常数返回0,即没有找到变量
        if not letter:  
            return 0
        letter = letter[0]   
    # 查找变量系数及幂
        res = re.findall(f"(\d+)\*{letter}\^*(\d*)", self.polynominal)
        # 查找运算符号
        symbol = re.findall("[+-]{1}", self.polynominal)
        str1 = ''
        for index, coef in enumerate(res):
            num = coef[0]
            i = coef[1]
            if i:
                coef1 = int(num) * int(i)
                if int(i) - 1 == 1:
                    str2 = "{}*{}".format(coef1, letter)
                else:
                    str2 = "{}*{}^{}".format(coef1, letter, int(i) - 1)
            else:
                coef1 = int(num)
                str2 = "{}".format(coef1)
            str1 += str2
            if index >= 0 and index < len(symbol) and i:
                str1 += symbol[index]
        return "The first derivative is:" + str1  # e.g. "The first derivative is: '6*x^2+6*x+5'"
a = process_derivative('2*x^3+3*x^2+5*x+1')
print(a.get_first_derivative())


测试结果:


a = process_derivative('2*x^3+3*x^2+5*x+1')
a.get_first_derivative()
'The first derivative is:6*x^2+6*x+5'
• 1
a = process_derivative('2*y^3-3*y^2+1')
a.get_first_derivative()
'The first derivative is:6*y^2-6*y+'
• 1
a = process_derivative('10')
a.get_first_derivative()
• 1
• 2
0
相关文章
|
7月前
|
机器学习/深度学习 算法 数据可视化
【机器学习】多项式回归
【1月更文挑战第27天】【机器学习】多项式回归
|
7月前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习】多项式回归、K近邻KNN回归的讲解及实战(图文解释 附源码)
【Python机器学习】多项式回归、K近邻KNN回归的讲解及实战(图文解释 附源码)
105 0
|
6月前
|
机器学习/深度学习 自动驾驶 机器人
【机器学习知识点】3. 目标检测任务中如何在图片上的目标位置绘制边界框
【机器学习知识点】3. 目标检测任务中如何在图片上的目标位置绘制边界框
|
机器学习/深度学习 存储 算法
机器学习面试笔试知识点-决策树、随机森林、梯度提升决策树(GBDT)、XGBoost、LightGBM、CatBoost
机器学习面试笔试知识点-决策树、随机森林、梯度提升决策树(GBDT)、XGBoost、LightGBM、CatBoost
572 0
|
4月前
|
机器学习/深度学习
机器学习回归模型相关重要知识点总结
机器学习回归模型相关重要知识点总结
|
机器学习/深度学习 存储 算法
机器学习面试笔试知识点之非监督学习-K 均值聚类、高斯混合模型(GMM)、自组织映射神经网络(SOM)
机器学习面试笔试知识点之非监督学习-K 均值聚类、高斯混合模型(GMM)、自组织映射神经网络(SOM)
124 0
|
7月前
|
机器学习/深度学习 人工智能 PyTorch
《人工智能专栏》专栏介绍 & 专栏目录 & Python与Python | 机器学习 | 深度学习 | 目标检测 | YOLOv5及其改进 | YOLOv8及其改进 | 关键知识点 | 各种工具教程
《人工智能专栏》专栏介绍 & 专栏目录 & Python与Python | 机器学习 | 深度学习 | 目标检测 | YOLOv5及其改进 | YOLOv8及其改进 | 关键知识点 | 各种工具教程
195 1
|
机器学习/深度学习 存储 算法
机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
196 0
机器学习面试笔试知识点-线性回归、逻辑回归(Logistics Regression)和支持向量机(SVM)
|
7月前
|
机器学习/深度学习
机器学习第5天:多项式回归与学习曲线
机器学习第5天:多项式回归与学习曲线
|
机器学习/深度学习 存储 自然语言处理
机器学习面试笔试知识点-贝叶斯网络(Bayesian Network) 、马尔科夫(Markov) 和主题模型(T M)1
机器学习面试笔试知识点-贝叶斯网络(Bayesian Network) 、马尔科夫(Markov) 和主题模型(T M)
199 0
机器学习面试笔试知识点-贝叶斯网络(Bayesian Network) 、马尔科夫(Markov) 和主题模型(T M)1