单车骑行

来自计算思维百科
跳转至: 导航搜索
单车骑行1.jpg

在二维平面给你n个点,围成一个多边形(这个多边形只有直角),多边形的里面全部是湖水。你需要从左下角出发,骑车绕行回到出发点。骑行路线如下图所示(0,0)→(0,1)→(1,1)→(1,2)→(2,2)→(2,0)→(0,0)。但是在某些点忘记转弯的话就会冲进湖水里,比如图中(1,1)点,问这个多边形里面有多少个这样的点?

单车骑行2.png

解决方案-角度法

这道题其实我们稍微想想就能够解决。但是因为这道题是计算机学科中的一道编程题,也就是我们需要告诉计算机如何求解。该题中多边形的内角不是90度就是270度,我们先观察点(1,1)在整个多边形的位置,发现该点对应的多边形的内角是270度。因此,我们只需要告诉计算机找出270度的内角就行了。

根据多边形内角和公式,具有n条边的多边形的内角和公式为180×(n-2)。设270度内角的点为x,则90度内角的点为n-x,于是,x×270+(n-x)×90=180×(n-2)

解得x=(n-4)/2。对于本题中的多边形,x=1,因此就只有(1,1)点符合要求。

运用的计算思维

这是一个典型的利用简单的数学方法解决相对复杂的案例,它通过对不注意转弯就会掉进水里的点的研究发现了一个规律:这个点的内角一定是270°,从而简单地解决了问题,体现了一种学习的计算思维。

参考文献

https://www.zhihu.com/collection/58582013