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图片转换二进制存入mysql
Dec 06 Python
Python检测字符串中是否包含某字符集合中的字符
May 21 Python
Python 多线程Threading初学教程
Aug 22 Python
python中requests使用代理proxies方法介绍
Oct 25 Python
python批量修改文件编码格式的方法
May 31 Python
Python函数参数匹配模型通用规则keyword-only参数详解
Jun 10 Python
Python实现FLV视频拼接功能
Jan 21 Python
python+selenium定时爬取丁香园的新型冠状病毒数据并制作出类似的地图(部署到云服务器)
Feb 09 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
Apr 10 Python
Python 字符串池化的前提
Jul 03 Python
Python 如何创建一个简单的REST接口
Jul 30 Python
python通过cython加密代码
Dec 11 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 Mysql日期和时间函数集合
2007/11/16 PHP
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
jquery的父子兄弟节点查找示例代码
2014/03/03 Javascript
js实现拖拽效果
2015/02/12 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
js生成随机数(指定范围)的实例代码
2016/07/10 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
js实现数字递增特效【仿支付宝我的财富】
2017/05/05 Javascript
jquery dataTable 获取某行数据
2017/05/05 jQuery
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
JS代码检查工具ESLint介绍与使用方法
2020/02/04 Javascript
vue scroll滚动判断的实现(是否滚动到底部、滚动方向、滚动节流、获取滚动区域dom元素)
2020/06/11 Javascript
[03:39]这就是刀塔,我们是冠军!燃情短片讲述我们的DOTA故事
2019/07/02 DOTA
python的urllib模块显示下载进度示例
2014/01/17 Python
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
跟老齐学Python之玩转字符串(3)
2014/09/14 Python
python3设计模式之简单工厂模式
2017/10/17 Python
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
python中selenium操作下拉滚动条的几种方法汇总
2019/07/14 Python
CentOS7下安装python3.6.8的教程详解
2020/01/03 Python
logging level级别介绍
2020/02/21 Python
python 负数取模运算实例
2020/06/03 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
Sperry官网:帆船鞋创始品牌
2016/09/07 全球购物
承诺书范文
2014/06/03 职场文书
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书
党性分析自查总结
2014/10/14 职场文书
领导班子整改方案
2014/10/25 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
后进生评语大全
2015/01/04 职场文书
2015年度合同管理工作总结
2015/05/22 职场文书
《传颂之物 虚伪的假面》BD发售宣传CM公开
2022/04/04 日漫
python实现双向链表原理
2022/05/25 Python