求解两条题目

竹筒有20根签10根白色,10根红色抽取10根颜色一致可获得100元奖励,抽取9根颜色一致可获得50元奖励但是抽取红色5根白色5根就损失50元,问这游戏是否值得参与原因?

这是典型的组合数求期望问题设事件‘抽取10根颜色一致’为A,事件‘抽取9根颜色一致’为B事件‘抽取红色5根白色5根‘为C。

然而判断组合数昰否重复计算并不是重点。有数学公式C(m,n) = C(m,m-n)我们计算C(10,9)可以转换为计算C(10,1),以提高计算效率

尝试三,在尝试一的基础上判断a/2和b的大小例如对於C(10,9),直接计算C(10,1)

我们先从C(0,0)算起然后C(1,0)C(1,1),C(20),C(2,1)C(2,2)......C(n,k),仔细观察其实求组合数的问题由交叠的子问题构成。

第一时间想到的是使用遞归关系包含子问题和大问题具有的相同形式但由于子问题具有交叠,用递归方法解决代价很大我们可以考虑使用动态规划来求解。

對每个交叠的子问题只求解一次并把结果存储在记录表中,最后得出原始问题的解

尝试四,利用递归和动态规划来求解组合数

 存在C(n,k)=C(n-1,k)+C(n-1,k-1)  建立一张表,我们对数据进行动态更新即每一次迭代,我们都去根据公式计算出合适的值

源码及游戏演示测试地址:

眼前有两块100px*100px的两塊div,分别距离我们10m和7m但是由于视觉差,我们只看到最靠近我们的一块板用鼠标模拟我们的运动轨迹,鼠标右移类似于我们往右侧行走请模拟实现我们右移,所看到两块div形态变换

一开始,我脑海中的构想:

假设100px=4cm即半径等于85cm=>2125px。由于时间的关系就直接把草稿拍照放上來,雅蠛蝶真的好复杂:

我们围绕小圈圈,想看到后面的div在我们接近圆边东方这个点的过程中,前面的div将会不要断缩小而后面的div将會不断放大。但是鼠标移动npx而div会放大mpx,需要集合详细的三角函数和反三角函数计算好啦没问题来了,怎么算D1和D2

 于是我开始不断恶补各種高中三角知识。。

先补一下三角函数的基础知识

折腾大半个晚上了,为什么还算不出来难道真的是我理解错了  好咯好咯~~重新再想想

 秉承“怎么简单怎么算”的原则,我重新理解了一次题目。。

10米和7米这两个数值如果转换为像素将不利于计算出来的效果也不呔乐观,我将它们分别改成了10cm和7cm了

 假设人行走a cm,我们可以通过a来表示D1和D2的长度期间使用到相似三角形、三角形面积公式等原理,完全鈈需要三角函数和反三角函数剩下的就不难了

4 //计算前面板初始宽度 17 //小圆点在虚线范围内可拖拽

第一点,面试前千万不要熬夜千万不要熬夜,千万不要熬夜!!!重要的事情要说三遍面试答题的时候,脑袋满满的困意和饿意将会造成悲惨的结局。

第二点注意要把问題细化,着手解决问题前应该根据题目所给的条件,将问题拆分成为若干小问题然后针对性地根据逐一解决。

第三点避免先入为主。一开始认为问题很难不断深究,最后很容易把自己逼得走投无路当问题暂时无法解决的时候,回到最初的问题重新分析,换一个角度将会有新想法。

我要回帖

 

随机推荐