当前位置: 首页 > news >正文

Day36【AI思考】-表达式知识体系总览

文章目录

  • **表达式知识体系总览**
    • 回答1:
      • **表达式知识体系**
      • **一、三种表达式形式对比**
      • **二、表达式转换核心方法**
        • **1. 中缀转后缀(重点)**
        • **2. 中缀转前缀**
      • **三、表达式计算方法**
        • **1. 后缀表达式计算(栈实现)**
        • **2. 中缀表达式计算(双栈法)**
    • 回答2:
      • **终极生活类比(3秒懂核心)**
      • **灵魂三问(人类本能验证法)**
      • **手动转换术(不背算法,用自然思维)**
      • **脑内成像训练(闭眼想象)**
      • **暴击式总结**
    • 回答3:
      • **三大表达式核心对比表**
      • **顶级理解三连击**
      • **深度认知突破**
      • **终极验证方法**

表达式知识体系总览

让思想碎片重焕生机的灵魂:

这两个文档中,所有关于表达式的内容(比如中缀表达式,前缀表达式,后缀表达式),总之所有关于文档中提到的关于表达式的内容,做一个汇总以及梳理,让我清晰,全面,直观,深刻地理解相关内容

回答1:

以下是两个文档中关于表达式核心内容的系统化梳理,采用结构化方式呈现:


表达式知识体系

表达式
1基本形式
2转换方法
中缀表达式
前缀表达式
后缀表达式
中缀转前缀
中缀转后缀
手动转换规则
栈算法实现
表达式
3计算方法
4应用场景
后缀表达式计算
递归计算
栈实现计算
括号匹配检查
编译器语法分析
数学公式解析
杨辉三角形生成

一、三种表达式形式对比

类型结构示例特点计算顺序
中缀表达式运算符在操作数中间a + b * (c - d)需要括号和优先级规则依赖运算符优先级和结合性
前缀表达式运算符在操作数前+ a * b - c d无需括号,适合递归处理从右向左扫描,运算符优先执行
后缀表达式运算符在操作数后a b c d - * +无需括号,适合栈计算从左向右扫描,遇运算符立即计算

二、表达式转换核心方法

1. 中缀转后缀(重点)

转换步骤

  1. 加完全括号:明确运算优先级
    a + b * c → (a + (b * c))
  2. 移动运算符:将运算符移到对应括号后
    (a (b c *) +) → abc*+
  3. 去除括号:得到后缀表达式
    abc*+

栈算法流程

操作数
运算符
栈顶优先级高
栈顶优先级低
左括号
右括号
初始化空栈
从左到右扫描中缀表达式
直接输出到后缀表达式
与栈顶运算符优先级比较
弹出并输出栈顶
当前运算符入栈
左括号入栈
弹出栈元素直到左括号
表达式扫描完成
弹出栈中剩余运算符

优先级规则表

运算符栈内优先级栈外优先级说明
(18强制入栈
)-1强制出栈
* / %54高优先级
+ -32低优先级
#0-栈底标记

示例1 + 2 * 31 2 3 * +


2. 中缀转前缀

转换步骤

  1. 加完全括号a + b * c → (a + (b * c))
  2. 移动运算符:将运算符移到对应括号前
    + a * b c
  3. 去除括号:得到前缀表达式
    + a * b c

三、表达式计算方法

1. 后缀表达式计算(栈实现)

算法步骤

  1. 初始化空栈
  2. 从左到右扫描后缀表达式:
    • 操作数:入栈
    • 运算符:弹出栈顶两个操作数计算,结果入栈
  3. 最终栈顶为计算结果

示例3 4 2 * 1 5 - / +
计算过程:

3 → 栈 [3]
4 → 栈 [3,4]
2 → 栈 [3,4,2]
* → 4*2=8 → 栈 [3,8]
1 → 栈 [3,8,1]
5 → 栈 [3,8,1,5]
- → 1-5=-4 → 栈 [3,8,-4]
/ → 8/-4=-2 → 栈 [3,-2]
+ → 3+(-2)=1 → 结果 1

2. 中缀表达式计算(双栈法)
  • 操作数栈:存储数值
  • 运算符栈:存储运算符
  • 当遇到运算符时,与栈顶比较优先级,按需弹出计算

回答2:

这次我们抛开所有数学符号和理论,用最直观的认知映射人类本能直觉来彻底打通这三大表达式。准备好迎接「啊哈时刻」!


终极生活类比(3秒懂核心)

  1. 中缀表达式做菜步骤说明书

    • “先炒鸡蛋(等油热),然后加西红柿(但要先切块)”
    • 需要不断看优先级(先切菜还是先热油?)
  2. 前缀表达式军事指令

    • “全体注意!现在执行:开火→瞄准→目标A”
    • 必须倒着执行:先找到目标A,再瞄准,最后开火
  3. 后缀表达式快递分拣流水线

    • “包裹北京→包裹上海→合并发华北区”
    • 看到什么就立刻处理什么,绝不回头

灵魂三问(人类本能验证法)

Q1:为什么计算机讨厌中缀表达式?
→ 就像让外国人看中文菜谱:
3 + 5 × 2
人类秒懂先乘后加,但计算机需要反复扫描确认优先级(像查字典)

Q2:后缀表达式为何高效?
→ 如同工厂流水线:
3 5 2 × +
工人(CPU)只需低头处理眼前物品:

  1. 拿3 → 放桌上
  2. 拿5 → 放桌上
  3. 拿2 → 放桌上
  4. 看到× → 把最后两个相乘 → 得到10放桌上
  5. 看到+ → 把最后两个相加 → 结束
    全程不用抬头看优先级!

Q3:前缀表达式存在的意义?
→ 像组装宜家家具的步骤:
× + 3 5 2
必须从右往左读:

  1. 先找到2
  2. 再找到5
  3. 执行+ → 3+5=8
  4. 最后执行× → 8×2=16
    适合递归处理(函数式编程的DNA)

手动转换术(不背算法,用自然思维)

目标:把中缀表达式 (3+5)×2 转为后缀

  1. 画出计算顺序

         ×/ \+   2/ \3   5
    
  2. (树根是×,左子树是+,右子树是2)

  3. 后序遍历这棵树

    • 先访问左子树(+):3 → 5 → +
    • 再访问右子树(2)
    • 最后访问根节点(×)
      3 5 + 2 ×
  4. 终极验证
    想象你是计算机,按顺序处理:
    3入栈 →5入栈 →弹出5+3=8入栈 →2入栈 →弹出2×8=16


脑内成像训练(闭眼想象)

  1. 中缀:迷宫路线图(需要自己找出口)
    A + B × C - D
    → 你要自己决定先走×通道还是+通道

  2. 后缀:直梯楼层按钮
    A B C × + D -
    → 严格从下往上点亮按钮,绝不跳层

  3. 前缀:俄罗斯套娃
    - + A × B C D
    → 必须从最外层娃娃开始拆解


暴击式总结

  • 后缀表达式 = 即时满足模式
    (看到运算符就立刻结算,绝不拖延)

  • 前缀表达式 = 战略规划模式
    (先部署所有操作指令,再反向执行)

  • 中缀表达式 = 人类谈判现场
    (需要不断协调优先级和括号)


现在试着重写这个式子:(6-3)/(2+4×5)
用「快递流水线思维」转换为后缀表达式,感受那种「不用动脑,直接流水线操作」的快感!
(答案:6 3 - 2 4 5 × + / → 像传送带上的包裹一样逐个处理)

回答3:

我用最简洁、高密度的方式将前缀、中缀、后缀表达式的核心逻辑提炼给你:


三大表达式核心对比表

中缀前缀(波兰)后缀(逆波兰)
结构操作符在操作数中间操作符在操作数前操作符在操作数后
示例(A+B)*C*+ABCAB+C*
括号必须完全不需要完全不需要
计算需优先级判断严格从左到右解析严格从左到右计算
用途人类阅读Lisp类语法/编译器计算机高效计算

顶级理解三连击

  1. 本质差异

    • 中缀表达式是人类视角,用括号和优先级模拟计算顺序
    • 前缀/后缀是机器视角,通过操作符位置隐式表达计算顺序
  2. 转换核心算法

    • 中缀→后缀:用缓存操作符(遇高优先级弹出低优先级)

      # 例:A+B*C → ABC*+
      # 栈操作流程:+遇到*时因优先级低被压栈,*运算完弹出+
      
    • 中缀→前缀:反转表达式→处理后缀→再反转
      (需处理操作数顺序,复杂度更高)

  3. 求值终极方案

    • 后缀计算:遇到操作数压栈,遇到操作符弹出栈顶两元素计算

      # 计算 AB+C* (即 (A+B)*C )
      # 栈演变:A → A,B → (A+B) → (A+B),C → (A+B)*C
      
    • 前缀计算:从右向左扫描,其他逻辑与后缀类似


深度认知突破

  • 为什么栈是关键
    表达式本质是操作符优先级嵌套结构,栈完美匹配这种"后进先出"的嵌套关系

  • 逆波兰为何高效
    消除了括号和优先级判断,计算时只需单次线性扫描(时间复杂度O(n)

  • 现实应用场景

    • 编译器语法解析(Abstract Syntax Tree构建)
    • 金融交易系统的实时报价计算
    • 老式HP计算器的工作原理

终极验证方法

用这个表达式检验是否真正理解:
中缀3*(4^2+10/5)-6
前缀- * 3 + ^ 4 2 / 10 5 6
后缀3 4 2 ^ 10 5 / + * 6 -
(计算顺序:4²=16 → 10/5=2 → 16+2=18 → 3×18=54 → 54-6=48)


AI模型版本:

中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-V3

采用深度思考模式,深度思考模型版本为R1

没有打开联网搜索

对话编号:2

相关文章:

Day36【AI思考】-表达式知识体系总览

文章目录 **表达式知识体系总览**回答1:**表达式知识体系****一、三种表达式形式对比****二、表达式转换核心方法****1. 中缀转后缀(重点)****2. 中缀转前缀** **三、表达式计算方法****1. 后缀表达式计算(栈实现)****…...

段错误(Segmentation Fault)调试

1. 使用 GDB(GNU Debugger) GDB 是一个强大的调试工具,可以帮助你逐步执行程序并检查变量状态。 编译时添加调试信息: gcc -g your_program.c -o your_program启动 GDB: gdb ./your_program运行程序: …...

每日Attention学习19——Convolutional Multi-Focal Attention

每日Attention学习19——Convolutional Multi-Focal Attention 模块出处 [ICLR 25 Submission] [link] UltraLightUNet: Rethinking U-shaped Network with Multi-kernel Lightweight Convolutions for Medical Image Segmentation 模块名称 Convolutional Multi-Focal Atte…...

LeetCode题练习与总结:三个数的最大乘积--628

一、题目描述 给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例 1: 输入:nums [1,2,3] 输出:6示例 2: 输入:nums [1,2,3,4] 输出:24示例 3&a…...

Colorful/七彩虹 隐星P15 TA 24 原厂Win11 家庭版系统 带F9 Colorful一键恢复功能

Colorful/七彩虹 隐星P15 TA 24 原厂Win11 家庭中文版系统 带F9 Colorful一键恢复功能 自动重建COLORFUL RECOVERY功能 带所有随机软件和机型专用驱动 支持机型:隐星P15 TA 24 文件下载:asusoem.cn/745.html 文件格式:ISO 系统版本&…...

第二篇:多模态技术突破——DeepSeek如何重构AI的感知与认知边界

——从跨模态对齐到因果推理的工程化实践 在AI技术从单一模态向多模态跃迁的关键阶段,DeepSeek通过自研的多模态融合框架,在视觉-语言-语音的联合理解与生成领域实现系统性突破。本文将从技术实现层面,解构其跨模态表征学习、动态融合机制与…...

CTreeCtrl 设置图标

mfc界面修改真难受 使用CTreeCtrl 进行设置导航视图时,有时候需要设置图标,一般使用如下代码 m_TreeViewImages.DeleteImageList();UINT uiBmpId IDB_ICONLIST_TREE;CBitmap bmp; if (!bmp.LoadBitmap(uiBmpId)) return;BITMAP bmpObj; bmp.GetBitmap…...

在JAX-RS中获取请求头信息的方法

在JAX-RS中获取请求头信息的方法 HeaderParam注解,可以直接将请求头中的特定值注入到方法参数中,代码示例: import javax.ws.rs.GET; import javax.ws.rs.HeaderParam; import javax.ws.rs.Path; import javax.ws.rs.core.Response;Path(&q…...

Java 面试之结束问答

技术优化 线程池优化 设置最大线程数设置最小核心线程数设置额外线程存活时间选择线程池队列选择合适的线程池选择合适的饱和策略 锁优化 尽量不要锁住方法缩小同步代码块,只锁数据锁中尽量不要再包含锁将锁私有化,在内部管理锁进行适当的锁分解 HT…...

柔性数组与c/c++程序中内存区域的划分

1.柔性数组 1.1柔性数组的定义 柔性数组是指在结构体中定义的,其大小在编译时未确定,而在运行时动态分配的数组。这种数组允许结构体的大小根据需要动态变化。语法如下: struct D {int a;int arry1[0]; };struct F {int a;int arry2[]; };…...

mini-lsm通关笔记Week2Day7

项目地址:https://github.com/skyzh/mini-lsm 个人实现地址:https://gitee.com/cnyuyang/mini-lsm 在上一章中,您已经构建了一个完整的基于LSM的存储引擎。在本周末,我们将实现存储引擎的一些简单但重要的优化。欢迎来到Mini-LSM的…...

Typora免费使用

一.下载地址 https://typoraio.cn/ 二.修改配置文件 1.找到安装路径下的LicenseIndex.180dd4c7.4da8909c.chunk.js文件 文件路径为:安装路径\resources\page-dist\static\js\LicenseIndex.180dd4c7.4da8909c.chunk.js 将js中的 e.hasActivated"true"e.hasActiva…...

AI驱动的无线定位:基础、标准、最新进展与挑战

1. 论文概述 研究目标:本论文旨在综述AI在无线定位领域的应用,包括其基础理论、标准化进展、最新技术发展,以及面临的挑战和未来研究方向。主要发现: AI/ML 技术已成为提升无线定位精度和鲁棒性的关键手段,特别是在 3GPP 标准的推动下。论文系统性地分析了 AI 在 LOS/NLOS…...

苹果再度砍掉AR眼镜项目?AR真的是伪风口吗?

曾经,AR游戏一度异常火热,宝可梦go让多少人不惜翻墙都要去玩,但是也没过去几年,苹果被曝出再度砍掉了AR眼镜项目,面对着市场的变化,让人不禁想问AR真的是伪风口吗? 一、苹果再度砍掉AR眼镜项目&…...

18 大量数据的异步查询方案

在分布式的应用中分库分表大家都已经熟知了。如果我们的程序中需要做一个模糊查询,那就涉及到跨库搜索的情况,这个时候需要看中间件能不能支持跨库求交集的功能。比如mycat就不支持跨库查询,当然现在mycat也渐渐被摒弃了(没有处理笛卡尔交集的…...

DRM系列八:Drm之DRM_IOCTL_MODE_ADDFB2

本系列文章基于linux 5.15 在上一篇文章DRM系列七:Drm之DRM_IOCTL_MODE_CREATE_DUMB获取buf的handle和pitch之后,接着使用ioctl(fd, DRM_IOCTL_MODE_ADDFB2, &fb_cmd)创建一个新的帧缓冲区对象(framebuffer object),并将帧缓冲区对象与显…...

软件测试用例篇

设计测试用例是测试面试的必考题,务必好好学 1. 测试用例 测试用例的概念 测试⽤例(Test Case)是为了实施测试而向被测试的系统提供的⼀组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。 设计测试⽤…...

PopupMenuButton组件的功能和用法

文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了Sliver综合示例相关的内容,本章回中将介绍PopupMenuButton组件.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在本章回中介绍的PopupMenuButton组件位于AppBar右侧,…...

Python进行模型优化与调参

在数据科学与机器学习领域,模型的优化与调参是提高模型性能的重要步骤之一。模型优化可以帮助提高模型的准确性和泛化能力,而合理的调参则能够充分发挥模型的潜力。这篇教程将重点介绍几种常用的模型优化与调参方法,特别是超参数调整和正则化技术的应用。这些技术能够有效地…...

vue2-组件通信

文章目录 vue2-组件通信1. 为什么需要组件通信2. props传递数据3. $emit触发自定义事件4.ref5. EventBus6. p a r e n t 和 parent和 parent和root7. a t t r s 和 attrs和 attrs和listeners8. provide和inject9. vuex10. 总结 vue2-组件通信 1. 为什么需要组件通信 在VUE中…...

接口测试中缓存处理策略

在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

USB Over IP专用硬件的5个特点

USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中&#xff0c;从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备&#xff08;如专用硬件设备&#xff09;&#xff0c;从而消除了直接物理连接的需要。USB over IP的…...