惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 叶小钗
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
大猫的无限游戏
大猫的无限游戏
美团技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
aimingoo的专栏
aimingoo的专栏
腾讯CDC
WordPress大学
WordPress大学
Apple Machine Learning Research
Apple Machine Learning Research
F
Fortinet All Blogs
G
Google Developers Blog
MongoDB | Blog
MongoDB | Blog
Microsoft Azure Blog
Microsoft Azure Blog
小众软件
小众软件
Engineering at Meta
Engineering at Meta
博客园_首页
B
Blog RSS Feed
D
Docker
M
MIT News - Artificial intelligence
爱范儿
爱范儿
I
InfoQ

博客园 - 湖东

土鸡钵 工作中常见的一些英语(三) 工作中常见的一些英语(二) IDEA Community环境搭建笔记 查死锁 Jemeter使用 记录 ASP.NET并发处理 如何管理一个散漫的团队 平板开发常用框架了解 关于团队管理的一些好贴 maven项目对象配置文件 pom.xml 解析(l转载) eclipse + maven +tomcat 开发环境搭建 正则表达式30分钟入门教程(转载) 前端进阶知识汇总 速度提高几百倍,记一次数据结构在实际工作中的运用(转) SQL Server应用模式之OLTP系统性能分析(转载网上的文章并结合自已的实例 ,部分脚本有做调整 ) SQL Server I/O 问题的诊断分析(转载) 一次性能优化实战经历 Sqlserver:动态性能视图:sys.dm_os_wait_stats
java算法计算一元一次方程
湖东 · 2020-12-14 · via 博客园 - 湖东

java算法计算一元一次方程是昨年10月写的了,最近想写写算法就把它整理出来了。

核心思想是将方程转化为:aX+b = cX+d 的形式再进行计算,转化的思想是根据符号的优先级一层一层的分割。分割规则是先把+号能分割完的分割完,再把-号能分割完的分割完,最后分割*/号,不能从括号里面分割。具体过程如下:

方程:-3-12+2*(-7+5x)=-3-4+3*(6x+9)+10*3-20-30,以左边为例:

先根据 + 号 分割,结果为:

左:-3-12                              +                             右: 2*(-7+5x)

左边只能根据 - 号分割,右边根据*号分割

左:左:-3    -    右:12         +                             右: 左:2         *       右:-7+5x

左边,右边都是 aX+b 形式直接计算,-3也是aX+b形式(a=0,b=-3)

左:-15                                  +                             右:-14+10x

最后左侧将转化为:10x-29

完整代码如下:

/**
 * Created by LL on 2016/10/13.
 */
public class yiyuanyicifangcheng {

    public static void main(String[] args) {
        String string="-3-12+2*(-7+5x)=-3-4+3*(6x+9)+10*3-20-30";
        double result = calculate(string);
        System.out.println("计算结果:x = "+result);
    }

    /**
     * 此类方法用于将字符串化为: aX+b 结构,结果返回a,b
     * @param str:需要计算的字符串
     */
    public static Result translate(String str) {
        str=deleteKH(str);
        char[] chars = str.toCharArray();
        

运行结果:

这里写图片描述