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实现向QQ群成员自动发邮件的方法
Nov 19 Python
python入门之语句(if语句、while语句、for语句)
Jan 19 Python
python的staticmethod与classmethod实现实例代码
Feb 11 Python
Windows 7下Python Web环境搭建图文教程
Mar 20 Python
pandas的object对象转时间对象的方法
Apr 11 Python
python装饰器-限制函数调用次数的方法(10s调用一次)
Apr 21 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
Feb 09 Python
python如何编写win程序
Jun 08 Python
python和php哪个容易学
Jun 19 Python
Python 流媒体播放器的实现(基于VLC)
Apr 28 Python
python基础之类方法和静态方法
Oct 24 Python
python中urllib包的网络请求教程
Apr 19 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
Yii+MYSQL锁表防止并发情况下重复数据的方法
2016/07/14 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
破解Session cookie的方法
2006/07/28 Javascript
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
javascript写的一个链表实现代码
2009/10/25 Javascript
jQuery对表单元素的取值和赋值操作代码
2011/05/19 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
2014/03/28 Javascript
Extjs grid添加一个图片状态或者按钮的方法
2014/04/03 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
2015/08/21 Javascript
纯js代码实现简单计算器
2015/12/02 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
vue组件 keep-alive 和 transition 使用详解
2019/10/11 Javascript
使用Vue生成动态表单
2019/11/26 Javascript
node创建Vue项目步骤详解
2020/03/06 Javascript
Python中字符串对齐方法介绍
2015/05/21 Python
举例讲解Python的lambda语句声明匿名函数的用法
2016/07/01 Python
Python常见字典内建函数用法示例
2018/05/14 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
python字典key不能是可以是啥类型
2020/08/04 Python
python 如何对logging日志封装
2020/12/02 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
草莓巧克力:Shari’s Berries
2017/02/07 全球购物
Banggood官网:面向全球客户的综合商城
2017/04/19 全球购物
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
电视购物广告词
2014/03/19 职场文书
品牌推广策划方案
2014/05/28 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
婚前保证书范文
2015/02/28 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书
SQL注入详解及防范方法
2021/12/06 MySQL
python如何为list实现find方法
2022/05/30 Python