python简单的三元一次方程求解实例


Posted in Python onApril 02, 2020

我就废话不多说了,直接看代码吧!

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) )

调用函数,结果为:

python简单的三元一次方程求解实例

python简单的三元一次方程求解实例

python简单的三元一次方程求解实例

以上为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

效果展示

python简单的三元一次方程求解实例

由此可见,for语句比while语句更加简便简单。以上是通过穷举法实现,但若是一个多元一次方程组,存在多个解时,可能就需要其他方法了。在数据分析与挖掘方面,还有很多的知识点要学习。

以上这篇python简单的三元一次方程求解实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现rest请求api示例
Apr 22 Python
Python的Django应用程序解决AJAX跨域访问问题的方法
May 31 Python
Python基于百度AI的文字识别的示例
Apr 21 Python
python实现简易数码时钟
Feb 19 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
Aug 08 Python
python实现上传文件到linux指定目录的方法
Jan 03 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
Jan 19 Python
Windows下Anaconda安装、换源与更新的方法
Apr 17 Python
TensorFlow实现批量归一化操作的示例
Apr 22 Python
深入了解Python 变量作用域
Jul 24 Python
用Python将库打包发布到pypi
Apr 13 Python
python画条形图的具体代码
Apr 20 Python
Python 线性回归分析以及评价指标详解
Apr 02 #Python
Django REST framwork的权限验证实例
Apr 02 #Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
Apr 02 #Python
在 Pycharm 安装使用black的方法详解
Apr 02 #Python
Python Numpy中数据的常用保存与读取方法
Apr 01 #Python
Python PyQt5整理介绍
Apr 01 #Python
django之导入并执行自定义的函数模块图解
Apr 01 #Python
You might like
php实现按照权重随机排序数据的方法
2015/01/09 PHP
浅谈PHP中的
2016/04/23 PHP
PHP实现的激活用户注册验证邮箱功能示例
2017/06/06 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
2017/07/22 PHP
PHP设计模式之外观模式(Facade)入门与应用详解
2019/12/13 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
javascript基础知识大集锦(二) 推荐收藏
2011/01/13 Javascript
解析URI与URL之间的区别与联系
2013/11/22 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
2016/01/10 Javascript
Angular 根据 service 的状态更新 directive
2016/04/03 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
简单谈谈React中的路由系统
2017/07/25 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
vue导出html、word和pdf的实现代码
2018/07/31 Javascript
Node.js折腾记一:读指定文件夹,输出该文件夹的文件树详解
2019/04/20 Javascript
LayUi数据表格自定义赋值方式
2019/10/26 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
[01:11:27]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Optic
2018/04/03 DOTA
Python 3中的yield from语法详解
2017/01/18 Python
Python爬虫实例_城市公交网络站点数据的爬取方法
2018/01/10 Python
Python devel安装失败问题解决方案
2020/06/09 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
英国行业制服供应商:Alexandra
2019/09/14 全球购物
银行竞聘演讲稿范文
2014/04/23 职场文书
计算机专业毕业生自荐书
2014/06/02 职场文书
个人授权委托书格式
2014/08/30 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
搞笑婚前保证书
2015/02/28 职场文书
工商局个人工作总结
2015/03/03 职场文书
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python
Win11 vmware不兼容怎么办?Win11与VMware虚拟机不兼容的解决方法
2023/01/09 数码科技