日期交集
早在13年左右的时侯,做过一个系统,功能很简单,做一个日程管理功能,这里边涉及到一个小知识点,就是日期取交集。今天跟大家分享的是从这个点展开的,时间段取交集的话题。
业务逻辑
逻辑很简单,就是一两个日期段取交集,可如果按正常思维去实现,其实日期交集的场景我们可以穷举出来,大概有4种情况
s1--------------e1
s2-----------------e2
s1--------------e1
s2-----------e2
s1-----------------e1
s2-------e2
s1-------e1
s2-----------------------e2
如果按这种逻辑实现我们的表达式可能至少要写4种,逻辑复杂,且可读性差
逆向思维
这是软件开发中非常重要的思维模式,在程序员数学中有重点介绍。 这里提到的程序员数学,是一套书,包括程序学基础数学,概率论和线性代码,同时也是进入机器学习的基础理论,有兴趣的朋友可以买回来读一读。 我们通过个例子,来实践一下逆向思维。 其实如果按交集的逻辑来看,上面穷举出来有4 种情况。 但我们反过来想 没有交集的情况只有两种可能
s1-------------e1
s2------e2
s1------e1
s2--------------e2
我们设 两个时间段的日期为s1(start)-e1(end) 和s2-e2 通过逆向推导可以推出出列表达式
这里我们假定
s1<e1 & s2<e2
=>
e2<s1||e1<s2
说明满足该条件是不可能产生交集 上述表达式翻译成业务语言即
第一个时间段已经结束,第二个时间段还没未开始
通过对表达式取非即所有存在交集的情况
!(e2<s1||e1<s2)
=>
e2>=s1&&e1>=s2
这个就可以做为时间取交集的最终表达式
这里有一点非常重要,这个时间段我们有条件的
s1<e1 & s2<e2
这是表达式成立的充分条件
问题
这里我们只是把时间交集的表达式推导出来,我们把该命题扩展一下,目前我们只是取两个时间段的交集,如果取n个时间段的交集呢?
--------- ---------------
--------- --- ---
------------- -------
------ -----------
--------- ------------
- 这样的时间段有成百上千条该如何处理?
- 如果我们需要根据具有日期交集的时间段分组呢?
- 如果我们的业务不是日期,而是其他数据类型呢?如何抽象出计算模型?非日期型数据也可以进行分组?
请关注下一篇博客
相关推荐
SPARROW
从麻雀的群体智慧、觅食行为和反捕食行为出发,提出了一种新的群体优化方法&麻雀搜索算法(SSA)
麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法,在2020年提出,主要是受麻雀的觅食行为和反捕食行为的启发
在19个基准函数上进行了实验,测试了SSA算法的性能,并与其他算法如灰狼优化算法(GWO)、引力搜索算法(GSA)和粒子群优化算法(PSO)进行了比较。仿真结果表明,该算法在精度、收敛速度、稳定性和鲁棒性等方面优于...
可以运行的代码!麻雀搜索算法(SSA)搭配论文可以很好对算法进行解读,适合初学者
进销存管理程序 Sparrow
麻雀搜索算法(Sparrow Search Algorithm
可以运行的代码!麻雀搜索算法(SSA)搭配论文可以很好对算法进行解读,适合初学者
麻雀搜索算法(Sparrow Search Algorithm
麻雀搜索算法(Sparrow Search Algorithm,SSA)是一种受到自然界麻雀觅食行为启发的优化算法。该算法模拟了麻雀在觅食过程中的策略,通过在解空间中寻找最优解来解决优化问题。SSA算法的设计灵感来源于麻雀的觅食...
Sparrow-Framework官网源代码, 从官网下载的Sparrow-Framework源代码,大家可以看看学习。这个google收购的时候可用了2500万美元哦。
麻雀搜索算法( sparrow search algorithm, SSA)在2020年,是受麻雀觅食行为和反捕食行为启发而由Xue等[提出的一种新型群体智能优化算法。搜索过程可抽象为发现者-加入者-警戒者模型。发现者拥有更广阔的搜索范围,...
Sparrow.js是一个短小精悍的前端基础库,它包含对DOM、CSS基本操作、多平台浏览器移动设备判断、Cookies操作、事件的绑定、日期、数字、字符串相关判断、以及浏览器自身函数不足所扩展的一系列功能。开发技术说明...
iOS游戏引擎 Sparrow Framework ,Sparrow是一个基于Objective-C的开源的游戏引擎,完全为iOS设备构建。该项目可以让开...
Sparrow-v1-6-4.dmg 在mac上安装的sparrow,一个邮件客户端。
麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法,在2020年提出,主要是受麻雀的觅食行为和反捕食行为的启发。在麻雀觅食的过程中,分为发现者(探索者)和加入者(追随者),发现者在种群...
麻雀搜索算法(Sparrow Search Algorithm, SSA)是一种新型的群智能优化算法,在2020年提出,主要是受麻雀的觅食行为和反捕食行为的启发
自测Sparrow1.5破解版本
资源分类:Python库 所属语言:Python 资源全名:sparrow-tool-0.3.5.dev2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
2.领域:智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,更多内容可点击博主头像 3.内容:标题所示,对于介绍可点击主页搜索博客 4.适合人群:本科,硕士...