早上起床,看到 @justyy 和 @tvb 都用编程的方法 解答了之前 @kenchung 出的数学题。我不会编程,不过既然是数学题,使用一些简单的数学方法同样可以解答。下面看看我如何用数学方法简单解答。
题目:[Question] Mathematics × Programming Competition #4 [問題] 數學 × 程式編寫比賽 (第四回)
题目很简单,只能往右或者往上走。算出从a到b再到c 一共需要多少步。
很容易看出来,本题的答案是,Count(A-B)*Count(B-C) 那只要知道了a到b 有多少步,b到c自然也就知道了。
作为一个普通答题者,所会的技能不一,可能专业的排列组合不会,编程也不会。那怎么解答此题。那就是类推。就好像数列一样,1 3 5 7 9 ………… 很容易猜到后面是11.
这道题目,从题目可以获知一个基础答案,那就是到达边上的任何一点的步数都是1
那么要怎么做,从步数少的地方开始,记录下每个点的步数。
由a到红圈,步数是2
a点到红圈的步数是3步,边上任何一点的步数都是1,到这儿可以发现,每个点的步数是对角2点之和。
因为只能往右或者往上,所有的边上点,就只有一种走法,而交叉的点,自然就是其余2点的步数和。为什么不是乘尼? 比如上图圈的点,如果乘的话,就是2步 而不是3步!
到这儿,就简单了,把每个点的对角进行相加,自然会得到答案!
A-B 35步
B-C 252 步
那么A-B-C的答案就是35*252=8820
其实读完这道题目,第一时间把边上任何一点步数是1 这个隐藏条件获取到,就可以迎刃而解,然后通过编程,或者排列得到答案。
当然最直接的就是 自己加下,几分钟就得到答案了。
关于如何编程得到答案 可以参考 @justyy 和 @tvb
软件工程师面试技巧之 从A到B再到C有多少种方法?
數學 × 程式編寫比賽 (第四回)我小试了一下
可能有一些用户,也想参与游戏,一看到题目,下意识觉得自己做不了就离开了,其实大可不必如此。只要愿意多想想,没有解不开的题目。你看我,这么笨,不还是做出来了。so 积极参加社区游戏和活动吧!这里支持下 @kenchung 希望大家踊跃参与!
----------
感谢您阅读 @jubi 的帖子 希望得到您的follow、upvote和reply ,对我最重要的是reply,期待和您的每次对话!