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 相关文章推荐
Python3.x和Python2.x的区别介绍
Feb 12 Python
使用Python的PEAK来适配协议的教程
Apr 14 Python
Python编程pygal绘图实例之XY线
Dec 09 Python
Python回文字符串及回文数字判定功能示例
Mar 20 Python
pandas数据分组和聚合操作方法
Apr 11 Python
python numpy 部分排序 寻找最大的前几个数的方法
Jun 27 Python
Python学习笔记之Zip和Enumerate用法实例分析
Aug 14 Python
python简单实现最大似然估计&amp;scipy库的使用详解
Apr 15 Python
Django Admin 上传文件到七牛云的示例代码
Jun 20 Python
如何利用Python动态模拟太阳系运转
Sep 04 Python
python 自定义异常和主动抛出异常(raise)的操作
Dec 11 Python
Pytorch DataLoader shuffle验证方式
Jun 02 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
js中的如何定位固定层的位置
2014/06/15 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
2014/11/28 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
JavaScript Ajax编程 应用篇
2016/07/02 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
详解用vue.js和laravel实现微信授权登陆
2017/06/23 Javascript
Vue中组件之间数据的传递的示例代码
2017/09/08 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
Vue.js 2.5新特性介绍(推荐)
2017/10/24 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
layer.confirm点击第一个按钮关闭弹出框的方法
2019/09/09 Javascript
纯js实现无缝滚动功能代码实例
2020/02/21 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
用Python实现命令行闹钟脚本实例
2016/09/05 Python
浅析Python中的赋值和深浅拷贝
2017/08/15 Python
Django高级编程之自定义Field实现多语言
2019/07/02 Python
教你如何编写、保存与运行Python程序的方法
2019/07/12 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
Python常用数字处理基本操作汇总
2020/09/10 Python
python 实现简易的记事本
2020/11/30 Python
女子锻炼服装和瑜伽服装:Splits59
2019/03/04 全球购物
StringBuilder和String的区别
2015/05/18 面试题
数字天堂软件测试面试题
2012/12/23 面试题
感恩教育活动总结
2014/05/05 职场文书
企业演讲稿范文大全
2014/05/20 职场文书
大学生入党积极分子自我评价
2014/09/20 职场文书
加强机关作风建设心得体会
2014/10/22 职场文书
领导班子整改方案和个人整改措施
2014/10/25 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
尊师重教主题班会
2015/08/14 职场文书
详解JSON.parse和JSON.stringify用法
2022/02/18 Javascript