解决问题的思路
- 首先真正理解题意,看能不能转换为一般性问题
- 对一般性问题寻找最简的模型(或控制变量,或等比缩减规模)进行求解
- 求解过程中不断总结规律
- 看能不证明这些总结来的规律
- 看能不能应用到实际的其他场景中,发散思维
案例:
100的99次方和99的100次方哪个大?
原文:李永乐老师 https://www.youtube.com/watch?v=WXW2b0eJVsg
怎么解决这个问题呢?
- 理解题意:
100的99次方可以看做有99个100的数相乘
99的100次方即100个99的数相乘
这里可以看到是和为9900的一个大数,怎么平均分拆,使得乘积最大?
转为一般性问题:对一个确定的数,怎么平均分拆,可以使得乘积最大?
- 寻找最简模型:
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
- 我们看到3的时候最大
- 比3大的越多结果越小
- 拆不了3就拆2或4
验证原问题:
9900是拆为99的100次方还是拆为100的99次方,按规律可知离e越近的结果越大,所以我们选99的100次方大
证明规律:
设: 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
应用:
进制的选择:有100个算盘珠子,选几进制可以表示出尽量多的数?
我们常用的10进制,就是10的10次方,最多100个数
如果是计算机的2进制,就是2的50次方,最多1.1258999e+15个数
如果是3进制,就是3的33次方,最多5.5590606e+15个数
按上面的规则,我们知道选3进制
- 计算机选3进制效率较高,但电信号的01是更可靠的表示,所以计算机选择了2进制
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。