找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 1831|回复: 2

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

[复制链接]
发表于 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,...。请问要灵活的应对上述条件,且元素在整数集范围内,程序该如何处理效率高?
回复

使用道具 举报

发表于 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

...

回复 赞! 靠!

使用道具 举报

 楼主| 发表于 2019-9-4 10:51:02 | 显示全部楼层
Ayala 发表于 2019-9-2 20:01
涉及有作用域线性回归 大体想了下
;a 为等差
;b 为基数

抱歉最近时间紧一直没回复,我用了个直接的办法:非重复部分直接从数据源获取,重复部分根据规律循环构建。你给出好算法没时间尝试,后面空闲了再来补上实现。
回复 赞! 靠!

使用道具 举报

本版积分规则

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-11-21 20:28 , Processed in 0.033618 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表