求一个思路如何快速比较多个规则,除了挨个遍历

lywin8810 2017-10-30 03:39:48

c#算法求一个思路,现在我有n个曲线图数据(360个点),然后还有几百条规则,规则的内容是在360个点中某个点满足某个条件或者到了这360个点钟的某个位置就返回。我现在的做法是用两个forearch语句分别遍历,也就是遍历的次数是规则数量乘以n个曲线图数量,但是现在的问题是规则列表中的规则之间有一些是互相重复的,比如有的规则是某个点大于3就返回,有的规则是大于2就返回所以他大于3实际上这样就浪费了计算资源。所以现在希望能有一个算法来降低计算量,现在的计算时间太长了,感谢大家!
...全文
182 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2017-10-30
  • 打赏
  • 举报
回复
他需要的是人工管理(除非你有AI能自动管理他们),因为你说多个规则重复,那是你根据现有规则整理的,但是这是先验的,这是你觉着他们重复了,但是你又不能控制人家扩展规则的方向,也不能控制人家扩展的内容,所以你只能人工管理他们 ps:这也是老问题了,以前存储过程曾经流行过一段时间,甚至你个项目里所有的功能都是存储过程,想法是存储过程随时可以改,随时可以加。但是维护过一段时间后,这种项目就会逐渐失控,因为一个库里面有上w个存储过程,谁也不知道这些存储过程到底用在什么地方,那里用了,哪里没用,谁也不敢改动这些存储过程(谁知道你改了一句话,到底影响那些地方),大家只好copy一份然后重新写个新的,why,就是因为这些东西没有管理,既然没有管理,时间长了也就自然无序化了
wanghui0380 2017-10-30
  • 打赏
  • 举报
回复
没有办法,既然你们已经涉及到规则了,那么有应该有扩展规则的想法 既然有扩展规则的想法,那么就应该允许别人自由扩展规则。 如果你想管理这些规则,你应该另外单独建立一些控制,比如停用某些规则,合并某些规则,级联某些规则 ps:你可以去看看spatk,storm这类东西对技术流的管理。也可以去看看spring cloud对微服务的管理,一旦你开始允许别人扩展了,那么你就应该对其提供管理过程,你不能让他们无序扩展
晨易夕 2017-10-30
  • 打赏
  • 举报
回复
你可能需要先对规则排一个优先级。
xuzuning 2017-10-30
  • 打赏
  • 举报
回复
你的规则是如何表示的?

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧