算法命题:上下班有4个点,分别是9点、12点、13点、18点.随机给出两个点开始点和结束点,例如10点来公司,14点离开
来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:数学作业 时间:2024/08/15 20:34:27
算法
命题:上下班有4个点,分别是9点、12点、13点、18点.随机给出两个点开始点和结束点,例如10点来公司,14点离开公司,建立数学模型得出在公司上班几个小时,上例是3个小时.
我的设想是10点和14点分别和4个点做差得到8个数,将这8个数通过建立算法得到是3个小时,感激涕零.
非常感谢以上两位建议,但还是有实现不了的情况,有可能两个时间都在上午,或都在下午。
我是想能不能分别做差,得到一堆数据后,再建模算出结果。
命题:上下班有4个点,分别是9点、12点、13点、18点.随机给出两个点开始点和结束点,例如10点来公司,14点离开公司,建立数学模型得出在公司上班几个小时,上例是3个小时.
我的设想是10点和14点分别和4个点做差得到8个数,将这8个数通过建立算法得到是3个小时,感激涕零.
非常感谢以上两位建议,但还是有实现不了的情况,有可能两个时间都在上午,或都在下午。
我是想能不能分别做差,得到一堆数据后,再建模算出结果。
![算法命题:上下班有4个点,分别是9点、12点、13点、18点.随机给出两个点开始点和结束点,例如10点来公司,14点离开](/uploads/image/z/17266962-66-2.jpg?t=%E7%AE%97%E6%B3%95%E5%91%BD%E9%A2%98%EF%BC%9A%E4%B8%8A%E4%B8%8B%E7%8F%AD%E6%9C%894%E4%B8%AA%E7%82%B9%2C%E5%88%86%E5%88%AB%E6%98%AF9%E7%82%B9%E3%80%8112%E7%82%B9%E3%80%8113%E7%82%B9%E3%80%8118%E7%82%B9.%E9%9A%8F%E6%9C%BA%E7%BB%99%E5%87%BA%E4%B8%A4%E4%B8%AA%E7%82%B9%E5%BC%80%E5%A7%8B%E7%82%B9%E5%92%8C%E7%BB%93%E6%9D%9F%E7%82%B9%2C%E4%BE%8B%E5%A6%8210%E7%82%B9%E6%9D%A5%E5%85%AC%E5%8F%B8%2C14%E7%82%B9%E7%A6%BB%E5%BC%80)
设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
靠加减乘除做表达式,好像做不出不连续函数.