等差等比数列

通项/求和/任意项

423 次访问

数列计算器

等差 / 等比 / 斐波那契 / 卢卡斯 / 三角数 / 多项式数 / 质数 / 调和 / 递推自定义
第 n 项 aₙ
前 n 项和 Sₙ
数列前 20
区间求和 S(m, n) = aₘ + aₘ₊₁ + … + aₙ
数列散点 / 折线图(横轴 n · 纵轴 aₙ)

经典数列示例

点击载入参数

数列知识参考

· 等差数列 · 相邻两项差为常数 d,通项 aₙ = a₁ + (n−1)d,前 n 项和 Sₙ = n(a₁+aₙ)/2 = na₁ + n(n−1)d/2

· 等比数列 · 相邻两项比为常数 q,通项 aₙ = a₁·qⁿ⁻¹,前 n 项和 Sₙ = a₁(1−qⁿ)/(1−q)(q≠1),无穷和 S = a₁/(1−q)(|q|<1)

· 斐波那契 · Fₙ = Fₙ₋₁ + Fₙ₋₂,比值 Fₙ₊₁/Fₙ → φ ≈ 1.618 黄金分割比

· 卢卡斯数 · 与斐波那契同递推但起始 L₁=2, L₂=1,Lₙ = Fₙ₋₁ + Fₙ₊₁

· 三角数 / 四面体数 · 二维/三维堆叠点数,Tₙ = n(n+1)/2,Teₙ = n(n+1)(n+2)/6

· 调和数列 · Hₙ = 1+1/2+1/3+…+1/n,发散,Hₙ ≈ ln(n) + γ(γ ≈ 0.5772 欧拉常数)

· 单调性 / 收敛性 · 后项与前项差恒正/负 → 单调;|aₙ₊₁/aₙ| → r<1 → 收敛

关于本工具

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

使用场景

📊

等额本金月供

购房者申请 30 年等额本金贷款,每月还款额递减,但递减幅度取决于利率和期限。输入贷款总额、年利率、期数,本工具一次性输出每月递减的固定金额、首月与末月月供差,以及总利息支出。帮助判断等额本金是否比等额本息更适合现金流前紧后松的工薪族。

🏫

等额本息月供

年轻人申请 20 年等额本息房贷,每月还款额固定,但前期利息占比高。输入贷款本金、利率、期数,本工具直接算出每月固定还款额,并列出每期本金与利息的分配明细。适合希望月供稳定、不想逐年调整预算的首次购房者。

🎓

教育金储蓄规划

家长每年固定存入一笔钱作为孩子大学教育金,假设年化收益率 4%,存 18 年。本工具按等额本金模式计算每年存入额与累计本息和,输出第 18 年末的总金额。帮助家庭在通胀和学费上涨背景下,倒推出每年必须存下的金额。

🏭

设备折旧计算

企业购入一台价值 100 万的设备,采用年数总和法折旧,残值率 5%。本工具按等差递减模式计算每年折旧额:第一年最高,之后逐年递减固定金额。财务人员直接输入原值、残值、使用年限,得到每期折旧明细,用于税务申报与利润核算。

💵

分期还款计划

信用卡消费 1.2 万元分 12 期,每期手续费率 0.6%,采用等额本金方式还款。本工具计算每期本金固定、利息逐期递减的还款明细,输出每期应还总额与总手续费。帮助持卡人看清实际资金占用成本,避免被低手续费率误导。

🏗️

工程进度款拨付

施工合同约定按季度拨付进度款,首期 100 万,之后每期递增 20 万,共 8 期。本工具按等差数列求和公式直接算出 8 期总拨付款额,以及任意一期(如第 5 期)的应付金额。项目经理无需手动累加,避免漏算或错算。

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

维度本工具竞品 A(Wolfram Alpha)传统方法(手算/教材)
数据隐私纯浏览器端计算,数据不上传服务器输入发送至云端服务器处理完全本地,无数据外泄风险
处理速度输入后即时返回结果(<1秒)依赖网络,通常2-5秒取决于计算复杂度,数分钟至数小时
离线可用完全离线,无需网络必须联网完全离线
输入灵活性支持通项公式、求和范围、任意项索引需按Wolfram语法输入,学习成本高需手动代入公式,易出错
结果展示直接输出数值结果,无冗余信息输出完整推导过程、图表、相关公式仅有最终数值,无过程验证
收费模式完全免费,无功能限制免费版有计算时间限制,Pro版$5/月仅需纸笔,零成本
使用门槛无需注册,打开即用需注册账号,需掌握Wolfram语法需理解数列公式并手动计算

使用指南

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

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

输入输出说明
等差数列,首项=1,公差=2,项数=10通项: an = 2n - 1 前10项: 1, 3, 5, 7, 9, 11, 13, 15, 17, 19 前10项和: 100典型场景:求奇数数列的通项、前n项和
等比数列,首项=2,公比=3,项数=5通项: an = 2 × 3^(n-1) 前5项: 2, 6, 18, 54, 162 前5项和: 242典型场景:公比大于1的等比数列增长
等差数列,首项=100,公差=-5,项数=20通项: an = 105 - 5n 前20项: 100, 95, 90, ..., 5 前20项和: 1050边界case:公差为负的递减等差数列
等比数列,首项=1,公比=1,项数=100通项: an = 1 前100项: 1, 1, 1, ..., 1 前100项和: 100边界case:公比为1的常数列,通项恒为1
等差数列,首项=0.5,公差=0.1,项数=10通项: an = 0.4 + 0.1n 前10项: 0.5, 0.6, 0.7, ..., 1.4 前10项和: 9.5边界case:首项和公差为小数的等差数列
等比数列,首项=1,公比=-2,项数=6通项: an = (-2)^(n-1) 前6项: 1, -2, 4, -8, 16, -32 前6项和: -21易错case:公比为负时,项正负交替
等差数列,首项=1,公差=0,项数=10通项: an = 1 前10项: 1, 1, 1, ..., 1 前10项和: 10易错case:公差为0的常数列,新手常误以为无意义

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

1. 公差或公比输入了非数值字符

错误
d=2a, q=1/2, r=3.14.15
修复
d=2, q=0.5, r=3.1415

工具只接受纯数字(整数或小数),不支持分数、带单位或科学计数法;分数需先转为小数

2. 首项或项数输入了负数或零

错误
a1=-5, n=0, n=-3
修复
a1=5, n=10, n=3

首项 a1 可为负数,但项数 n 必须是正整数(≥1),零或负数会导致求和/通项无意义

3. 等比数列公比 q=1 时用错求和公式

错误
S_n = a1*(1-q^n)/(1-q) 直接代入 q=1
修复
S_n = n*a1

q=1 时等比数列退化为常数列,标准求和公式分母为 0 不可用,需单独处理

4. 公差 d=0 时误以为数列不合法

错误
认为 d=0 是无效输入,拒绝计算
修复
d=0 时数列为常数列,通项 an = a1,求和 Sn = n*a1

公差为 0 是合法的等差数列,工具应正常计算,用户无需额外处理

5. 项数 n 超过工具处理上限

错误
n=1000000(百万级)
修复
n=1000(或工具文档标注的合理范围)

浏览器端计算大 n 时可能造成页面卡顿或栈溢出;工具未标注上限时建议 n≤10000

6. 混淆等差数列与等比数列的求和公式

错误
等差数列用 Sn = a1*(1-q^n)/(1-q)
修复
等差求和 Sn = n*(2*a1 + (n-1)*d)/2

两者公式结构不同,等差是线性增长,等比是指数增长,代入错误公式会得到完全错误的结果

7. 输入小数时未注意精度损失

错误
d=0.1, n=100, 期望 Sn 精确等于 505
修复
d=0.1, n=100, 接受结果约为 505.00000000000006

IEEE 754 浮点数无法精确表示 0.1,累加 100 次后误差累积到 1e-14 量级,属正常现象

8. 把项数 n 当成末项值输入

错误
a1=2, d=3, n=14(实际末项是 2+3*13=41)
修复
a1=2, d=3, n=5(想算前 5 项:2,5,8,11,14)

n 是项数(第几项),不是末项数值;末项 an = a1+(n-1)*d,需区分

工作原理

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

核心公式

a_n = a_1 + (n-1)d

变量说明

  • a_n — 第 n 项的值
  • a_1 — 首项(第一项的值)
  • n — 项数(正整数)
  • d — 公差(相邻两项的差值)

示例

等差数列:首项 a_1=3,公差 d=5,求第 10 项。a_10 = 3 + (10-1)×5 = 3 + 45 = 48。即第 10 项为 48。

适用范围

适用于任意实数公差 d 的等差数列,n 为正整数。当 n 极大(如 >10^6)时,手工计算易出错,建议用工具自动计算。

原理图

输入首项 a₁输入公差/公比 d/q输入项数 n选择模式浏览器内公式计算通项 / 求和 / 任意项展示计算结果
用户输入 本地处理 输出结果

开发者集成

3 种主流语言 · 复制即用

import math

def arithmetic_nth(a1, d, n):
    """等差数列第 n 项:a_n = a1 + (n-1)*d"""
    return a1 + (n - 1) * d

def arithmetic_sum(a1, d, n):
    """等差数列前 n 项和:S_n = n/2 * (2*a1 + (n-1)*d)"""
    return n / 2 * (2 * a1 + (n - 1) * d)

def geometric_nth(a1, r, n):
    """等比数列第 n 项:a_n = a1 * r^(n-1)"""
    return a1 * (r ** (n - 1))

def geometric_sum(a1, r, n):
    """等比数列前 n 项和(r ≠ 1):S_n = a1 * (1 - r^n) / (1 - r)"""
    if r == 1:
        return a1 * n
    return a1 * (1 - r ** n) / (1 - r)

# 示例:等差数列 a1=2, d=3, n=5
print("等差数列第5项:", arithmetic_nth(2, 3, 5))   # 14
print("等差数列前5项和:", arithmetic_sum(2, 3, 5)) # 40

# 示例:等比数列 a1=3, r=2, n=4
print("等比数列第4项:", geometric_nth(3, 2, 4))   # 24
print("等比数列前4项和:", geometric_sum(3, 2, 4)) # 45
package main

import "fmt"

func arithmeticNth(a1, d float64, n int) float64 {
	return a1 + float64(n-1)*d
}

func arithmeticSum(a1, d float64, n int) float64 {
	return float64(n) / 2.0 * (2*a1 + float64(n-1)*d)
}

func geometricNth(a1, r float64, n int) float64 {
	result := a1
	for i := 1; i < n; i++ {
		result *= r
	}
	return result
}

func geometricSum(a1, r float64, n int) float64 {
	if r == 1 {
		return a1 * float64(n)
	}
	return a1 * (1 - mathPow(r, n)) / (1 - r)
}

// 简单整数幂(避免 math.Pow 对 float64 的精度损失)
func mathPow(base float64, exp int) float64 {
	result := 1.0
	for i := 0; i < exp; i++ {
		result *= base
	}
	return result
}

func main() {
	fmt.Println("等差数列第5项:", arithmeticNth(2, 3, 5))   // 14
	fmt.Println("等差数列前5项和:", arithmeticSum(2, 3, 5)) // 40
	fmt.Println("等比数列第4项:", geometricNth(3, 2, 4))   // 24
	fmt.Println("等比数列前4项和:", geometricSum(3, 2, 4)) // 45
}
function arithmeticNth(a1, d, n) {
  return a1 + (n - 1) * d;
}

function arithmeticSum(a1, d, n) {
  return (n / 2) * (2 * a1 + (n - 1) * d);
}

function geometricNth(a1, r, n) {
  return a1 * Math.pow(r, n - 1);
}

function geometricSum(a1, r, n) {
  if (r === 1) return a1 * n;
  return (a1 * (1 - Math.pow(r, n))) / (1 - r);
}

console.log('等差数列第5项:', arithmeticNth(2, 3, 5));   // 14
console.log('等差数列前5项和:', arithmeticSum(2, 3, 5)); // 40
console.log('等比数列第4项:', geometricNth(3, 2, 4));   // 24
console.log('等比数列前4项和:', geometricSum(3, 2, 4)); // 45

常见问题

8 个高频疑问

怎么用这个工具算等差数列的前n项和?
在「等差」模式下,输入首项 a₁、公差 d 和项数 n,工具自动计算前 n 项和 Sₙ。如果已知末项 aₙ,也可以先切换到「任意项」模式算出末项,再切回求和模式。注意:n 必须为正整数,d 和 a₁ 支持整数、小数、负数。结果保留 10 位小数,超出用科学计数法显示。
为什么我输入公比 q=0.5,等比数列求和结果和手算不一样?
检查是否用了「求和」还是「通项」模式。求和公式 Sₙ = a₁(1-qⁿ)/(1-q) 仅当 q≠1 有效。如果 q=0.5,n 较大时 qⁿ 接近 0,结果趋近 a₁/(1-q)。如果手算用了首项加末项乘以项数除以 2(等差数列公式),那自然对不上。另外,工具结果四舍五入到 10 位小数,极小误差属于浮点运算正常范围。
这个工具能算的项数 n 有上限吗?
纯浏览器端 JavaScript 计算,理论上 n 可以很大(比如 10⁷),但受限于内存和计算时间。实测 n=10⁶ 时,通项计算瞬间完成,求和需 1-2 秒;n=10⁷ 时求和可能卡顿 10 秒以上(浏览器会提示脚本无响应)。建议 n 不超过 10⁶ 以保证流畅体验。如果 n 超过 10⁹,结果会因浮点溢出显示 Infinity,此时需改用科学计数法或分段计算。
能算小数或负数的公差/公比吗?
可以。首项 a₁、公差 d(等差)、公比 q(等比)都支持整数、小数、负数。比如等差数列 a₁=0.5, d=-0.3,前 5 项为:0.5, 0.2, -0.1, -0.4, -0.7。等比数列 a₁=2, q=-1.5,前 4 项为:2, -3, 4.5, -6.75。注意:公比 q=0 时除首项外全为 0,求和正常;q=1 时等比求和公式分母为 0,工具会特殊处理为 Sₙ = n×a₁。
工具算出的通项公式和我在教科书上看到的不一样?
教科书上等差数列通项一般写 aₙ = a₁ + (n-1)d,等比写 aₙ = a₁·qⁿ⁻¹,本工具完全按此公式计算。如果发现第 n 项数值对不上,请检查 a₁ 是否误填成了 a₀(有些教材把第 0 项当首项)。另外,工具默认 n 从 1 开始编号,如果输入 n=0 会报错——第 0 项不在标准定义内。
断网了还能用吗?
能。本工具所有计算在浏览器本地完成,不依赖服务器。首次加载后(或页面被浏览器缓存),断网状态下刷新页面仍可正常使用。可以打开浏览器开发者工具(F12)→ Network 标签,输入数字点击计算,确认没有 HTTP 请求发出。如果担心网络问题,可以提前把页面加入浏览器书签,离线时打开即可。
算出的数列能导出或复制吗?
结果区域的每一项都可以手动选中复制(Ctrl+C)。如果一次需要导出大量项(比如前 1000 项),建议在输入框填入 n=1000,结果会以列表形式展示,全选复制后粘贴到 Excel 或记事本。工具本身没有「一键导出 CSV」功能,但纯文本复制后,Excel 的「分列」功能可以快速整理成表格。
等差数列和等比数列的结果保留几位小数?有误差吗?
结果默认四舍五入保留 10 位小数。对于整数输入(如 a₁=1, d=2),输出精确整数。对于小数或分数输入(如 a₁=1/3 用 0.3333333333 代替),浮点运算会引入微小误差(约 10⁻¹⁵ 量级),10 位小数以内完全可靠。如果需要精确分数结果,建议使用支持分数运算的数学软件(如 Wolfram Alpha),本工具面向快速数值计算。
选择 打开 +新窗口 esc关闭