我们从一个更熟的场景开始:你站在自动售货机前,按下 A1,它吐出矿泉水;按下 B3,它吐出饼干。你真正信任这台机器,不是因为它外壳闪亮,而是因为它守规矩:同一个按钮,每次都应该给出同一个结果。
函数也是这样开始的。它不是先长成 的样子,而是先表达一种秩序:给它一个允许的输入,它按照确定规则给你一个确定的输出。

在售货机这个画面里,按钮是输入,机器内部的设定是规则,掉出来的商品是输出。数学把这三件事压缩成一句话:函数描述输入与输出之间的对应关系。
这里最关键的不是“会不会变化”,而是“同一个输入会不会乱变”。如果 A1 今天出水、明天出饼干,我们就没法放心地预测结果。函数不喜欢这种不确定。函数允许变化,但变化必须有规则。
把话说严谨一点:函数是一种对应规则,它要求定义域中的每一个输入,都对应唯一一个输出。这里的“唯一”只盯着同一个输入,不要求不同输入得到不同输出。

图里的箭头很适合帮我们拆开这个要求。两个不同按钮都指向矿泉水,可以;一个按钮同时指向矿泉水和饼干,不可以。前者只是“不同输入碰巧得到相同输出”,后者才是“同一个输入没有确定答案”。
这也是很多初学者容易卡住的地方:函数不一定是一一对应。函数的底线更朴素,也更重要:每个允许输入只能有一个结果。
生活里很多东西已经在悄悄使用函数,只是它们还没穿上公式的衣服。比如一天中每个整点的气温记录:时间是输入,气温是输出。 上午 9 点那一行只能记录一个明确气温;如果同一地点、同一时刻同时写着 20 摄氏度和 27 摄氏度,那不是函数太复杂,而是记录没有说清楚。

表格的好处是清楚。每一行都像在说:“这个输入,对应这个输出。”它不一定告诉我们所有可能情况,但它能让我们先看见对应关系。
如果把一张表看成函数,我们要问两个问题。第一,输入有没有重复出现却给出不同输出?第二,题目有没有说明这些输入就是全部,还是只列出了一部分样本?第一个问题决定它能不能算函数,第二个问题决定我们知道了多少。

把表格搬到坐标系里,每一行就变成一个点。通常横轴放输入,纵轴放输出。这样一来,函数就不只是“算出来的答案”,它还能变成一串点、一条曲线、一个可以观察变化趋势的图像。
同一件事,表格适合核对具体数值,图像适合看整体走势,公式适合压缩规则。它们不是三种互相竞争的东西,而是同一个函数的三种表达方式。
函数像机器,但机器不是任何东西都收。售货机只认它面板上存在的按钮;温度记录只讨论被记录的时间;某个公式也可能只允许某些数代入。所有被允许的输入,叫定义域。

定义域回答的是:哪些输入可以交给这条规则处理?比如规则是“把一个数放进分母”,那么让分母变成 0 的输入就不能随便放进去。不是函数突然坏脾气,而是这类输入根本不在规则允许的入口上。
值域回答的是:所有允许输入经过规则处理后,实际可能得到哪些输出。注意,它不是你想象中可能写在输出区的一切,而是规则真的能吐出来的结果。
如果定义域是 ,规则是“平方”,那么输入与输出的对应为:
这些输入实际得到的输出只有 。所以在这个例子里,定义域是 ,值域是 。你会发现,输入有 5 个,输出结果却只有 3 种,因为不同输入可以得到相同输出。
看到一个公式时,不要急着默认“所有数都能代入”。函数最好同时说清规则和定义域;只给规则不说入口,有些题目就会在分母、平方根、实际情境单位这些地方留下坑。
现在再看符号,它就没那么吓人了。函数常用一个名字表示,比如 、、。输入常写作 ,输出写作 。这里的 读作“ 在 处的值”,意思是把 交给名叫 的规则处理后得到的结果。

如果规则是“先乘 2,再加 1”,就可以写成:
这行公式的意思不是神秘咒语,而是一句压缩过的话:任何允许的输入 ,经过规则 处理,输出都是 。
当输入是 3 时,我们写:
换句话说, 不是一个新规则,而是把 3 放进旧规则后得到的具体输出。
某停车场前 1 小时收费 6 元,之后每增加 1 小时加 4 元。暂时只讨论整小时停车,设停车时长为 ,停车费为 。求 ,并说明这个函数的输入和输出分别是什么。
先找输入。题目把停车时长记作 ,并且暂时只讨论整小时,所以 可以取 1、2、3 这类整小时数。
再找输出。停车费记作 ,它会随着停车时长变化;但只要收费规则确定,每个时长都只能对应一个费用。
这个例子提醒我们,函数记号的重点不是字母本身。 只是给“收费规则”取了一个名字, 就是问这条收费规则在输入 3 时给出的结果。
函数经常和数字一起出现,是因为数字方便计算。但函数这个概念本身更宽。输入可以是月份,输出可以是天数;输入可以是人名,输出可以是生日;输入可以是一张订单,输出可以是订单状态。

如果一个允许输入没有输出,规则不完整;如果一个允许输入有两个不同输出,规则不确定。可是两个输入连向同一个输出,完全没问题。比如“月份对应季节”中,三月、四月、五月都可以对应春季,这不妨碍它作为一个函数来理解。
判断是不是函数时,最省力的一句话是:盯住每一个输入,看它是不是只给出一个输出。不要先管输出会不会重复,重复输出并不破坏函数。
当函数被画成图像时,判断方法也可以很直观。想象一条竖直的扫描线从左往右扫。竖线固定在某个横坐标 上时,它碰到的点代表这个输入对应的输出。

如果某一条竖线同时碰到图像上的两个点,就说明同一个 对应了两个不同的 。这正好违反函数“一个输入唯一一个输出”的要求。因此,这样的图像不能表示 是 的函数。
反过来,如果任何竖线最多只碰到图像一个点,图像就通过了竖线检验。它表达的意思很简单:每个横坐标最多只有一个纵坐标与它配对。
遇到函数题,可以先问三个朴素问题:允许输入什么?规则怎样处理输入?每个输入的输出是否唯一?这三个问题站稳了,定义域、值域、函数记号和图像判断就不会散成一堆零件。
判断下面三组对应是否可以看成函数,并说明理由。
第 1 组在这份名单中通常可以看成函数,因为每个学生姓名对应一个确定学号。第 2 组不一定是函数,因为有些学生登记两个号码时,同一个输入会对应两个输出。第 3 组是函数,因为每个整数平方后都有唯一结果;虽然 和 都得到 ,但这只是不同输入得到相同输出,并不违反函数定义。
函数真正管理的不是静止的数字,而是“输入变了,输出怎样跟着变”。
把今天的内容压成一句话:函数是一条守规则的对应,它先说明哪些输入能进来,再说明输入怎样被处理,最后保证每个输入只有一个输出。 以后看到新的函数,不妨先把它想成一台机器,再把机器拆成定义域、规则和值域。符号只是外壳,确定的对应才是核心。
接着把规则写成式子。前 1 小时是 6 元,超过 1 小时的部分是 小时,每小时加 4 元,所以当 时,有 。
最后代入 3。停车 3 小时的费用是 ,所以输出是 14 元。