• 漫谈进位制:两步确定多项式的各项系数


    数的表示与其采用的进制密不可分,利用这个性质无疑可以帮助你解决许多原本棘手的问题。

    一、两步确定多项式的各项系数

    黑匣子里有一个关于 (x) 的多项式 (P(x)) ,其项数未知,但各项的系数都是正整数。如果给黑匣子输入一个数 (z),黑匣子将返回多项式 (P(z)) 的值。

    every errbase is 10

    试问:如何在两步之内还原出整个多项式?

    1. 输入 (1) ,于是便得到整个多项式的所有系数之和。不妨把和记作 (s)
    2. 输入 (s + 1) ,于是黑匣子返回 (a_n * (s + 1)^n + a_{n-1} * (s + 1)^{n-1} + … + a_1 * (s + 1) + a_0)
    3. 把该值转换成 (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 进制诞生的重要原因之一。


    如果您喜欢这篇文章,不妨点个
    欢迎转载、演绎或用于商业目的,但请务必保留作者署名(包含链接)
    Copyright © Pandaman
  • 相关阅读:
    FMDB线程安全
    FMDB的使用
    iOS【手机验证码】判断手机号是否合法
    UIScrollView UIScrollViewDelegate
    iOS苹果开发者常用网站
    < meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" />
    CSS布局口诀
    css垂直居中
    在js中使用createElement创建HTML对象和元素
    jQuery-对Radio/CheckBox的操作集合
  • 原文地址:https://www.cnblogs.com/Pandaman/p/base.html
Copyright © 2020-2023  润新知