算法求解: 统计曾经出现的对象总数

算法求解: 统计曾经出现的对象总数

工作中遇到个问题: 统计对象总数

某个任务周期产生的不定数量的消息,
格式 [time, ObjID, ...] 其中time是记录时间 顺序递增; ObjID是对象标识 值由1-255循环
经过多个周期 可能得到的实际消息列表 如下:
//第一周期
t1, 1
t1, 2 注意: 两个t1 时间不一定完全相等
//第二周期
t2, 1
t2, 2
t2, 3
//第三周期
t3, 1
t3, 3 //释放了 2
.
//第N周期
tn, x (取1-255中任意值)
tn, y
...
tn, p 都同上
//第M周期
tm, x
tm, 255
....
=================================
下面的周期如果有新的对象 ObjID又从(1-255)中最小free的ID 开始递增标识
.....



如果对象ID 不重复 我原先的思路是使用dict
对每周期的ObjID dict[ObjID] = 1
最后统计 len(dict) 就是对象个数

但现在ObjID重复使用 一时找不到划分的方法 请教大家
在中国Linux论坛也开了贴 希望大家帮忙讨论
http://www.linuxforum.net/forum/ ... vc=1&PHPSESSID=
没看太懂。时间与objectID好象没什么关系呀。就是计数吗?那统计一下行数都行了。
大概还是我没说清
需要强调的几点:
  a. 周期列举当前对象 对象用ObjID标识  对象个数不定                        如:1, 2, 3
  b. 周期间可能会生成新的Obj 也可能消失旧的 下周期体现变化                  如: 1, 3, 4, 5   
                                                                                         经过n个周期后: 1, 3, 5, 139, 255
  c.  新ObjID 在(1-255)间递增取值,到255后,再取(1-255) 中的最小freeNum           : 1, 2(新), 3, 4(新), 5   



好在这个问题现在基本解决了

基于分开周期,与上周期比较,判断新对象个数 累计
基本正确了