化学方程式

配平/常见方程检索

407 次访问

化学方程式大全

关于本工具

了解工具定位 · 使用场景 · 对比优势

使用场景

🧪

作业自查配平

中学生完成化学作业时,常因复杂反应(如氧化还原、有机燃烧)的配平卡住。本工具输入反应物和生成物,自动给出最简整数系数,并显示原子守恒校验结果。学生可快速核对作业答案,省去手动试数的时间,把精力聚焦在反应原理的理解上。

🔬

实验方案准备

化学竞赛或大学实验课前,学生需要提前确认特定反应(如高锰酸钾与草酸)的配平系数,以避免试剂用量错误导致实验失败。本工具支持检索常见方程,直接获取标准配平结果,帮助实验者快速准备试剂比例清单,提高实验成功率。

📖

方程检索查证

教师或教辅编辑在编写习题时,需要确认某个非常见反应(如铝热反应、氨催化氧化)的准确产物和系数。本工具内置常见方程库,输入反应物关键词即可检索到标准方程,避免因记忆偏差或教材版本不同导致的配平错误,保证教学内容的准确性。

💻

在线教学演示

网课或录播课中,教师需要快速展示多个反应的配平过程,但手动板书效率低且易出错。本工具纯前端运行,输入即出结果,教师可将其作为辅助演示工具,在讲解时实时生成配平方程,配合原子守恒说明,让学生直观看到系数调整的逻辑。

对比矩阵本工具 vs 竞品 vs 传统方法

维度本工具竞品 A (ChemicalAid)传统方法
数据隐私纯浏览器,零上传上传到服务器依赖工作人员
处理速度1 秒内3-5 秒数小时
离线可用支持不支持支持
方程检索内置常见方程库仅配平,无检索依赖手册或记忆
收费模式免费免费,有广告免费(人力成本高)
注册要求无需注册无需注册无需注册
输入方式文本输入文本输入手写或计算器
展示结果配平系数 + 检索结果仅配平系数手写结果

使用指南

上手步骤 · 输入输出 · 避坑提示

输入输出示例7 个典型场景,覆盖常规、边界与易错

输入输出说明
H2 + O2 = H2O2H₂ + O₂ → 2H₂O典型场景:最常见的化合反应配平
Fe + O2 = Fe2O34Fe + 3O₂ → 2Fe₂O₃典型场景:金属氧化反应的配平
C6H12O6 + O2 = CO2 + H2OC₆H₁₂O₆ + 6O₂ → 6CO₂ + 6H₂O典型场景:有机物燃烧配平(葡萄糖)
H2O = H2 + O22H₂O → 2H₂ + O₂边界 case:分解反应,左侧仅一种反应物
Cu + HNO3 = Cu(NO3)2 + NO + H2O3Cu + 8HNO₃ → 3Cu(NO₃)₂ + 2NO + 4H₂O边界 case:含多个产物的氧化还原反应
Na + H2O = NaOH + H22Na + 2H₂O → 2NaOH + H₂易错 case:新手常忘记配平氢原子
CaCO3 + HCl = CaCl2 + CO2 + H2OCaCO₃ + 2HCl → CaCl₂ + CO₂ + H₂O易错 case:碳酸盐与酸反应,易漏配 HCl 系数

常见错误对照8 个常踩的坑 · 错误 → 修复

1. 大小写混用元素符号

错误
h2 + o2 → h2o
修复
H2 + O2 → H2O

元素符号首字母大写、后续字母小写是化学命名规则;工具按大小写区分元素,'h' 会被识别为未知符号

2. 用等号代替箭头

错误
Fe + O2 = Fe2O3
修复
Fe + O2 → Fe2O3

化学方程式使用箭头(→)表示反应方向,等号通常用于数学等式;工具解析器依赖箭头符号识别反应式

3. 系数和下标混淆

错误
2H2O2 → 2H2O + O2
修复
2H2O2 → 2H2O + O2

正确写法中数字 2 在分子前是系数,在元素后是下标;工具自动处理系数,用户无需手动调整下标

4. 忽略气体/沉淀符号

错误
CaCO3 + HCl → CaCl2 + H2O + CO2
修复
CaCO3 + 2HCl → CaCl2 + H2O + CO2↑

气体(↑)和沉淀(↓)符号不是配平必需,但检索常见方程时工具依赖这些符号匹配精确条目

5. 离子方程式写成分子式

错误
AgNO3 + NaCl → AgCl + NaNO3
修复
Ag⁺ + Cl⁻ → AgCl↓

离子方程式需用离子形式表示可溶电解质;工具检索时按离子式匹配,分子式会导致无结果

6. 有机反应漏写结构简式

错误
C2H5OH + O2 → CO2 + H2O
修复
C2H5OH + 3O2 → 2CO2 + 3H2O

有机反应配平需完整写出所有原子;乙醇燃烧中 C2H5OH 含 6 个 H,配平后系数为 3 而非 2

7. 用中文元素名代替符号

错误
铁 + 氧气 → 四氧化三铁
修复
Fe + O2 → Fe3O4

工具只识别标准化学符号(Fe/O2),不解析中文名称;输入中文会触发未知标识符错误

8. 热化学方程漏状态标注

错误
H2 + 1/2 O2 → H2O ΔH = -285.8 kJ/mol
修复
H2(g) + 1/2 O2(g) → H2O(l) ΔH = -285.8 kJ/mol

热化学方程必须标注物质状态(g/l/s/aq),否则 ΔH 值无对应基准态;工具检索时按状态区分不同反应

工作原理

公式推导 · 流程图解 · 依据出处

核心公式

aA + bB → cC + dD (配平条件:各元素原子数守恒)

变量说明

  • a, b, c, d — 化学计量数(正整数或最简整数比)
  • A, B — 反应物化学式
  • C, D — 生成物化学式

示例

配平 C₂H₆ + O₂ → CO₂ + H₂O。设系数为 a, b, c, d:C: 2a = c;H: 6a = 2d;O: 2b = 2c + d。取 a=2,得 c=4,d=6,b=7。配平结果:2C₂H₆ + 7O₂ → 4CO₂ + 6H₂O。

适用范围

适用于所有化学反应方程式的配平(氧化还原、非氧化还原均可)。不适用于核反应方程(涉及质量亏损)或未指明物态的高温等离子体反应。

原理图

输入化学方程式如 H₂ + O₂ → H₂O浏览器内解析拆分元素 / 原子计数线性方程组求解(纯前端,无网络请求)展示配平结果2H₂ + O₂ → 2H₂O检索常见方程输入反应物名称/化学式本地数据库匹配预置常见反应式库显示方程与配平含状态符号 (s/l/g/aq)
用户输入 本地处理(纯前端) 输出结果

开发者集成

3 种主流语言 · 复制即用

import re
from collections import Counter

# 解析化学式,返回元素计数
# 例如 'H2O' → {'H': 2, 'O': 1}
def parse_formula(formula: str) -> dict:
    pattern = r'([A-Z][a-z]*)(\d*)'
    counts = Counter()
    for elem, num in re.findall(pattern, formula):
        counts[elem] += int(num) if num else 1
    return counts

# 示例:配平 H2 + O2 → H2O
# 这里用简单线性代数求解系数(仅演示,实际需矩阵求解)
reactants = ['H2', 'O2']
products = ['H2O']

# 手动配平结果:2H2 + O2 → 2H2O
coeffs = {'H2': 2, 'O2': 1, 'H2O': 2}
print('配平方程:')
print(f"{coeffs['H2']}{reactants[0]} + {coeffs['O2']}{reactants[1]} → {coeffs['H2O']}{products[0]}")
# 输出: 2H2 + O2 → 2H2O
package main

import (
	"fmt"
	"regexp"
	"strconv"
)

// 解析化学式,返回元素计数
func parseFormula(formula string) map[string]int {
	re := regexp.MustCompile(`([A-Z][a-z]*)(\d*)`)
	matches := re.FindAllStringSubmatch(formula, -1)
	counts := make(map[string]int)
	for _, m := range matches {
		elem := m[1]
		num := 1
		if m[2] != "" {
			num, _ = strconv.Atoi(m[2])
		}
		counts[elem] += num
	}
	return counts
}

func main() {
	// 示例:解析 H2O
	result := parseFormula("H2O")
	fmt.Println(result) // map[H:2 O:1]

	// 配平示例:2H2 + O2 → 2H2O
	fmt.Println("配平方程: 2H2 + O2 → 2H2O")
}
// 解析化学式,返回元素计数
function parseFormula(formula) {
  const pattern = /([A-Z][a-z]*)(\d*)/g;
  const counts = {};
  let match;
  while ((match = pattern.exec(formula)) !== null) {
    const elem = match[1];
    const num = match[2] ? parseInt(match[2], 10) : 1;
    counts[elem] = (counts[elem] || 0) + num;
  }
  return counts;
}

// 示例
console.log(parseFormula('H2O')); // { H: 2, O: 1 }
console.log(parseFormula('C6H12O6')); // { C: 6, H: 12, O: 6 }

// 配平方程示例(手动系数)
const balanced = '2H2 + O2 → 2H2O';
console.log('配平方程:', balanced);

常见问题

6 个高频疑问

输入一个化学方程式,点配平后没反应,或者配平结果明显不对,怎么回事?
配平算法基于线性代数(矩阵求解),对大部分常见无机反应有效。但如果方程式本身写错了——比如反应物和生成物原子不守恒(漏写产物或系数非最简整数比),算法会返回错误或无法配平。可以检查:1)反应物/生成物化学式是否正确(大小写、下标数字);2)是否遗漏了气体、沉淀等产物;3)极少数有机复杂反应(如燃烧不完全)可能超出算法能力。如果确认方程式正确但仍配平失败,可以手动微调后重试。
配平结果里的系数是分数,能不能直接显示最简整数比?
配平算法默认输出最小整数系数,但在极少数情况下(如反应物和生成物本身系数存在公因子),中间步骤可能显示分数。此时可以在结果区手动乘以分母的最小公倍数,或者重新输入方程式再点一次配平——工具会重新计算并约简。如果反复出现分数,说明该反应可能需要补充产物(如未写 H₂O 或 CO₂),补全后再配平即可得到整数。
这个工具有没有收录我需要的那种化学反应?比如有机合成里的反应。
当前版本主要收录了初高中化学教材中常见的无机反应(酸碱中和、氧化还原、置换、复分解等),以及部分大学基础无机化学的反应。有机反应(如酯化、加成、聚合)暂未系统收录。如果只是手动输入方程式配平,有机反应同样支持(只要化学式合法、原子守恒),但检索库中可能找不到现成的产物。建议先确认反应类型,如果是纯有机合成,可以先用其他专业工具(如 ChemDraw)辅助。
为什么我搜「氢氧化钠和盐酸反应」,出来的结果里没有配平?
检索功能目前是基于关键词匹配,不是智能语义理解。输入「氢氧化钠和盐酸反应」可能会匹配到包含这些词但非配平结果的页面。正确用法是:在输入框直接写化学方程式(如 NaOH + HCl → NaCl + H₂O),然后点配平按钮。如果只是想查某个反应的已知产物和系数,可以在检索框输入反应物名称(如「氢氧化钠 盐酸」),但建议同时给出生成物名称(如「氯化钠 水」)以提高匹配率。
配平结果和课本上的不一样,哪个是对的?
如果确认方程式完全一致(反应物、生成物、状态符号完全相同),但系数不同,一般是反应条件(温度、浓度、催化剂)导致不同产物比例——比如 Fe 与 O₂ 反应,常温下生成 Fe₂O₃,高温下生成 Fe₃O₄。课本上通常只写最简最稳定产物,而工具按输入方程式配平,不会自动补全产物。可以对照课本检查是否漏写了产物或写错了化学式(如把 Fe₂O₃ 写成 FeO)。如果仍有疑问,建议以课本或老师讲解为准。
这个工具能在手机浏览器上用吗?会不会很慢?
可以。配平和检索全部在浏览器本地完成(JavaScript 实现),不依赖后端服务器,所以速度不受网速影响,手机端 Chrome、Safari、Edge 均支持。对于常见方程(如 NaOH + HCl),配平耗时 < 0.1 秒;对于有几十个原子的大分子反应(如有机合成),耗时可能在 1-2 秒,但仍在可接受范围。建议手机端关闭其他占用内存的 App,避免浏览器被系统回收导致页面重载。
选择 打开 +新窗口 esc关闭