用python建立三元一次方程_python简单的三元一次方程求解实例
我就废话不多说了,直接看代码吧!
import re
lt = []
d = {}
for i in range(3):
a = input('请输入第%d个三元式'%(i + 1))
st = a.split("=")
r = re.compile('(-?\d?)[xyz]')
b = re.findall(r, st[0])
print(b)
for j in range(3):
if b[j] == "":
b[j] = 1
if b[j] == '-':
b[j] = -1
d = {
'x': int(b[0]),
'y': int(b[1]),
'z': int(b[2]),
'sum':int(st[1])
}
lt.append(d)
print(lt)
t = lt[0]['x'] / lt[1]['x']
for i in lt[0]:
lt[1][i] = lt[1][i] * t - lt[0][i]
t1 = lt[0]['x'] / lt[2]['x']
for i in lt[0]:
lt[2][i] = lt[2][i] * t1 - lt[0][i]
t2 = lt[1]['y'] / lt[2]['y']
for i in lt[0]:
lt[2][i] = lt[2][i] * t2 - lt[1][i]
z = lt[2]['sum'] / lt[2]['z']
y = (lt[1]['sum'] - lt[1]['z'] * z) / lt[1]['y']
x = (lt[0]['sum'] - lt[0]['z'] * z - lt[0]['y'] * y)/lt[0]['x']
print(x,y,z)
#样例输入
#请输入第1个三元式3x+6y-5z=12
#请输入第2个三元式x-3y+2z=-2#请输入第3个三元式5x-y+4z=10
补充知识:python 穷举法 多元一次方程 实现求解教程
题目:小利前往书店买四种参考书,这四类书的价格分别为3元、5元、7元、11元。他有70元钱,每种参考书至少买一本,且最后要剩余的钱不足再买其中任意一本书,他有哪些选择?
分析:这一道题是四元一次方程,存在两个限制条件:1是要求各种书最少买一本,2是最多剩余2元。那么我们可以先每一种书各买一本,花掉3+5+7+11=26元,还剩44元,这44元可以任意分配,这样就解决了第一个限制条件,其次,最多剩余2元,那么就存在剩余2元、1元、0元,三种情况,那么也就是说除了第一次花费26元购买的四本书以外,接下来购买的书籍可以是42元、43元、44元,由此第二个限制也解决了。
def x_3():
t = [42,43,44]
d = 0
for z in t:
print("当剩余%d元时:"%(44-z))
for i in range(z//3+1):
for n in range(z//5+1):
for m in range(z//7+1):
for p in range (z//11+1):
if 3*i + 5*n +7*m +11*p == z:
d += 1
print("第%d个解为:(%d,%d,%d,%d)"%(d,i+1,n+1,m+1,p+1) )
调用函数,结果为:
以上为for语句实现穷举法,倘若我们不适用for语句,使用while语句搭配if语句,应该如何实现呢?for语句中,我们给出了具体的循环次数,简单明了。当涉及2个变量同时变化时1个whil和1个if语句语句无法判断是否停止,故还需要搭配一个while和if语句语句,当三个变量时,则需要3个while语句,3个if语句,同理,n变量时,可能就需要n个while语句,n个if语句,显然,这让太过于繁琐。下面给出一个变量和两个变量时的代码块
##先每本书买一本,这样就保障了每本书最低一本的要求,这样还剩余44元,可随意分配
##按照只买种本书、两种书、三种书、四种书的逻辑思路编写代码
def x_1(): ##只买一种书
for m in [3,5,7,11]:
x = 1
while True:
if 42 <= m*x <=44: ##大于等于42,是因为最多剩余2元
print("只买%d的元的书,购买%d本,剩余%d元" %(m,x+1,44-m*x))
break
elif m*x >44:
print("不存在只买%d元的书的情况"%m)
break
else:
x +=1
def x_2(): ##只买两种书
ls = [3,5,7,11]
m = 0
ix = 0
for m in range(3):
ix = 0
while True:
if ix*ls[m] <= 44-ls[m+1]:
ix += 1
for q in range(m+1,4):
iy = 1
while True:
if 42 <= ls[m]*ix +ls[q]*iy <=44:
print("购买%d元书%d本,购买%d元书%d本,剩余%d元"%(ls[m],ix+1,ls[q],iy+1,44-(ls[m]*ix +ls[q]*iy)))
iy += 1
elif ls[m]*ix +ls[q]*iy > 44:
iy = 0
break
else:
iy += 1
else:
break
效果展示
由此可见,for语句比while语句更加简便简单。以上是通过穷举法实现,但若是一个多元一次方程组,存在多个解时,可能就需要其他方法了。在数据分析与挖掘方面,还有很多的知识点要学习。
以上这篇python简单的三元一次方程求解实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
本文标题: python简单的三元一次方程求解实例
本文地址: http://www.cppcns.com/jiaoben/python/305270.html
用python建立三元一次方程_python简单的三元一次方程求解实例相关推荐
- python建立回归模型_简单线性回归的Python建模方法
简单线性回归,就是两个随机变量存在一定大小的相关系数的前提下,结合散点图观察,采用最小二乘OLS方法,尝试建立一条回归直线,使得误差平方和SSE最小.OLS是一种参数方法,通过确定直线的斜率b和截距a ...
- python web框架 多线程_python 简单web框架: Bottle
基本映射 映射使用在根据不同URLs请求来产生相对应的返回内容.Bottle使用route() 修饰器来实现映射. 1 2 3 4 5 from bottle import route, run@ro ...
- python爬虫今日头条_Python简单的quot;今日头条quot;爬虫
Hello, 感觉好久没有写简书了,最近一直在忙支付和新需求,忙里偷闲学了一下 python 的简单使用,然后尝试的爬了一下"今日头条",效果还不错,下面简单介绍下我的第一个爬虫. ...
- python微信好友分析_Python简单分析微信好友
开发工具 Python版本:3.6.4 相关模块: itchat模块: pandas模块: pyecharts模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 相关文 ...
- python建立sqlite数据库_python sqlite3 创建数据库
Python标准库14 数据库 (sqlite3) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python自带一个轻量级的关 ...
- python图像验证码识别_python 简单图像识别--验证码
python 简单图像识别--验证码 记录下,准备工作安装过程很是麻烦. 首先库:pytesseract,image,tesseract,PIL windows安装PIL,直接exe进行安装更方便( ...
- python语句块标记_Python简单语句
简单语句由(逻辑上的)一行组成. 1.表达式语句 表达式也可以是语句.如果表达式是函数调用或者文档字符串的话尤其有用. 例如: "This modue contains SPAM-relat ...
- python读取json配置文件_Python简单读取json文件功能示例
本文实例讲述了Python简单读取json文件功能.分享给大家供大家参考,具体如下: read_json.json: { "rule":{ "namespace" ...
- python字典删除元素_Python简单遍历字典及删除元素的方法
本文实例讲述了Python简单遍历字典及删除元素的方法.分享给大家供大家参考,具体如下: 这种方式是一定有问题的: d = {'a':1, 'b':2, 'c':3} for key in d: d. ...
- python分子化学模拟_python简单实现gillespie模拟
由于专业需求,需要做主方程的随机模拟.在网上并没有找到适合的Python实现,遂自己写了一个,分享一下源码.至于gillespie算法本身就不介绍了,有需要的读者自然会懂,没需要的读者不建议去懂. 源 ...
最新文章
- 量子计算机区别于冯诺依曼机的一个显著特点,大学计算机基础习题答案西安交大.doc...
- 提高网站访问速度的34条军规(2)
- Python爬虫开发:requests库的使用--发送带参数post请求
- 图文解说:Nginx+tomcat配置集群负载均衡
- lumanager mysql密码_LuManager单独安装mysqli
- GBDT原理及利用GBDT构造新的特征-Python实现
- Facebook开源图像处理库Spectrum,优化移动端图像生成
- asp.net mvc 伪静态路由配置
- poi 灵活导出excel(有这一篇即可~~~~)
- uni-app 开发跨平台应用前端框架
- 使用MongoDB Compass将JSON数据文件导入MongDB
- ORR R0,R0,#R1_nF:OR:R1_iA
- 霍纳法则(Horner Rule)--计算多项式的值
- 毕业设计 基于STM32厨房环境监控报警系统
- java计算各个班的平均分
- 电机与运动控制笔记整理(三)——异步电机概述
- 湖北大学计算机考入清华,倒数第一考入清华 如何逆袭?
- Holoview--Introduction
- Python 1-02 基础语法
- 匠心打造高精度在线直线度测量仪
热门文章
- 图像处理_描述下SIFT特征?(清晰易懂)
- 【一天一个C++小知识】007.C++中的struct、enum和union以及内存对齐与大小端问题
- 主干网络系列(2) -ResNet V2:深度残差网络中的恒等映射
- 忘了 忘了,以前学的矩阵知识全交给老师了,敲黑板了,矩阵乘法实例讲解
- wpf对数据库简单操作
- java多线程及线程安全详解
- OrzFAng系列–树 解题报告
- python实现决策树ID3算法
- 多线程和并发管理 .NET多线程服务
- 车间调度建模系列8|扩展析取图之基于时间片段的赋时三维析取图模型