数的表示与其采用的进制密不可分,利用这个性质无疑可以帮助你解决许多原本棘手的问题。
一、两步确定多项式的各项系数
黑匣子里有一个关于 (x) 的多项式 (P(x)) ,其项数未知,但各项的系数都是正整数。如果给黑匣子输入一个数 (z),黑匣子将返回多项式 (P(z)) 的值。
试问:如何在两步之内还原出整个多项式?
- 输入 (1) ,于是便得到整个多项式的所有系数之和。不妨把和记作 (s);
- 输入 (s + 1) ,于是黑匣子返回 (a_n * (s + 1)^n + a_{n-1} * (s + 1)^{n-1} + … + a_1 * (s + 1) + a_0);
- 把该值转换成 (s + 1) 进制,依次读出每一位上的数,它们就是多项式的各项系数了。
二、举一反三
上述示例其实也说明,学习知识不能墨守成规,应当融汇贯通。很多人学习二进制、八进制与十六进制的时候根本不会深入思考。其实有时从进制的角度去看待问题,也许能发现一个不同的世界。
1、多项式的乘法
譬如 ((x+a)(x+b)) 可以看作 (x) 进制的乘法,也就是 (1a imes 1b) ,仿照十进制乘法的计算规则可以得到:
egin{matrix}&&1&a \ imes&&1&b\hline &&b imes 1&b imes a\ +&1 imes 1&1 imes a&\hline &1&a+b&abend{matrix}
将上述 (x) 进制的结果 (1\,\,\,(a+b)\,\,\,ab) 转为 10 进制(按权重展开),即为 (1 imes x^2+(a+b) imes x^1+(ab) imes x^0)。
2、整除
大家都知道一个数是否能被 2 整除只需要看它的个位能否被 2 整除即可,可是你想过为什么吗?这是因为 10 能被 2 整除。
而看一个数能否被 3 整除只需要看各位数之和是否能被 3 整除,这又是为什么呢?因为 (10^n-1) 总能被 3 整除。如:2345 可以写成 (2 imes (999+1) + 3 imes (99+1) + 4 imes (9+1) + 5),展开就是 (2 imes 999+3 imes 99+4 imes 9 + (2+3+4+5))。因此 2345 能否被 3 整除就只需要看 ((2+3+4+5)) 能否被 3 整除了。
3、十六进制
最后举个有趣的“栗子”:你面前有 20 盏灯,每盏灯都处于亮、灭其中一种状态,请你在 1 分钟内记住所有灯的状态,请问你如何做到?
很简单,假设亮为 1,灭为 0,20 盏灯对应一个 20 位的二进制数,将其转化为 32 进制的数,仅有 4 位数,并且由于 (2^5=32),32 进制的每一位数都对应 5 盏灯的状态。而这正式 16 进制诞生的重要原因之一。