数学建模 算法
命题:上下班有4个点,分别是9点、12点、13点、18点。随机给出两个点开始点和结束点,例如10点来公司,14点离开公司,建立数学模型得出在公司上班几个小时,上例是3个小...
命题:上下班有4个点,分别是9点、12点、13点、18点。随机给出两个点开始点和结束点,例如10点来公司,14点离开公司,建立数学模型得出在公司上班几个小时,上例是3个小时。
我的设想是10点和14点分别和4个点做差得到8个数,将这8个数通过建立算法得到是3个小时,但还没做出来,请高人帮忙,感激涕零。
非常感谢以上两位建议,但还是有实现不了的情况,有可能两个时间都在上午,或都在下午。
我是想能不能分别做差,得到一堆数据后,再建模算出结果。 展开
我的设想是10点和14点分别和4个点做差得到8个数,将这8个数通过建立算法得到是3个小时,但还没做出来,请高人帮忙,感激涕零。
非常感谢以上两位建议,但还是有实现不了的情况,有可能两个时间都在上午,或都在下午。
我是想能不能分别做差,得到一堆数据后,再建模算出结果。 展开
3个回答
展开全部
设A点上班,B点下班
楼主说的有道理,考虑到A和B都在上午或下午的情况,需要修改一下公式:
总上班时间为:
max(0, (min(B,12)-max(A,9))) + max(0, (min(B,18)-max(A,13)))
其中 min/max 函数表示两变量之间取较小/大值
你可以代入公式验算一下。
基本思路是分别计算上午和下午各上了几小时班,然后相加。
关于楼主说的算出几个差值,然后“建模”的想法,
因为这个函数是不连续的,必须要加入判断处理,在C语言中是IF语句,
用公式表达就是这里的 MIN 和 MAX
靠加减乘除做表达式,好像做不出不连续函数。
楼主说的有道理,考虑到A和B都在上午或下午的情况,需要修改一下公式:
总上班时间为:
max(0, (min(B,12)-max(A,9))) + max(0, (min(B,18)-max(A,13)))
其中 min/max 函数表示两变量之间取较小/大值
你可以代入公式验算一下。
基本思路是分别计算上午和下午各上了几小时班,然后相加。
关于楼主说的算出几个差值,然后“建模”的想法,
因为这个函数是不连续的,必须要加入判断处理,在C语言中是IF语句,
用公式表达就是这里的 MIN 和 MAX
靠加减乘除做表达式,好像做不出不连续函数。
展开全部
很简单啊
如果编程的话,分情况考虑,用判断做就好了啊,几个if语句就能搞定啊,情况很少哎;
如果用数学结果表示的话,
给出上下班点为x,y
(min{y,18}-max{x,9})-(min{y,13}-max{x,12})
前半是不考虑中午休息的上班时间,后半减去中午休息
没错吧
如果编程的话,分情况考虑,用判断做就好了啊,几个if语句就能搞定啊,情况很少哎;
如果用数学结果表示的话,
给出上下班点为x,y
(min{y,18}-max{x,9})-(min{y,13}-max{x,12})
前半是不考虑中午休息的上班时间,后半减去中午休息
没错吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
例如10点来公司,14点离开公司,建立数学模型得出在公司上班几个小时,上例是3个小时。
为什么?你的命题我没看明白,能解释一下吗?
为什么?你的命题我没看明白,能解释一下吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询