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

in #cn7 years ago

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


Sort:  

再简单对我也是晕!看着迷糊!

哈哈 你还是擅长撰文。写的很嗨 很好

这个得赞下,不明觉厉嘛:)

哥 我这个就是土方法。排列组合 我早忘光了。

我是看着 @juystyy 给的答案,在广场散步的时候我像个精神病似的在广场的格子上走了走了一个小时才想明白那个排列组合的方法。。。。我绝对是脑退化了。。。

这种方法是数学归纳法,也是一种使用很广泛的方法!我用这种方法验算的了一下我的程序。

這個方法我喜歡! 真的不用複雜的數學知識也做到!

感谢你出的题目 很有趣

客氣了,記得下次也來參加就可以了! ;)

必须参加啊

我應該是老得腦退化了,我連題目也看不懂😭😭😭

脑:这个黑锅我不背
哥 别懒了

@jubi, 怎麼大大變了我腦入邊我虫了?

这。。。。。我只是数学不好

😉😉😉

牛。。这个画出来最后面可以归纳成 f(x - 1, y) + f(x, y - 1) 。其实原理都是一样一样的。

嗯呢,所以不会编程 不会排列 也可以解了 哈哈

我也是这么做的。对我来说这种题编程还是有点麻烦的