解决问题的思路

  1. 首先真正理解题意,看能不能转换为一般性问题
  2. 对一般性问题寻找最简的模型(或控制变量,或等比缩减规模)进行求解
  3. 求解过程中不断总结规律
  4. 看能不证明这些总结来的规律
  5. 看能不能应用到实际的其他场景中,发散思维

案例:

100的99次方和99的100次方哪个大?

原文:李永乐老师 https://www.youtube.com/watch?v=WXW2b0eJVsg

怎么解决这个问题呢?

  1. 理解题意:

​ 100的99次方可以看做有99个100的数相乘

​ 99的100次方即100个99的数相乘

​ 这里可以看到是和为9900的一个大数,怎么平均分拆,使得乘积最大?

​ 转为一般性问题:对一个确定的数,怎么平均分拆,可以使得乘积最大?

  1. 寻找最简模型:

​ 9900的分拆情况太多了,我们找一个小规模的问题,我们缩减到12这个数

​ 12可以分解为:

    • 1+1+1+...+1 1的12次方 =1
    • 2+2+2+2+2+2 2的6次方 =64
    • 3+3+3+3 3的4次方 =81
    • 4+4+4 4的3次方 =64
    • 6+6 6的2次方 =36
  1. 总结规律:

    • 不要拆1
    • 我们看到3的时候最大
    • 比3大的越多结果越小
    • 拆不了3就拆2或4
  2. 验证原问题:

    9900是拆为99的100次方还是拆为100的99次方,按规律可知离e越近的结果越大,所以我们选99的100次方大

  3. 证明规律:

    设:
    f(x)=lnx/x
    f'(x)=(1-lnx)/x^2
    x>0 时f'(x)恒小于0
    f(x)为减函数
    x为e时即2.71828时最大,即越靠近e越大,所以整数时就为3,然后是2,4,5...
    
    f(100)<f(99)
    即ln100/100<ln99/99
    移项得99ln100<100ln99
    即100^99<99^100
  1. 应用:

    • 进制的选择:有100个算盘珠子,选几进制可以表示出尽量多的数?

      我们常用的10进制,就是10的10次方,最多100个数

      如果是计算机的2进制,就是2的50次方,最多1.1258999e+15个数

      如果是3进制,就是3的33次方,最多5.5590606e+15个数

      按上面的规则,我们知道选3进制

  • 计算机选3进制效率较高,但电信号的01是更可靠的表示,所以计算机选择了2进制

泡泡糖霸
0 声望0 粉丝

引用和评论

0 条评论