首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

编程的第一步——数学建模

很多在现实世界里看似很简单,很轻松就能解决的问题,但要通过程序让计算机来完成,就没那么容易了,因为这涉及到一个很重要的问题——数学建模。

刚上大学那会儿,院里让我报名上数学建模课,我以为仅仅只是MATLAB之类的枯燥乏味的内容,现在过来看是自己太肤浅了。

任何实际问题转换让计算机完成都跨不过以下两步:

1、建立模型——将实际问题转化成数学关系

2、设计算法——将数学问题转化成程序代码

同一个问题,不同的人会可能会建立不同的模型,这将会进一步影响后期程序执行的速度和效率,这是个很高深的话题,在此我不做深入讨论。接下来我们以一个“农夫过河”的故事,初步认识一下什么是建模

话说一位农夫带着一只狼、一只羊和一筐菜过河,无奈船小,农夫每次只能运送一样东西,但狼和羊不能单独待在一起,羊和菜也不能单独在一起。这个农夫该肿么办呢?

第一步、数学建模

这个问题的核心是狼、羊、菜两两之间的位置关系怎么转化成数学关系,可以给三个实物分别赋予三个数值“狼=1、羊=2、菜=3”,如果他们之间的差值等于“1”或“-1”,就认为他们不能单独在一起。

第二步、算法设计

有了以上数学思想,就可以着手设计核心算法了。

我们建立两个空列表分别存贮“左岸”和“右岸”的物品列表,船移动时从哪边运走某物品,就在该列表中删除相应列表项,在另一边列表中增加一个列表项

装船后或卸货前,求一次列表长度,如果长度为2,需要计算两个列表项的差值,如果差值的绝对值为1,输出当前的两个物品不能单独待在一起,如此反复,直到右岸列表项长度为3就说明游戏完成。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180420G12LIN00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券