1.2 打印店中的函数和映射
如果我们使用如图1-1中的印刷设备,为了确保在缩印之后,文字既不变形而且也可以被看清楚,我们可以选择把原书的长和宽都缩短一半,再印刷在和原书一样大小的纸张上。由此我们可以轻松地计算出在一张纸的一面上可以印刷原书4页的内容,那么如果我们采用双面印刷的话,在同一张纸上就可以印刷原书8页的内容,两张纸上就可以印刷原书16页的内容,三张纸上就可以印刷原书24页的内容……
图1-1 打印机
由此,我们归纳出下列式子:
可以印刷的原书页数=用于缩印的纸张数×8
利用等式的性质,我们可以在等式两侧同时除以8,于是就得到了:
可以印刷的原书页数÷8=用于缩印的纸张数
经过再次整理,我们就可以得到:
但这个式子存在一个问题:如果有一本100页的书籍需要缩印,那么缩印用纸数即为12.5。出现小数的原因是,缩印所需的最后一张纸的确只用了一半,但在实际生活中,哪怕只用了一半也要按照一整张纸进行计算。那么我们就把上面的式子变为:
添加在等式右侧的符号“┌ ┐”叫向上取整。它的意思是,当用了少于一张的纸时,不管用了这张纸的多少,都要按照一整张计算。当然,你也许会遇到一个慷慨的打印店老板,他说:“既然最后一张没有印满,那么这张纸就不算了。”这时候就有了如下式子:
添加在等式右侧的符号“└ ┘”叫向下取整。它的意思是,当你非常幸运地遇到了一个慷慨的打印店老板,他会因最后一张纸没有印满,而不向你收取该张纸的费用。
如果我们把上述问题用数学的方法表达,可以写成如下形式:
设:用x表示需印原书页数,y表示缩印用纸数量,f(x)表示用纸的数量和原有页数之间的转换关系,即有:
当然你也可以把f(x)去掉,写成:
这里,我们将称为映射,f(x)则为函数。缩印一本书具体需要多少张纸是要看原书需要缩印的有多少页,也就是上式中的x,所以x就叫自变量,因为它是可以自由改变的。而代表缩印使用了多少张纸的y虽然也是改变的,但是它是根据x的改变而改变,所以我们把y称为因变量。
细心观察就会发现,如果我们需要缩印的书籍有97页,那么我们需要印13页纸;需要缩印的书籍有98页时,我们还是需要印13页纸。按这一规律推算,当需要缩印的书籍有104页时,我们还是需要印13页纸。也就是说,当需要缩印的书籍的页数在97~104页的时候,我们都需要13页纸来缩印。由此我们可以归纳出:一个自变量所对应的因变量是唯一且明确的,但一个因变量却可以被若干个自变量所对应。这就是函数和映射的性质。
对于像缩印这样的实际问题来说,x必须是正整数。因为想要缩印-5页或复印2.33页都是不可能的。关于x的取值范围,我们可以用一个数学上的专有名词来表示,它就是定义域。对于那些取任何值都可以的事物(比如气温),我们就说它的定义域是全体实数,对于像缩印的页数这种问题,我们就需要具体问题具体分析。
相应地,既然自变量x是有范围的,那么因变量y也一定是有范围的。我们将因变量的取值范围称为值域。
如果打印店老板说没印满的纸张不收费,而缩印每张纸应付五角钱。由此可知,需要收费的纸张数为:
这次我们用x表示需印原书页数,y表示收费纸张数,f(x)表示收费纸张数和需印原书页数之间的转换关系,可得到:
这下我们可以算出应为多少张纸付费,接下来只需要计算出应该付多少钱就可以了。
那么有:
应付款=0.5×收费纸张数
这里设应付款为z,收费纸张数和应付款的对应关系是
y在y=f(x)这个式子中是根据x的值来变化的,所以它叫做因变量。
但是我们还发现,在z=g(y)中,z是根据y的变化而变化的。所以,y在y=f(x)这个式子中是自变量,而在z=g(y)这个式子中是因变量。所以谁是自变量、谁是因变量并不绝对。
当然,如果你嫌y这个字母多余,你也可以将上述式子写成:
这里将原本的g(y)写成了g(f)的形式,其中,f代表的是f(x)计算的结果。如果你还觉得繁琐,那么更简练的写法是:
对于f(x)来说,中,f(x)是函数。然而在g(f)=0.5×f(x)中,f所处的位置的自变量的位置。那么我们就称这种自变量是不同于因变量的另一个函数的函数[在这里g(*)不仅是一个式子,还是一个函数]叫做复合函数。
我们也可以把上述复合函数化简,使之成为一般函数:用代替上式中的f(x),用x代替f,可得:
这时,上式中的自变量变成了x,所以g(*)所表示的映射发生了改变。之前当g(f)时,g(*)表示的是收费纸张数和应付款的对应关系。但是,现在由于自变量由f变成了x的缘故,所以g(*)表示的就应该是需印原书页数和应付款的对应关系。
如果有一天,你遇到了一个更慷慨的打印店老板。他说:“不仅没印满的纸张不收费,而且消费超过50元的部分打八折而缩印每张纸仍应付五角钱。”
显然,当我们缩印的消费小于或等于50元时,我们还可以使用之前的式子,即:
但当缩印的消费超过50元时,按照老板的优惠方法,就应该对超过50元的部分打八折。那么超过50元的部分就应写成g(x)-50或者的形式。对这部分打八折,就用这一部分乘以0.8就可以了,于是就得到了超出50元的部分应付款的算式:[g(x)-50]×0.8,当然也可以写成的形式。
但这只是超出50元的部分优惠后的价钱,我们还没有加上不参与优惠的50元。因此,当消费超过50元时,则有应付款g(x)为:
我们可对上式进行化简:
综上所述,优惠后的价格为:
现在我们需要考虑的就是,当我们缩印的内容为多少页的时候,消费才能比50元多。显然,当我们消费50元的时候,共缩印了100张纸(因为每张纸5角钱)。但是按照老板的计算方法,如果最后一张纸没有印满,就不收费。所以如果想要消费超过50元,就必须印满101张纸,那么为了印满101张纸,我们至少需要缩印808页的书籍。所以,当我们缩印的内容少于808页的时候,并不能享受到打折的优惠;当我们缩印的内容大于等于808页的时候,我们就可以顺利地享受优惠了。
我们将这种分成两部分或者若干部分计算的函数叫做分段函数,用数学语言表达出来是这样的:
现在我们来考虑更普遍的情况。比如复印。或者缩印的比例是3∶1而不是之前的2∶1。这时,我们就不得不考虑,能不能写成一个更有普遍性的式子(函数)来避免每次到打印店都得在复印前按上一通计算器的麻烦了。