首页 理论教育 奇怪的函数(一)

奇怪的函数(一)

时间:2022-02-09 理论教育 版权反馈
【摘要】:在n里面的任意位置添加任意多个0,其函数值仍然为m,因而m有无穷多个原象。某个学生写的是:例如,去掉9 012 998中的所有数字9后,得到一个新的数128。美中不足的是,这个函数的函数值有可能等于0,而题目则要求函数的值域不包含0。显然,这也是一个满足要求的答案。

高中数学竞赛辅导课时,我在某次课堂测验中出了这么一道题:

构造一个从全体正整数映射到全体正整数的函数 f(n),使得每一个正整数都被映射过无穷多次。

乍一看,这似乎很难办到。我们可以令f(n)等于n除以1 000 000的结果的整数部分,让每个正整数都被映射过1 000 000次;也可以令f(n)等于n除以1 000 000的余数,让 1 000 000以内的正整数都被映射过无穷多次。不过,我们真的能让所有正整数都被映射无穷多次吗?

答案是肯定的。当时,我自己提供的标准答案是:

令 f(n)等于n的各位数字之和。

例如,808 067的各位数字之和是8﹢0﹢8﹢0﹢6﹢7=29,因此f(808067)=29。很容易看出,任意一个正整数都有无穷多个原象。比方说,对于某个正整数m,令n为m个数字1相连组成的m位数,于是就有 f(n)=m。在n里面的任意位置添加任意多个0,其函数值仍然为m,因而m有无穷多个原象。

看到学生们交上来的试卷后,我非常高兴。绝大多数学生的答案都是正确的,并且他们的构造思路完全不同。某个学生写的是:

令 f(n)等于去掉n中的所有数字 9,把剩下的数当做九进制并将其转换为十进制后的结果。

例如,去掉9 012 998中的所有数字9后,得到一个新的数128。把128当做九进制数,转换为十进制数后便是 107。于是满足要求。

美中不足的是,这个函数的函数值有可能等于0,而题目则要求函数的值域不包含0。其实,这个问题不大,我们只需要在函数 f(n)的定义后面加一句“如果算出来的结果为 0,就随便取一个正整数(比如 1)作为函数值”或者“把算出来的结果再加1作为函数值”即可。

另一个学生则写道:

令 f(n)等于n中所含质因数2的个数。

例如,358 400可以分解为211×52×7。于是f(358400)= 11。显然,这也是一个满足要求的答案。注意,这个函数也存在上面提到的值域问题,不过也可以用类似的方法进行完善。

上述答案都很巧妙。不过,下面这个才是当时我所见到的最简单、最直接的答案:

令 f(n)等于数列1,1,2,1,2,3,1,2,3,4,1,2,3,4,5,…中的第n项。

当然,方法还有很多。你还能想出多少来?

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈