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 相关文章推荐
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
详细解读Python中的__init__()方法
May 02 Python
Python3遍历目录树实现方法
May 22 Python
Python实现提取谷歌音乐搜索结果的方法
Jul 10 Python
python http接口自动化脚本详解
Jan 02 Python
python如何通过实例方法名字调用方法
Mar 21 Python
python远程连接服务器MySQL数据库
Jul 02 Python
python中PS 图像调整算法原理之亮度调整
Jun 28 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
Aug 19 Python
Django admin管理工具TabularInline类用法详解
May 14 Python
使用python matploblib库绘制准确率,损失率折线图
Jun 16 Python
理解python中装饰器的作用
Jul 21 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生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
php可生成缩略图的文件上传类实例
2014/12/17 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
2017/10/24 PHP
PHP+Session防止表单重复提交的解决方法
2018/04/09 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
2018/05/11 PHP
html中使用javascript调用本地程序(exe、doc等)实现代码
2013/04/26 Javascript
JS远程获取网页源代码实例
2013/09/05 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
2014/09/15 Javascript
详解JavaScript中的异常处理方法
2015/06/16 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
js原生方法被覆盖,从新赋值原生的方法
2018/01/02 Javascript
深入浅析Node环境和浏览器的区别
2018/08/14 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
2018/10/29 Javascript
解决layui使用layui-icon出现默认图标的问题
2019/09/11 Javascript
[40:57]TI4 循环赛第二日 iG vs EG
2014/07/11 DOTA
[01:19:46]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.21.mp4
2020/07/19 DOTA
基于Python os模块常用命令介绍
2017/11/03 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
2018/06/22 Python
python画图系列之个性化显示x轴区段文字的实例
2018/12/13 Python
利用anaconda保证64位和32位的python共存
2021/03/09 Python
Python实现性能自动化测试竟然如此简单
2019/07/30 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
2020/03/19 Python
Python爬虫入门教程01之爬取豆瓣Top电影
2021/01/24 Python
英国标准协会商店:BSI Shop
2019/02/25 全球购物
银行会计职员个人的自我评价
2013/09/29 职场文书
《骑牛比赛》教后反思
2014/04/22 职场文书
任命书范本大全
2014/06/06 职场文书
房地产营销活动策划方案
2014/09/15 职场文书
2014年纪检部工作总结
2014/11/12 职场文书
django学习之ajax post传参的2种格式实例
2021/05/14 Python
python微信智能AI机器人实现多种支付方式
2022/04/12 Python
详解Flutter自定义应用程序内键盘的实现方法
2022/06/14 Java/Android