13*0217 发表于 2019-9-1 23:19:57

遇到重复的数据,该如何处理?


我生成了一段重复的“整数数列”,具有某种规律:数列由非重复和重复的子数列顺序构成,
比如:1,2,3,4,10,11,12,13,13,13,14,14,14,160,160,160,13,13,13,14,14,14,160,160,160,10,11,12,13,13,13,...。
非重复部分元素从小到大排列,重复部分周期性重复,如果某些数连续出现,那么它们的频率相同,例如:13,14,160

现做出调整:
如果某个元素“13”连续出现,那么希望重复元素“13”形成类似序列:13,14,15,16,113,114,115,116,...,X13,X14,X15,X16,...
同时得保证与它数值相差为1的元素(如果存在)在加上某个整数后形成同样的序列:17,18,19,20,117,118,119,120...,其余的周期性元素形成
类似等差序列: 10,110,210,310,...。请问要灵活的应对上述条件,且元素在整数集范围内,程序该如何处理效率高?

Ayala 发表于 2019-9-2 20:01:56

本帖最后由 Ayala 于 2019-9-3 18:59 编辑

涉及有作用域线性回归 大体想了下
;a 为等差
;b 为基数
;p 为在m 与n之间y的重复频率
y = a * ((x - m) \ p ) + b ;
x >= m && x < n      ;

实例
y = {1,2,3,4,10,11,12,13,13,13,14,14,14,160,160,160,13,13,13,14,14,14,160,160,160,10,11,12,13,13,13}

y = 1 * ((x - 0) \ 1 ) + 1 ; m = 0, n = 3
y = 1 * ((x - 4) \ 1 ) + 10 ; m = 4, n = 6
y = 1 * ((x - 7) \ 3 ) + 13 ; m = 7, n = 12

...

13*0217 发表于 2019-9-4 10:51:02

Ayala 发表于 2019-9-2 20:01
涉及有作用域线性回归 大体想了下
;a 为等差
;b 为基数


抱歉最近时间紧一直没回复,我用了个直接的办法:非重复部分直接从数据源获取,重复部分根据规律循环构建。你给出好算法没时间尝试,后面空闲了再来补上实现。
页: [1]
查看完整版本: 遇到重复的数据,该如何处理?