visual-studio-2008 - 同时连接,excel

标签 visual-studio-2008 algorithm excel intersection

我有一个 session 开始和停止时间的列表,格式如下:

23/11/09 15:18:32, 23/11/09 15:18:40
23/11/09 15:20:02, 23/11/09 15:20:32
23/11/09 15:20:10, 23/11/09 15:20:40

目前这是在 Excel 中,在一列中开始日期时间,在另一列中结束日期时间。

基本上我想做的是对这些数据进行一些后期处理。我还不确定该使用什么,是开发我自己的应用程序,还是只使用 excel,这正是我希望得到帮助的地方。

基本上,我想做的是计算时间段 x,为简单起见,时间为 15:00 - 16:00。基于这些 session ,我想计算出该小时内有多少同时连接。

任何想法建议,如何,使用什么?擅长? vs2008?

我想将它保存在 excel 中的一个好处是我可以轻松地生成图表等......而且我一直在努力处理 vs 中的日期时间对象。

最佳答案

我相信这根本不是一个简单的问题。让我重述一下您的问题:您可以将每个连接视为一条直线上的一段,具有起始值和结束值。您要查找的是具有非空交集的最大段子集;该子集中的元素数就是并发连接数。如果你能解决这个问题,找到有限时间跨度的答案应该是微不足道的(只需“截断”每个连接,这样如果起始值在周期开始之前,连接就在周期开始时开始)。
现在我认为这很困难的原因是,如果你采取三个部分,比如说,1:00 到 2:00、1:00 到 1:15 和 1:45 到 2:00,所有 3 个重叠,但你只有2个并发连接。因此,简单地检查每个连接有多少其他连接重叠是不够的,您必须实际考虑重叠是如何重叠的,可以这么说。
大多数事情都可以在 Excel 中完成,至少如果您使用 VBA,所以我认为这不是您的问题 - 问题在于算法本身。
编辑:我做了一些快速挖掘,似乎Marzullo's algorithm接近你正在尝试做的事情。我会挖掘更多,但这可能会给你一个起点。
编辑 2 获得合适答案/近似值的一种“廉价”方法是将您正在考虑的时间段分解为连续的小间隔(例如:将一小时分解为 5 分钟的片段)并针对每个段,计算重叠的连接。这应该比明确尝试识别最多线段相交的线段要快得多!

关于visual-studio-2008 - 同时连接,excel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1823273/

相关文章:

c++ - 如何确保在修改 .h 文件时,包含该文件的 .cc 文件会在使用 Visual Studio 2008 的发布版本中自动编译?

excel - 使用 For 循环覆盖范围隐藏行

excel - 如何查找一行中包含某个值的所有单元格引用,并将它们显示在一个单元格中?

javascript - 使用 javascript 将 HTML 表格导出到 Excel

c# - VS API 有助于在重构后自动修复代码中断的过程

visual-studio - 更改 Visual Studio "Current regional settings"值

c++ - 用于 Visual Studio 2005 和 Visual Studio 2008 的诺基亚 QT 4

c++ - 算法:最长近似间隔

算法 - 匹配学生考试中心

algorithm - 如何编写允许无溢出自然数递减的算法?