﻿---
title: "竖式乘法是谁想出来的？"
description: "算 23 × 14 的竖式时，第二行为什么要往左挪一格？我们从古人摆小竹棍算数讲起，经过两千多年前的乘法表、从印度出发的十个数字、明朝的“铺地锦”，一直讲到你作业本上的竖式。"
pubDate: 2026-10-28
tags: ["数学", "乘法", "数学史", "小实验"]
clc: "O121"
hero: "./hero.svg"
refs:
  - id: rods-xinhua
    title: 中国古代的数学瑰宝，到底厉害在哪？
    url: https://www.news.cn/science/20240802/1129bc726ba049c8a92be5b88b7b5abf/c.html
    site: 新华网（来源：科普中国）
    date: 2024-08-02
    note: "讲了算筹、十进位值制，以及算筹用了大约两千年"
  - id: rods-wiki
    title: Counting rods
    url: https://en.wikipedia.org/wiki/Counting_rods
    site: Wikipedia
    note: "算筹的纵式、横式，个位纵、十位横交替摆，空位表示 0；《孙子算经》“一纵十横”"
  - id: liye
    title: 里耶秦简：探索中国首个大一统王朝的生活全景
    url: https://www.news.cn/local/20240416/02cf3c5ad5564b78b41a702fc9275f76/c.html
    site: 新华网
    date: 2024-04-16
    note: "2002 年湖南里耶出土的秦简里有九九乘法表，约 2200 年前"
  - id: suanbiao
    title: 清华简《算表》为最早十进制计算器
    url: https://www.tsinghua.edu.cn/info/1750/71454.htm
    site: 清华大学新闻网
    date: 2017-04-24
    note: "战国时期的 21 支竹简，能把两位数乘法变成四个数相加"
  - id: numerals
    title: History of the Hindu–Arabic numeral system
    url: https://en.wikipedia.org/wiki/History_of_the_Hindu%E2%80%93Arabic_numeral_system
    site: Wikipedia
    note: "印度的十个数字和 0（628 年婆罗摩笈多）、花拉子米（约 825 年）、斐波那契《计算之书》（1202 年）"
  - id: arabic-china
    title: 阿拉伯数字在中国的传播
    url: https://ccl.pku.edu.cn/doubtfire/NumeralUsage/diffusion/diffusion%20of%20arabic%20numbers%20by%20zwd%20lhc.pdf
    site: 北京大学中国语言学研究中心
    note: "19 世纪后半叶，数学书开始用阿拉伯数字做计算"
  - id: lattice
    title: Lattice multiplication
    url: https://en.wikipedia.org/wiki/Lattice_multiplication
    site: Wikipedia
    note: "格子乘法的历史：吴敬 1450 年的《九章算法比类大全》、1478 年意大利的《特雷维索算术》"
  - id: tongwen
    title: "Tongwen Suanzhi (同文算指) and transmission of bisuan (筆算 written calculation) in China"
    url: https://hkumath.hku.hk/~mks/MKSiu_TongwenSuanzhiBisuan_HPM_Revised.pdf
    site: 香港大学数学系
    author: 萧文强（Siu Man-Keung）
    note: "1613 年的《同文算指》第一次系统地把欧洲的笔算介绍到中国，也提到程大位书里的铺地锦"
---

数学课上，老师在黑板上写了一道竖式：23 × 14。

先用 4 去乘 23，得 92，写在第一行。再用 1 去乘 23，得 23，可是老师偏偏不把它和 92 对齐，而是**往左挪了一格**才写。两行一加，答案是 322。

你可能已经会算了，可是心里也许冒出过两个问题：**第二行为什么非要往左挪一格？竖式这个办法，又是谁想出来的？**

<div class="box">
<span class="box-title">先想一想</span>

第二行写的“23”，真的只是 23 吗？如果不往左挪，和 92 对齐着加，答案会是多少？对不对？
</div>

## 一、古人没有作业本，用小棍子摆数

### 数字站在哪里，比它长什么样还重要

要弄懂竖式，先得弄懂我们写数字的一个小秘密。

看看 222 这个数。三个“2”长得一模一样，可是意思完全不同：最右边的 2 是两个一，中间的 2 是两个十，最左边的 2 是两个一百。**一个数字站的位置不同，大小就不同**，每往左挪一格，就大 10 倍。数学家把这个叫作**位值**。

<figure class="dd dd-figure">
<div class="dd-scroll">
<svg class="dd-svg" viewBox="0 0 800 360" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="cm-place-title cm-place-desc">
<title id="cm-place-title">同一个数字 2，放在不同的位上，大小不一样</title>
<desc id="cm-place-desc">三个 2 并排写成 222。个位上的 2 是两个小方块，十位上的 2 是两根十个小方块连成的长条，百位上的 2 是两块一百个小方块拼成的方板。每往左挪一格，就大 10 倍。</desc>
<defs>
<marker id="cm-place-arr" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="10" markerHeight="10" markerUnits="userSpaceOnUse" orient="auto"><path class="dd-head-acc" d="M1 1 L8 5 L1 9"/></marker>
</defs>
<rect class="dd-frame" width="800" height="360" rx="10"/>
<rect class="dd-zone" x="16" y="16" width="768" height="328" rx="8"/>
<text class="t-zone" x="36" y="44">同一个 2，站在不同的位置</text>
<text class="t-note" x="764" y="44" text-anchor="end">小方块按真实比例画</text>
<text class="t-note" x="180" y="78" text-anchor="middle">百位</text>
<text class="t-label" x="180" y="124" text-anchor="middle" style="font-size:44px;font-weight:600">2</text>
<text class="t-note" x="400" y="78" text-anchor="middle">十位</text>
<text class="t-label" x="400" y="124" text-anchor="middle" style="font-size:44px;font-weight:600">2</text>
<text class="t-note" x="620" y="78" text-anchor="middle">个位</text>
<text class="t-label" x="620" y="124" text-anchor="middle" style="font-size:44px;font-weight:600">2</text>
<path class="dd-edge-acc" d="M586 104 Q510.0 84 434 104" marker-end="url(#cm-place-arr)"/>
<text class="t-label t-acc" x="510.0" y="84" text-anchor="middle">× 10</text>
<path class="dd-edge-acc" d="M366 104 Q290.0 84 214 104" marker-end="url(#cm-place-arr)"/>
<text class="t-label t-acc" x="290.0" y="84" text-anchor="middle">× 10</text>
<rect class="dd-ground" x="94" y="152" width="80" height="80" rx="1"/>
<rect class="dd-card" x="90" y="156" width="80" height="80" rx="1"/>
<path class="dd-hair" d="M98 156 L98 236 M90 164 L170 164 M106 156 L106 236 M90 172 L170 172 M114 156 L114 236 M90 180 L170 180 M122 156 L122 236 M90 188 L170 188 M130 156 L130 236 M90 196 L170 196 M138 156 L138 236 M90 204 L170 204 M146 156 L146 236 M90 212 L170 212 M154 156 L154 236 M90 220 L170 220 M162 156 L162 236 M90 228 L170 228"/>
<rect class="dd-ground" x="190" y="152" width="80" height="80" rx="1"/>
<rect class="dd-card" x="186" y="156" width="80" height="80" rx="1"/>
<path class="dd-hair" d="M194 156 L194 236 M186 164 L266 164 M202 156 L202 236 M186 172 L266 172 M210 156 L210 236 M186 180 L266 180 M218 156 L218 236 M186 188 L266 188 M226 156 L226 236 M186 196 L266 196 M234 156 L234 236 M186 204 L266 204 M242 156 L242 236 M186 212 L266 212 M250 156 L250 236 M186 220 L266 220 M258 156 L258 236 M186 228 L266 228"/>
<rect class="dd-ground" x="390" y="152" width="8" height="80" rx="1"/>
<rect class="dd-card" x="386" y="156" width="8" height="80" rx="1"/>
<path class="dd-hair" d="M386 164 L394 164 M386 172 L394 172 M386 180 L394 180 M386 188 L394 188 M386 196 L394 196 M386 204 L394 204 M386 212 L394 212 M386 220 L394 220 M386 228 L394 228"/>
<rect class="dd-ground" x="410" y="152" width="8" height="80" rx="1"/>
<rect class="dd-card" x="406" y="156" width="8" height="80" rx="1"/>
<path class="dd-hair" d="M406 164 L414 164 M406 172 L414 172 M406 180 L414 180 M406 188 L414 188 M406 196 L414 196 M406 204 L414 204 M406 212 L414 212 M406 220 L414 220 M406 228 L414 228"/>
<rect class="dd-ground" x="608" y="224" width="8" height="8" rx="1"/>
<rect class="dd-card" x="604" y="228" width="8" height="8" rx="1"/>
<rect class="dd-ground" x="628" y="224" width="8" height="8" rx="1"/>
<rect class="dd-card" x="624" y="228" width="8" height="8" rx="1"/>
<text class="t-label" x="180" y="274" text-anchor="middle">2 个一百：200</text>
<text class="t-label" x="400" y="274" text-anchor="middle">2 个十：20</text>
<text class="t-label" x="620" y="274" text-anchor="middle">2 个一：2</text>
<text class="t-tell" x="400" y="318" text-anchor="middle">往左挪一格，就大 10 倍。这就叫“位值”。</text>
</svg>
</div>
<figcaption>图 1 · 222 里的三个 2：站在个位是 2，站在十位是 20，站在百位是 200</figcaption>
</figure>

这个办法看起来平常，其实很了不起。古罗马人写 23，要写成 XXIII：两个 X 是两个十，三个 I 是三个一。他们的符号自己就代表大小，和站在哪里没关系，所以没法像我们这样把个位对个位、十位对十位，竖着排好来算。

### 中国古人的算数小棍：算筹

那中国古人呢？两千多年前，他们算数时会拿出一把小竹棍，在桌上或地上摆。这种小棍叫**算筹**，汉朝的算筹大约 12 厘米长，比一支铅笔短一点[^rods-xinhua]。

算筹摆数字的规矩是这样的：1 到 5，有几就摆几根；6 到 9，用一根横着（或竖着）的小棍当 5，再添上几根。每个数字都有竖着摆的“纵式”和横着摆的“横式”两种样子。

摆一个多位数时，个位用纵式，十位用横式，百位又用纵式……一竖一横地交替。古书《孙子算经》把这叫作“一纵十横”[^rods-wiki]。为什么要交替？因为挨着的两位样子不一样，一眼就能分清哪根是哪一位的，不会混在一起。

那 0 怎么摆呢？古人一开始的办法很简单：**那一位空着，什么都不放**。

<figure class="dd dd-figure">
<div class="dd-scroll">
<svg class="dd-svg" viewBox="0 0 800 360" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="cm-rods-title cm-rods-desc">
<title id="cm-rods-title">算筹怎样摆出数字</title>
<desc id="cm-rods-desc">左边：用小竹棍摆 1 到 9，纵式是竖着摆，横式是横着摆，6 以上用一根横放或竖放的小棍代表 5。右边：个位用纵式、十位用横式、百位又用纵式，摆出 322；摆 207 时十位空着，空的地方就是 0。</desc>
<rect class="dd-frame" width="800" height="360" rx="10"/>
<rect class="dd-zone" x="16" y="16" width="440" height="328" rx="8"/>
<rect class="dd-zone" x="472" y="16" width="312" height="328" rx="8"/>
<text class="t-zone" x="36" y="44">用小棍子摆 1 到 9</text>
<text class="t-zone" x="492" y="44">摆一个数</text>
<text class="t-note" x="764" y="44" text-anchor="end">示意图</text>
<text class="t-label" x="112" y="84" text-anchor="middle">1</text>
<rect class="dd-edge dd-sun" x="110.25" y="113" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="97" y="194.25" width="30" height="3.5" rx="1.5"/>
<text class="t-label" x="150" y="84" text-anchor="middle">2</text>
<rect class="dd-edge dd-sun" x="145.25" y="113" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="151.25" y="113" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="135" y="191.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="135" y="197.25" width="30" height="3.5" rx="1.5"/>
<text class="t-label" x="188" y="84" text-anchor="middle">3</text>
<rect class="dd-edge dd-sun" x="180.25" y="113" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="186.25" y="113" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="192.25" y="113" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="173" y="188.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="173" y="194.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="173" y="200.25" width="30" height="3.5" rx="1.5"/>
<text class="t-label" x="226" y="84" text-anchor="middle">4</text>
<rect class="dd-edge dd-sun" x="215.25" y="113" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="221.25" y="113" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="227.25" y="113" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="233.25" y="113" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="211" y="185.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="211" y="191.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="211" y="197.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="211" y="203.25" width="30" height="3.5" rx="1.5"/>
<text class="t-label" x="264" y="84" text-anchor="middle">5</text>
<rect class="dd-edge dd-sun" x="250.25" y="113" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="256.25" y="113" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="262.25" y="113" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="268.25" y="113" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="274.25" y="113" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="249" y="182.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="249" y="188.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="249" y="194.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="249" y="200.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="249" y="206.25" width="30" height="3.5" rx="1.5"/>
<text class="t-label" x="302" y="84" text-anchor="middle">6</text>
<rect class="dd-edge dd-sun" x="288" y="113.25" width="28" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="300.25" y="121" width="3.5" height="22" rx="1.5"/>
<rect class="dd-edge dd-sun" x="300.25" y="188.0" width="3.5" height="14" rx="1.5"/>
<rect class="dd-edge dd-sun" x="287" y="203.25" width="30" height="3.5" rx="1.5"/>
<text class="t-label" x="340" y="84" text-anchor="middle">7</text>
<rect class="dd-edge dd-sun" x="326" y="113.25" width="28" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="335.25" y="121" width="3.5" height="22" rx="1.5"/>
<rect class="dd-edge dd-sun" x="341.25" y="121" width="3.5" height="22" rx="1.5"/>
<rect class="dd-edge dd-sun" x="338.25" y="185.0" width="3.5" height="14" rx="1.5"/>
<rect class="dd-edge dd-sun" x="325" y="200.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="325" y="206.25" width="30" height="3.5" rx="1.5"/>
<text class="t-label" x="378" y="84" text-anchor="middle">8</text>
<rect class="dd-edge dd-sun" x="364" y="113.25" width="28" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="370.25" y="121" width="3.5" height="22" rx="1.5"/>
<rect class="dd-edge dd-sun" x="376.25" y="121" width="3.5" height="22" rx="1.5"/>
<rect class="dd-edge dd-sun" x="382.25" y="121" width="3.5" height="22" rx="1.5"/>
<rect class="dd-edge dd-sun" x="376.25" y="182.0" width="3.5" height="14" rx="1.5"/>
<rect class="dd-edge dd-sun" x="363" y="197.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="363" y="203.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="363" y="209.25" width="30" height="3.5" rx="1.5"/>
<text class="t-label" x="416" y="84" text-anchor="middle">9</text>
<rect class="dd-edge dd-sun" x="402" y="113.25" width="28" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="405.25" y="121" width="3.5" height="22" rx="1.5"/>
<rect class="dd-edge dd-sun" x="411.25" y="121" width="3.5" height="22" rx="1.5"/>
<rect class="dd-edge dd-sun" x="417.25" y="121" width="3.5" height="22" rx="1.5"/>
<rect class="dd-edge dd-sun" x="423.25" y="121" width="3.5" height="22" rx="1.5"/>
<rect class="dd-edge dd-sun" x="414.25" y="179.0" width="3.5" height="14" rx="1.5"/>
<rect class="dd-edge dd-sun" x="401" y="194.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="401" y="200.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="401" y="206.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="401" y="212.25" width="30" height="3.5" rx="1.5"/>
<text class="t-label" x="36" y="133">纵式</text>
<text class="t-label" x="36" y="201">横式</text>
<path class="dd-hair" d="M36 160 L436 160"/>
<text class="t-tell" x="36" y="268">6 到 9：最上面那一根代表 5</text>
<text class="t-label t-acc" x="36" y="312">《孙子算经》：一纵十横</text>
<text class="t-note" x="560" y="80" text-anchor="middle">百</text>
<text class="t-note" x="628" y="80" text-anchor="middle">十</text>
<text class="t-note" x="696" y="80" text-anchor="middle">个</text>
<rect class="dd-edge dd-sun" x="552.25" y="105" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="558.25" y="105" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="564.25" y="105" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="613" y="115.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="613" y="121.25" width="30" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="691.25" y="105" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="697.25" y="105" width="3.5" height="30" rx="1.5"/>
<text class="t-label" x="500" y="125" text-anchor="start">322</text>
<path class="dd-hair" d="M492 168 L764 168"/>
<rect class="dd-edge dd-sun" x="555.25" y="199" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="561.25" y="199" width="3.5" height="30" rx="1.5"/>
<rect class="dd-edge dd-sun" x="682" y="199.25" width="28" height="3.5" rx="1.5"/>
<rect class="dd-edge dd-sun" x="691.25" y="207" width="3.5" height="22" rx="1.5"/>
<rect class="dd-edge dd-sun" x="697.25" y="207" width="3.5" height="22" rx="1.5"/>
<rect class="dd-derived" x="608" y="194" width="40" height="40" rx="4"/>
<text class="t-label" x="500" y="219" text-anchor="start">207</text>
<path class="dd-lead" d="M598 282 L628 236"/>
<circle class="dd-lead-dot" cx="628" cy="236" r="2.5"/>
<text class="t-tell" x="492" y="290">空一格，</text>
<text class="t-tell" x="492" y="314">就表示这一位是 0</text>
</svg>
</div>
<figcaption>图 2 · 算筹一竖一横交替着摆，空着的那一格就是 0（示意图）</figcaption>
</figure>

你看，算筹也是“站的位置决定大小”。所以说，**中国人很早就在用位值了**[^rods-xinhua]。

**有了能排整齐的数，古人又是怎么算乘法的呢？**

## 二、两千多年前，就有乘法口诀和“乘法表”

### 秦朝的九九表

算乘法，先要背口诀。你背的九九乘法表，其实非常古老。

2002 年，考古学家在湖南龙山县的里耶古城，从一口古井里挖出了三万多枚秦朝的简牍。其中有一块木板上，整整齐齐地写着乘法口诀：“九九八十一，八九七十二，七九六十三……”，和我们今天背的几乎一模一样[^liye]。它大约写于 2200 年前。

<figure class="dd dd-figure">
<div class="dd-scroll">
<svg class="dd-svg" viewBox="0 0 800 360" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="cm-table-title cm-table-desc">
<title id="cm-table-title">两千多年前秦朝的九九乘法表</title>
<desc id="cm-table-desc">右边是一块写满乘法口诀的木板，从右往左竖着写，第一句是九九八十一，接着是八九七十二、七九六十三……左边说明：它在湖南里耶出土，大约 2200 年前；古人从九九八十一背起，今天从一一得一背起。</desc>
<rect class="dd-frame" width="800" height="360" rx="10"/>
<rect class="dd-zone" x="16" y="16" width="768" height="328" rx="8"/>
<text class="t-zone" x="36" y="44">秦朝的乘法口诀</text>
<text class="t-note" x="764" y="44" text-anchor="end">示意图，字按今天的写法</text>
<rect class="dd-ground" x="405" y="89" width="352" height="200" rx="6"/>
<rect class="dd-card" x="400" y="84" width="352" height="200" rx="6"/>
<path class="dd-hair" d="M410 100 Q520 94 600 102 T742 98 M414 270 Q540 276 640 268 T740 274"/>
<text class="t-label t-acc" x="724" y="138" text-anchor="middle" style="font-size:18px">九</text>
<text class="t-label t-acc" x="724" y="164" text-anchor="middle" style="font-size:18px">九</text>
<text class="t-label t-acc" x="724" y="190" text-anchor="middle" style="font-size:18px">八</text>
<text class="t-label t-acc" x="724" y="216" text-anchor="middle" style="font-size:18px">十</text>
<text class="t-label t-acc" x="724" y="242" text-anchor="middle" style="font-size:18px">一</text>
<path class="dd-hair" d="M704 112 L704 256"/>
<text class="t-label" x="684" y="138" text-anchor="middle" style="font-size:18px">八</text>
<text class="t-label" x="684" y="164" text-anchor="middle" style="font-size:18px">九</text>
<text class="t-label" x="684" y="190" text-anchor="middle" style="font-size:18px">七</text>
<text class="t-label" x="684" y="216" text-anchor="middle" style="font-size:18px">十</text>
<text class="t-label" x="684" y="242" text-anchor="middle" style="font-size:18px">二</text>
<path class="dd-hair" d="M664 112 L664 256"/>
<text class="t-label" x="644" y="138" text-anchor="middle" style="font-size:18px">七</text>
<text class="t-label" x="644" y="164" text-anchor="middle" style="font-size:18px">九</text>
<text class="t-label" x="644" y="190" text-anchor="middle" style="font-size:18px">六</text>
<text class="t-label" x="644" y="216" text-anchor="middle" style="font-size:18px">十</text>
<text class="t-label" x="644" y="242" text-anchor="middle" style="font-size:18px">三</text>
<path class="dd-hair" d="M624 112 L624 256"/>
<text class="t-label" x="604" y="138" text-anchor="middle" style="font-size:18px">六</text>
<text class="t-label" x="604" y="164" text-anchor="middle" style="font-size:18px">九</text>
<text class="t-label" x="604" y="190" text-anchor="middle" style="font-size:18px">五</text>
<text class="t-label" x="604" y="216" text-anchor="middle" style="font-size:18px">十</text>
<text class="t-label" x="604" y="242" text-anchor="middle" style="font-size:18px">四</text>
<path class="dd-hair" d="M584 112 L584 256"/>
<text class="t-label" x="564" y="138" text-anchor="middle" style="font-size:18px">五</text>
<text class="t-label" x="564" y="164" text-anchor="middle" style="font-size:18px">九</text>
<text class="t-label" x="564" y="190" text-anchor="middle" style="font-size:18px">四</text>
<text class="t-label" x="564" y="216" text-anchor="middle" style="font-size:18px">十</text>
<text class="t-label" x="564" y="242" text-anchor="middle" style="font-size:18px">五</text>
<path class="dd-hair" d="M544 112 L544 256"/>
<text class="t-label" x="524" y="138" text-anchor="middle" style="font-size:18px">四</text>
<text class="t-label" x="524" y="164" text-anchor="middle" style="font-size:18px">九</text>
<text class="t-label" x="524" y="190" text-anchor="middle" style="font-size:18px">三</text>
<text class="t-label" x="524" y="216" text-anchor="middle" style="font-size:18px">十</text>
<text class="t-label" x="524" y="242" text-anchor="middle" style="font-size:18px">六</text>
<path class="dd-hair" d="M504 112 L504 256"/>
<text class="t-label" x="484" y="138" text-anchor="middle" style="font-size:18px">三</text>
<text class="t-label" x="484" y="164" text-anchor="middle" style="font-size:18px">九</text>
<text class="t-label" x="484" y="190" text-anchor="middle" style="font-size:18px">二</text>
<text class="t-label" x="484" y="216" text-anchor="middle" style="font-size:18px">十</text>
<text class="t-label" x="484" y="242" text-anchor="middle" style="font-size:18px">七</text>
<path class="dd-hair" d="M464 112 L464 256"/>
<text class="t-label" x="444" y="138" text-anchor="middle" style="font-size:18px">二</text>
<text class="t-label" x="444" y="164" text-anchor="middle" style="font-size:18px">九</text>
<text class="t-label" x="444" y="190" text-anchor="middle" style="font-size:18px">十</text>
<text class="t-label" x="444" y="216" text-anchor="middle" style="font-size:18px">八</text>
<text class="t-label" x="36" y="98">从“九九八十一”开始背，</text>
<text class="t-label" x="36" y="122">所以叫“九九”</text>
<text class="t-tell" x="36" y="186">写在湖南里耶出土的</text>
<text class="t-tell" x="36" y="210">一块木板上，约 2200 年前</text>
<text class="t-tell" x="36" y="278">今天我们从“一一得一”背起，</text>
<text class="t-tell" x="36" y="302">顺序反过来了，口诀几乎一样</text>
<path class="dd-hair" d="M36 238 L360 238"/>
</svg>
</div>
<figcaption>图 3 · 秦朝人的乘法口诀从“九九八十一”背起，和今天的顺序正好相反</figcaption>
</figure>

<div class="box">
<span class="box-title">小知识</span>

秦朝的九九表最后还有一句“二半而一”，意思是两个“一半”合起来是一。原来两千多年前的人，已经在算分数了。
</div>

### 大乘法拆成小乘法

可是口诀只管到 9 × 9。要算 23 × 14 这样的两位数乘法，怎么办？

清华大学收藏了一批战国时候的竹简，比秦朝还要早一些。其中 21 支竹简拼起来，是一张《算表》。用它算两位数乘法，办法是把两个数都拆开：23 拆成 20 和 3，14 拆成 10 和 4，两两相乘，得到四个小一点的数，最后再加起来[^suanbiao]。

把 23 × 14 画成一个长方形，就能看清楚这是怎么回事：长 23 格，宽 14 格，一共 322 个小格。沿着 20 和 3、10 和 4 切开，正好变成四块。

<figure class="dd dd-figure">
<div class="dd-scroll">
<svg class="dd-svg" viewBox="0 0 800 360" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="cm-split-title cm-split-desc">
<title id="cm-split-title">把 23 乘 14 拆成四个小乘法</title>
<desc id="cm-split-desc">一个 23 格宽、14 格高的长方形，一共 322 个小格。沿着 20 和 3、10 和 4 切开，变成四块：200、30、80、12，加起来正好是 322。</desc>
<rect class="dd-frame" width="800" height="360" rx="10"/>
<rect class="dd-zone" x="16" y="16" width="768" height="328" rx="8"/>
<text class="t-zone" x="36" y="44">把 23 × 14 拆成四块</text>
<text class="t-note" x="764" y="44" text-anchor="end">一个小格子代表 1</text>
<rect class="dd-card" x="92" y="92" width="276" height="168"/>
<rect class="dd-ground" x="92" y="92" width="240" height="120" opacity="0.55"/>
<rect class="dd-ground" x="332" y="212" width="36" height="48" opacity="0.55"/>
<path class="dd-hair" d="M104 92 L104 260 M116 92 L116 260 M128 92 L128 260 M140 92 L140 260 M152 92 L152 260 M164 92 L164 260 M176 92 L176 260 M188 92 L188 260 M200 92 L200 260 M212 92 L212 260 M224 92 L224 260 M236 92 L236 260 M248 92 L248 260 M260 92 L260 260 M272 92 L272 260 M284 92 L284 260 M296 92 L296 260 M308 92 L308 260 M320 92 L320 260 M332 92 L332 260 M344 92 L344 260 M356 92 L356 260 M92 104 L368 104 M92 116 L368 116 M92 128 L368 128 M92 140 L368 140 M92 152 L368 152 M92 164 L368 164 M92 176 L368 176 M92 188 L368 188 M92 200 L368 200 M92 212 L368 212 M92 224 L368 224 M92 236 L368 236 M92 248 L368 248"/>
<rect class="dd-edge" x="92" y="92" width="276" height="168"/>
<path class="dd-edge-acc" d="M332 84 L332 268 M84 212 L376 212"/>
<path class="dd-lead" d="M92 70 L92 78 M92 74 L332 74 M332 70 L332 78"/>
<text class="t-label" x="212.0" y="66" text-anchor="middle">20</text>
<path class="dd-lead" d="M332 70 L332 78 M332 74 L368 74 M368 70 L368 78"/>
<text class="t-label" x="350.0" y="66" text-anchor="middle">3</text>
<path class="dd-lead" d="M70 92 L78 92 M74 92 L74 212 M70 212 L78 212"/>
<text class="t-label" x="64" y="158.0" text-anchor="end">10</text>
<path class="dd-lead" d="M70 212 L78 212 M74 212 L74 260 M70 260 L78 260"/>
<text class="t-label" x="64" y="242.0" text-anchor="end">4</text>
<rect class="dd-card" x="189.1" y="138" width="45.8" height="26" rx="5"/>
<text class="t-label" x="212" y="157" text-anchor="middle">200</text>
<rect class="dd-card" x="332.1" y="138" width="35.8" height="26" rx="5"/>
<text class="t-label" x="350.0" y="157" text-anchor="middle">30</text>
<rect class="dd-card" x="194.1" y="222" width="35.8" height="26" rx="5"/>
<text class="t-label" x="212" y="241" text-anchor="middle">80</text>
<rect class="dd-card" x="332.1" y="222" width="35.8" height="26" rx="5"/>
<text class="t-label" x="350.0" y="241" text-anchor="middle">12</text>
<text class="t-label" x="470" y="112">20 × 10</text>
<text class="t-label" x="590" y="112" text-anchor="middle">=</text>
<text class="t-label" x="666" y="112" text-anchor="end">200</text>
<text class="t-label" x="470" y="148">3 × 10</text>
<text class="t-label" x="590" y="148" text-anchor="middle">=</text>
<text class="t-label" x="666" y="148" text-anchor="end">30</text>
<text class="t-label" x="470" y="184">20 × 4</text>
<text class="t-label" x="590" y="184" text-anchor="middle">=</text>
<text class="t-label" x="666" y="184" text-anchor="end">80</text>
<text class="t-label" x="470" y="220">3 × 4</text>
<text class="t-label" x="590" y="220" text-anchor="middle">=</text>
<text class="t-label" x="666" y="220" text-anchor="end">12</text>
<path class="dd-edge" d="M470 236 L680 236"/>
<text class="t-label t-acc" x="470" y="266">加起来</text>
<text class="t-label t-acc" x="666" y="266" text-anchor="end">322</text>
<text class="t-tell" x="470" y="304">大乘法拆成几个小乘法，</text>
<text class="t-tell" x="470" y="328">每个都能用口诀算出来</text>
</svg>
</div>
<figcaption>图 4 · 23 × 14 拆成 200、30、80、12 四块，加起来是 322（示意图，一个小格代表 1）</figcaption>
</figure>

**“拆开、分别乘、再加起来”**，这就是乘法竖式的核心秘密。记住这个长方形，后面还要用到它。

不过，竹简上的《算表》和小竹棍都没法写在纸上留下来。**我们今天在作业本上写的 0、1、2、3……又是从哪里来的？**

## 三、0 到 9 这十个数字的长途旅行

我们写的 0 到 9，叫“阿拉伯数字”。可它们其实出生在**印度**。

大约 1400 年前，印度的数学家已经把 0 当成一个真正的数来用了。有了 0，再加上 1 到 9，只用这十个符号，就能写出任何一个数：算筹要“空一格”的地方，现在可以清清楚楚写一个 0。

后来，这套数字传到了阿拉伯地区。大约 1200 年前，一位叫花拉子米的学者专门写书，教大家用印度数字计算。又过了几百年，一位叫斐波那契的意大利人在 1202 年写了一本《计算之书》，把它们介绍给欧洲的商人[^numerals]。欧洲人是从阿拉伯人那里学来的，就把它们叫成了“阿拉伯数字”。

<figure class="dd dd-figure">
<div class="dd-scroll">
<svg class="dd-svg" viewBox="0 0 800 320" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="cm-journey-title cm-journey-desc">
<title id="cm-journey-title">0 到 9 十个数字从印度传到全世界</title>
<desc id="cm-journey-desc">一条路线从左到右：约 1400 年前在印度有了 0，十个数字能写出所有的数；约 1200 年前阿拉伯学者花拉子米写书介绍印度数字；800 多年前斐波那契把它们带到欧洲；约 150 年前进入中国的数学课本。</desc>
<defs>
<marker id="cm-journey-arr" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="10" markerHeight="10" markerUnits="userSpaceOnUse" orient="auto"><path class="dd-head-acc" d="M1 1 L8 5 L1 9"/></marker>
</defs>
<rect class="dd-frame" width="800" height="320" rx="10"/>
<rect class="dd-zone" x="16" y="16" width="768" height="288" rx="8"/>
<text class="t-zone" x="36" y="44">0 到 9 这十个数字的旅行</text>
<text class="t-note" x="764" y="44" text-anchor="end">年代是大约</text>
<path class="dd-edge-acc dd-dash" d="M128 132 L658 132"/>
<path class="dd-edge-acc" d="M195.0 132 L211.0 132" marker-end="url(#cm-journey-arr)"/>
<path class="dd-edge-acc" d="M385.0 132 L401.0 132" marker-end="url(#cm-journey-arr)"/>
<path class="dd-edge-acc" d="M575.0 132 L591.0 132" marker-end="url(#cm-journey-arr)"/>
<circle class="dd-card" cx="110" cy="132" r="16"/>
<circle class="dd-fill-acc" cx="110" cy="132" r="6"/>
<text class="t-label" x="110" y="96" text-anchor="middle" style="font-size:20px">印度</text>
<text class="t-label t-acc" x="110" y="178" text-anchor="middle">约 1400 年前</text>
<text class="t-tell" x="110" y="214" text-anchor="middle">有了 0，十个数字</text>
<text class="t-tell" x="110" y="238" text-anchor="middle">就能写出所有数</text>
<circle class="dd-card" cx="300" cy="132" r="16"/>
<circle class="dd-fill-acc" cx="300" cy="132" r="6"/>
<text class="t-label" x="300" y="96" text-anchor="middle" style="font-size:20px">阿拉伯</text>
<text class="t-label t-acc" x="300" y="178" text-anchor="middle">约 1200 年前</text>
<text class="t-tell" x="300" y="214" text-anchor="middle">花拉子米写书</text>
<text class="t-tell" x="300" y="238" text-anchor="middle">介绍印度数字</text>
<circle class="dd-card" cx="490" cy="132" r="16"/>
<circle class="dd-fill-acc" cx="490" cy="132" r="6"/>
<text class="t-label" x="490" y="96" text-anchor="middle" style="font-size:20px">欧洲</text>
<text class="t-label t-acc" x="490" y="178" text-anchor="middle">800 多年前</text>
<text class="t-tell" x="490" y="214" text-anchor="middle">斐波那契写书</text>
<text class="t-tell" x="490" y="238" text-anchor="middle">教商人用新数字</text>
<circle class="dd-card" cx="680" cy="132" r="16"/>
<circle class="dd-fill-acc" cx="680" cy="132" r="6"/>
<text class="t-label" x="680" y="96" text-anchor="middle" style="font-size:20px">中国</text>
<text class="t-label t-acc" x="680" y="178" text-anchor="middle">一百多年前</text>
<text class="t-tell" x="680" y="214" text-anchor="middle">进了数学课本，</text>
<text class="t-tell" x="680" y="238" text-anchor="middle">后来人人都用</text>
<text class="t-note" x="400" y="284" text-anchor="middle">后来人们把它们叫作“阿拉伯数字”，其实它们出生在印度</text>
</svg>
</div>
<figcaption>图 5 · 0 到 9 从印度出发，经过阿拉伯和欧洲，一百多年前进了中国的数学课本</figcaption>
</figure>

在中国，人们很早就会用算筹和算盘算数，写数字用的是一、二、三这样的汉字。一直到一百多年前，数学书里才开始用阿拉伯数字做计算[^arabic-china]。

**有了能写在纸上的数字，人们是怎么在纸上算乘法的？**

## 四、明朝人画格子算乘法：铺地锦

在竖式流行以前，有一种画格子的乘法很受欢迎。明朝 1450 年，一位叫吴敬的人在书里写过这种方法[^lattice]；后来程大位的《算法统宗》里也有它，名字很好听，叫**铺地锦**[^tongwen]，像在地上铺开一块织锦。差不多同一个时候，意大利的算术书里也有一模一样的格子[^lattice]。

我们用铺地锦来算 23 × 14：

1. 画一个两格乘两格的方格，上面写 2 和 3，右边写 1 和 4。
2. 每个格子画一条斜线，把一个小乘法的结果写进去：十位写在左上，个位写在右下。比如 3 × 4 = 12，就写 1 和 2。
3. 顺着斜线隔出来的一条条“斜带”，把同一条带里的数加起来。满十就往左边那条带进 1。
4. 沿着左边和下边读出来。

<figure class="dd dd-figure">
<div class="dd-scroll">
<svg class="dd-svg" viewBox="0 0 800 360" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="cm-lattice-title cm-lattice-desc">
<title id="cm-lattice-title">用铺地锦的方法算 23 乘 14</title>
<desc id="cm-lattice-desc">画一个两格乘两格的方格，上面写 2 和 3，右边写 1 和 4。每个格子用斜线分开，写上小乘法的结果：02、03、08、12。顺着斜带把数加起来，中间一条是 1 加 8 加 3 等于 12，写 2 进 1。最后沿左边和下边读出 0、3、2、2，就是 322。</desc>
<rect class="dd-frame" width="800" height="360" rx="10"/>
<rect class="dd-zone" x="16" y="16" width="768" height="328" rx="8"/>
<text class="t-zone" x="36" y="44">铺地锦：23 × 14</text>
<text class="t-note" x="764" y="44" text-anchor="end">明朝的书里就有</text>
<rect class="dd-card" x="120" y="92" width="192" height="192"/>
<path class="dd-edge" d="M216 92 L98 210 M312 92 L216 188 M216 188 L98 306 M312 188 L194 306"/>
<path class="dd-edge" d="M216 92 L216 284 M120 188 L312 188"/>
<rect class="dd-edge" x="120" y="92" width="192" height="192"/>
<text class="t-label" x="168.0" y="76" text-anchor="middle" style="font-size:26px;font-weight:600">2</text>
<text class="t-label" x="264.0" y="76" text-anchor="middle" style="font-size:26px;font-weight:600">3</text>
<text class="t-label" x="334" y="149.0" text-anchor="middle" style="font-size:26px;font-weight:600">1</text>
<text class="t-label" x="334" y="245.0" text-anchor="middle" style="font-size:26px;font-weight:600">4</text>
<text class="t-label" x="148.8" y="130.4" text-anchor="middle" style="font-size:20px">0</text>
<text class="t-label" x="187.2" y="170.72" text-anchor="middle" style="font-size:20px">2</text>
<text class="t-label" x="244.8" y="130.4" text-anchor="middle" style="font-size:20px">0</text>
<text class="t-label" x="283.2" y="170.72" text-anchor="middle" style="font-size:20px">3</text>
<text class="t-label" x="148.8" y="226.4" text-anchor="middle" style="font-size:20px">0</text>
<text class="t-label" x="187.2" y="266.72" text-anchor="middle" style="font-size:20px">8</text>
<text class="t-label" x="244.8" y="226.4" text-anchor="middle" style="font-size:20px">1</text>
<text class="t-label" x="283.2" y="266.72" text-anchor="middle" style="font-size:20px">2</text>
<text class="t-label t-acc" x="94" y="166.0" text-anchor="middle" style="font-size:26px;font-weight:600">0</text>
<text class="t-label t-acc" x="94" y="262.0" text-anchor="middle" style="font-size:26px;font-weight:600">3</text>
<text class="t-label t-acc" x="150.0" y="320" text-anchor="middle" style="font-size:26px;font-weight:600">2</text>
<text class="t-label t-acc" x="246.0" y="320" text-anchor="middle" style="font-size:26px;font-weight:600">2</text>
<text class="t-label" x="470" y="108">① 一格算一个小乘法</text>
<text class="t-tell" x="470" y="134">3 × 4 = 12，</text>
<text class="t-tell" x="470" y="158">十位写左上，个位写右下</text>
<text class="t-label" x="470" y="192">② 顺着斜带往下加</text>
<text class="t-tell" x="470" y="218">中间这条：1 + 8 + 3 = 12，</text>
<text class="t-tell" x="470" y="242">写 2 进 1</text>
<text class="t-label" x="470" y="276">③ 沿左边、下边读出来</text>
<text class="t-tell" x="470" y="302">0、3、2、2，</text>
<text class="t-tell" x="470" y="326">就是 322</text>
</svg>
</div>
<figcaption>图 6 · 铺地锦算 23 × 14：每格一个小乘法，斜着加起来，读出 322</figcaption>
</figure>

铺地锦的好处是：每个格子只管一个小乘法，用口诀就能算，最后才一起相加。这和战国《算表》的“拆开、分别乘、再加起来”，是同一个道理。

可是铺地锦要先画格子，有点麻烦。**有没有不用画格子，也能把数排整齐的办法？**

## 五、今天的竖式：第二行为什么往左挪一格

### 把 14 拆成 10 和 4

有，那就是我们今天的竖式。它是在许多国家的算术书里一点点改进出来的，后来在欧洲流行开。1613 年，明朝的李之藻根据意大利传教士利玛窦讲的内容，编成了《同文算指》，第一次把这种“用笔在纸上算”的方法系统地介绍到中国[^tongwen]。

现在，我们回到开头那道题。竖式其实只拆了一个数：把 14 拆成 **10 和 4**。

- 第一行：23 × 4 = 92。
- 第二行：23 × 10 = 230。

第二行本来应该写 230。末尾的 0 写不写都一样，大家为了省事就不写了。可是 23 必须留在原来该在的位置上：3 在十位，2 在百位。**所以看起来像是往左挪了一格。**

<figure class="dd dd-figure">
<div class="dd-scroll">
<svg class="dd-svg" viewBox="0 0 800 400" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="cm-column-title cm-column-desc">
<title id="cm-column-title">竖式的第二行为什么往左挪一格</title>
<desc id="cm-column-desc">左边是竖式 23 乘 14：第一行 92 是 23 乘 4；第二行 23 其实是 23 乘 10 等于 230，末尾的 0 省掉了，所以从十位写起；两行加起来是 322。右边把 23 乘 14 的长方形切成上下两块：上面 10 行是 230，下面 4 行是 92。</desc>
<rect class="dd-frame" width="800" height="400" rx="10"/>
<rect class="dd-zone" x="16" y="16" width="360" height="368" rx="8"/>
<rect class="dd-zone" x="392" y="16" width="392" height="368" rx="8"/>
<text class="t-zone" x="36" y="44">我们写的竖式</text>
<text class="t-zone" x="412" y="44">其实是把 14 拆成 4 和 10</text>
<text class="t-label" x="196" y="96" text-anchor="middle" style="font-size:28px;font-weight:600">3</text>
<text class="t-label" x="166" y="96" text-anchor="middle" style="font-size:28px;font-weight:600">2</text>
<text class="t-label" x="196" y="140" text-anchor="middle" style="font-size:28px;font-weight:600">4</text>
<text class="t-label" x="166" y="140" text-anchor="middle" style="font-size:28px;font-weight:600">1</text>
<text class="t-label" x="106" y="140" text-anchor="middle" style="font-size:26px;font-weight:500">×</text>
<path class="dd-edge" d="M100 154 L214 154"/>
<text class="t-label" x="196" y="184" text-anchor="middle" style="font-size:28px;font-weight:600">2</text>
<text class="t-label" x="166" y="184" text-anchor="middle" style="font-size:28px;font-weight:600">9</text>
<rect class="dd-derived" x="184" y="202" width="24" height="32" rx="4"/>
<text class="t-label t-acc" x="196" y="228" text-anchor="middle" style="font-size:26px;font-weight:400">0</text>
<text class="t-label" x="166" y="228" text-anchor="middle" style="font-size:28px;font-weight:600">3</text>
<text class="t-label" x="136" y="228" text-anchor="middle" style="font-size:28px;font-weight:600">2</text>
<path class="dd-edge" d="M100 242 L214 242"/>
<text class="t-label" x="196" y="272" text-anchor="middle" style="font-size:28px;font-weight:600">2</text>
<text class="t-label" x="166" y="272" text-anchor="middle" style="font-size:28px;font-weight:600">2</text>
<text class="t-label" x="136" y="272" text-anchor="middle" style="font-size:28px;font-weight:600">3</text>
<path class="dd-lead" d="M250 184 L212 184"/>
<circle class="dd-lead-dot" cx="212" cy="184" r="2.5"/>
<text class="t-label" x="258" y="190">23 × 4</text>
<path class="dd-lead" d="M250 228 L212 228"/>
<circle class="dd-lead-dot" cx="212" cy="228" r="2.5"/>
<text class="t-label t-acc" x="258" y="234">23 × 10</text>
<text class="t-tell" x="36" y="330">虚线里的 0 省掉不写，</text>
<text class="t-tell" x="36" y="354">所以第二行从十位写起</text>
<rect class="dd-ground" x="470" y="92" width="230" height="100" opacity="0.55"/>
<rect class="dd-card" x="470" y="192" width="230" height="40"/>
<path class="dd-hair" d="M480 92 L480 232 M490 92 L490 232 M500 92 L500 232 M510 92 L510 232 M520 92 L520 232 M530 92 L530 232 M540 92 L540 232 M550 92 L550 232 M560 92 L560 232 M570 92 L570 232 M580 92 L580 232 M590 92 L590 232 M600 92 L600 232 M610 92 L610 232 M620 92 L620 232 M630 92 L630 232 M640 92 L640 232 M650 92 L650 232 M660 92 L660 232 M670 92 L670 232 M680 92 L680 232 M690 92 L690 232 M470 102 L700 102 M470 112 L700 112 M470 122 L700 122 M470 132 L700 132 M470 142 L700 142 M470 152 L700 152 M470 162 L700 162 M470 172 L700 172 M470 182 L700 182 M470 192 L700 192 M470 202 L700 202 M470 212 L700 212 M470 222 L700 222"/>
<rect class="dd-edge" x="470" y="92" width="230" height="140"/>
<path class="dd-edge-acc" d="M462 192 L708 192"/>
<path class="dd-lead" d="M448 92 L456 92 M452 92 L452 192 M448 192 L456 192"/>
<path class="dd-lead" d="M452 192 L452 232 M448 232 L456 232"/>
<text class="t-label" x="444" y="148" text-anchor="end">10</text>
<text class="t-label" x="444" y="218" text-anchor="end">4</text>
<path class="dd-lead" d="M470 70 L470 78 M470 74 L700 74 M700 70 L700 78"/>
<text class="t-label" x="585.0" y="66" text-anchor="middle">23</text>
<rect class="dd-card" x="507.4" y="127" width="155.3" height="28" rx="5"/>
<text class="t-label t-acc" x="585.0" y="147" text-anchor="middle">23 × 10 = 230</text>
<rect class="dd-card" x="517.9" y="197" width="134.2" height="28" rx="5"/>
<text class="t-label" x="585.0" y="217" text-anchor="middle">23 × 4 = 92</text>
<text class="t-tell" x="412" y="290">上面一大块是 230，下面一小条是 92，</text>
<text class="t-tell" x="412" y="314">加起来就是 322</text>
<text class="t-label" x="412" y="354">竖式的每一行，就是一块</text>
</svg>
</div>
<figcaption>图 7 · 竖式的第二行其实是 23 × 10 = 230，省掉末尾的 0，就成了往左挪一格的 23</figcaption>
</figure>

如果不挪，把 23 和 92 对齐着加，就得到 115。这等于把 230 当成 23 来加了，少了很多。

### 竖式就是一张没画出来的格子

把竖式和前面的长方形放在一起看：第一行的 92，是长方形下面那 4 行；第二行的 230，是上面那 10 行。**竖式的每一行，就是长方形里的一块。**

两千多年前的《算表》、明朝的铺地锦、今天的竖式，用的都是同一个办法：大乘法拆成小乘法，靠“位值”把每一块放到正确的位置上，再加起来。竖式只是把格子“藏”了起来，写得最省事。

## 六、动手试试：用铺地锦检查竖式作业

<div class="box">
<span class="box-title">动手试试</span>

**你需要：** 一张纸、一支铅笔、一把尺子，再加上你的乘法作业。

1. 挑一道两位数乘两位数的题，比如 36 × 47，先用竖式算一遍。
2. 在纸上画一个两格乘两格的方格，每个格子画一条从右上到左下的斜线。
3. 上面写 3 和 6，右边写 4 和 7，把每个小乘法的结果填进格子。
4. 顺着斜带加起来，沿左边和下边读出答案。

两种方法的答案一样吗？如果不一样，一定有一边算错了，回头找一找错在哪一格。
</div>

<figure class="dd dd-figure">
<div class="dd-scroll">
<svg class="dd-svg" viewBox="0 0 800 400" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="cm-try-title cm-try-desc">
<title id="cm-try-title">用铺地锦检查竖式作业</title>
<desc id="cm-try-desc">左边用铺地锦算 36 乘 47：格子里写 12、24、21、42，斜着加起来，读出 1、6、9、2。右边用竖式算：36 乘 7 得 252，36 乘 4 得 144，往左挪一格写，加起来也是 1692。</desc>
<rect class="dd-frame" width="800" height="400" rx="10"/>
<rect class="dd-zone" x="16" y="16" width="440" height="368" rx="8"/>
<rect class="dd-zone" x="472" y="16" width="312" height="368" rx="8"/>
<text class="t-zone" x="36" y="44">铺地锦算 36 × 47</text>
<text class="t-zone" x="492" y="44">竖式算 36 × 47</text>
<rect class="dd-card" x="150" y="92" width="192" height="192"/>
<path class="dd-edge" d="M246 92 L128 210 M342 92 L246 188 M246 188 L128 306 M342 188 L224 306"/>
<path class="dd-edge" d="M246 92 L246 284 M150 188 L342 188"/>
<rect class="dd-edge" x="150" y="92" width="192" height="192"/>
<text class="t-label" x="198.0" y="76" text-anchor="middle" style="font-size:26px;font-weight:600">3</text>
<text class="t-label" x="294.0" y="76" text-anchor="middle" style="font-size:26px;font-weight:600">6</text>
<text class="t-label" x="364" y="149.0" text-anchor="middle" style="font-size:26px;font-weight:600">4</text>
<text class="t-label" x="364" y="245.0" text-anchor="middle" style="font-size:26px;font-weight:600">7</text>
<text class="t-label" x="178.8" y="130.4" text-anchor="middle" style="font-size:20px">1</text>
<text class="t-label" x="217.2" y="170.72" text-anchor="middle" style="font-size:20px">2</text>
<text class="t-label" x="274.8" y="130.4" text-anchor="middle" style="font-size:20px">2</text>
<text class="t-label" x="313.2" y="170.72" text-anchor="middle" style="font-size:20px">4</text>
<text class="t-label" x="178.8" y="226.4" text-anchor="middle" style="font-size:20px">2</text>
<text class="t-label" x="217.2" y="266.72" text-anchor="middle" style="font-size:20px">1</text>
<text class="t-label" x="274.8" y="226.4" text-anchor="middle" style="font-size:20px">4</text>
<text class="t-label" x="313.2" y="266.72" text-anchor="middle" style="font-size:20px">2</text>
<text class="t-label t-acc" x="124" y="166.0" text-anchor="middle" style="font-size:26px;font-weight:600">1</text>
<text class="t-label t-acc" x="124" y="262.0" text-anchor="middle" style="font-size:26px;font-weight:600">6</text>
<text class="t-label t-acc" x="180.0" y="320" text-anchor="middle" style="font-size:26px;font-weight:600">9</text>
<text class="t-label t-acc" x="276.0" y="320" text-anchor="middle" style="font-size:26px;font-weight:600">2</text>
<text class="t-label t-acc" x="36" y="362">沿左边、下边读：1692</text>
<text class="t-label" x="680" y="96" text-anchor="middle" style="font-size:28px;font-weight:600">6</text>
<text class="t-label" x="650" y="96" text-anchor="middle" style="font-size:28px;font-weight:600">3</text>
<text class="t-label" x="680" y="140" text-anchor="middle" style="font-size:28px;font-weight:600">7</text>
<text class="t-label" x="650" y="140" text-anchor="middle" style="font-size:28px;font-weight:600">4</text>
<text class="t-label" x="590" y="140" text-anchor="middle" style="font-size:26px;font-weight:500">×</text>
<path class="dd-edge" d="M584 154 L698 154"/>
<text class="t-label" x="680" y="184" text-anchor="middle" style="font-size:28px;font-weight:600">2</text>
<text class="t-label" x="650" y="184" text-anchor="middle" style="font-size:28px;font-weight:600">5</text>
<text class="t-label" x="620" y="184" text-anchor="middle" style="font-size:28px;font-weight:600">2</text>
<rect class="dd-derived" x="668" y="202" width="24" height="32" rx="4"/>
<text class="t-label t-acc" x="680" y="228" text-anchor="middle" style="font-size:26px;font-weight:400">0</text>
<text class="t-label" x="650" y="228" text-anchor="middle" style="font-size:28px;font-weight:600">4</text>
<text class="t-label" x="620" y="228" text-anchor="middle" style="font-size:28px;font-weight:600">4</text>
<text class="t-label" x="590" y="228" text-anchor="middle" style="font-size:28px;font-weight:600">1</text>
<path class="dd-edge" d="M584 242 L698 242"/>
<text class="t-label" x="680" y="272" text-anchor="middle" style="font-size:28px;font-weight:600">2</text>
<text class="t-label" x="650" y="272" text-anchor="middle" style="font-size:28px;font-weight:600">9</text>
<text class="t-label" x="620" y="272" text-anchor="middle" style="font-size:28px;font-weight:600">6</text>
<text class="t-label" x="590" y="272" text-anchor="middle" style="font-size:28px;font-weight:600">1</text>
<text class="t-tell" x="492" y="326">虚线里的 0 不写，</text>
<text class="t-tell" x="492" y="348">第二行往左挪一格</text>
<text class="t-note" x="764" y="44" text-anchor="end">答案一样</text>
</svg>
</div>
<figcaption>图 8 · 36 × 47 用铺地锦和竖式各算一遍，答案都是 1692</figcaption>
</figure>

用铺地锦检查时，你会发现：竖式第一行的 252，就藏在格子里“× 7”的那一行（21 和 42）；第二行的 1440，就藏在“× 4”的那一行（12 和 24）。两种方法算的是同样的四个小乘法，只是摆法不同。

## 小结

回到开头的问题，我们一路找到了这些答案：

1. **为什么数字能竖着对齐来算？** 因为我们的数字讲“位值”：站的位置不同，大小就不同，每往左一格大 10 倍。中国古人摆算筹时，就已经这样用了。
2. **乘法口诀有多老？** 秦朝的木板上就写着九九表，大约有 2200 年了。
3. **两位数乘法怎么算？** 把大乘法拆成几个小乘法，分别乘，再加起来。战国的《算表》、明朝的铺地锦，都是这个办法。
4. **我们写的数字从哪里来？** 0 到 9 出生在印度，经过阿拉伯和欧洲，一百多年前才进了中国的课本。
5. **第二行为什么往左挪一格？** 因为它其实是 23 × 10 = 230，末尾的 0 省掉了，23 还要站在十位和百位上。

你开头的猜想猜对了吗？下次写竖式的时候，可以在第二行末尾用铅笔轻轻点一个小点，提醒自己：这里藏着一个看不见的 0。

## 参考资料
