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 相关文章推荐
Flask入门教程实例:搭建一个静态博客
Mar 27 Python
Python中的Descriptor描述符学习教程
Jun 02 Python
Python实现屏幕截图的两种方式
Feb 05 Python
python3利用tcp实现文件夹远程传输
Jul 28 Python
python2 与 pyhton3的输入语句写法小结
Sep 10 Python
Python Pandas批量读取csv文件到dataframe的方法
Oct 08 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
python pygame实现球球大作战
Nov 25 Python
python开发实例之Python的Twisted框架中Deferred对象的详细用法与实例
Mar 19 Python
利用pandas向一个csv文件追加写入数据的实现示例
Apr 23 Python
Python简单实现词云图代码及步骤解析
Jun 04 Python
python如何求圆的面积
Jul 01 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
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
php实现简单的上传进度条
2015/11/17 PHP
深入理解PHP中的empty和isset函数
2016/05/26 PHP
php封装json通信接口详解及实例
2017/03/07 PHP
PHP常用字符串函数用法实例总结
2020/06/04 PHP
发现的以前不知道的函数
2006/09/19 Javascript
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
详细介绍jQuery.outerWidth() 函数具体用法
2015/07/20 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
js提交form表单,并传递参数的实现方法
2016/05/25 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
基于javascript实现按圆形排列DIV元素(一)
2016/12/02 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
vue router 组件的高级应用实例代码
2019/04/08 Javascript
NUXT SSR初级入门笔记(小结)
2019/12/16 Javascript
如何使用JavaScript检测空闲的浏览器选项卡
2020/05/28 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
[42:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS OpTic
2018/03/31 DOTA
Python实现从订阅源下载图片的方法
2015/03/11 Python
python存储16bit和32bit图像的实例
2018/12/05 Python
python里dict变成list实例方法
2019/06/26 Python
python matplotlib库直方图绘制详解
2019/08/10 Python
Anaconda之conda常用命令介绍(安装、更新、删除)
2019/10/06 Python
Django框架表单操作实例分析
2019/11/04 Python
python实现画循环圆
2019/11/23 Python
Python自动采集微信联系人的实现示例
2020/02/28 Python
Canvas 帧动画吃苹果小游戏
2020/08/05 HTML / CSS
美国乡村商店:Plow & Hearth
2016/09/12 全球购物
旅游管理本科生求职信
2013/10/14 职场文书
元宵节主持词
2014/03/25 职场文书
新闻工作者先进事迹
2014/05/26 职场文书
实验心得体会
2014/09/05 职场文书
追讨欠款律师函
2015/06/24 职场文书
2016年学校十一国庆节活动总结
2016/04/01 职场文书