不会编程也可以解出@kenchung的数学题

早上起床,看到 @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,期待和您的每次对话!


H2
H3
H4
3 columns
2 columns
1 column
20 Comments