一个比较难的算法

我是小数位 2016-03-04 07:40:05
具体如下!假如我现在有一个对象集合中有100个对象!每个对象有50个数字类型的属性!现在假如我想按5个一组找出对象!需要符合如下条件!找出的对象集合中!1.必须任何两个对象的同一个属性值相减不会超过某一个值!2.最优模式~即属性差最接近的放在一起~举个简单的例子!有如下三个对象~
ˇ
...全文
263 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
tanta 2016-03-09
  • 打赏
  • 举报
回复
需求还是说的不是很明白。 是要所有属性比对吗? 我觉得你这是一个笛卡尔乘积的问题。 甚至不用这么复杂,先进行数据归集,比如说要求所有属性和的距离,然后排序,最后算距离范围问题。 计算量应该不是很大。 如果是多个属性单独算的话,先计算单独的,得到n个数据集,然后求交集即可。
software_artisan 2016-03-06
  • 打赏
  • 举报
回复
傅里叶变换!把你的属性值转成波形的话,你的需求就变成了对波形相似的进行分组,至于几个分一组,都无关紧要了。
puler 2016-03-04
  • 打赏
  • 举报
回复
哈!异构计算
xuzuning 2016-03-04
  • 打赏
  • 举报
回复
说错了,是 List<T> FindAll(Predicate<T> match)
xuzuning 2016-03-04
  • 打赏
  • 举报
回复
重载运算符,用 List<T>.Finds 很容易就做到了
Poopaye 2016-03-04
  • 打赏
  • 举报
回复
引用 4 楼 CXJ0062008 的回复:
引用 1 楼 shingoscar 的回复:
太监了
有你说的那么简单,我也不会在这问了,我每个对像的属性有1000多个,对象集合最多的时候有200个,假如8个一组,你得算多少次
我是小数位 2016-03-04
  • 打赏
  • 举报
回复
引用 1 楼 shingoscar 的回复:
太监了
有你说的那么简单,我也不会在这问了,我每个对像的属性有1000多个,对象集合最多的时候有200个,假如8个一组,你得算多少次
我是小数位 2016-03-04
  • 打赏
  • 举报
回复
具体如下!假如我现在有一个对象集合中有100个对象!每个对象有50个数字类型的属性!现在假如我想按5个一组找出对象!需要符合如下条件!找出的对象集合中!1.必须任何两个对象的同一个属性值相减不会超过某一个值!2.最优模式~即属性差最接近的放在一起~举个简单的例子!有如下4个对象~ ˇ 对像一: 属性1=1.3 属性2=3.2 属性3=4.5 属性4=2.6 对像二: 属性1=1.6 属性2=3.2 属性3=4.9 属性4=1.6 对像三: 属性1=1.5 属性2=3.2 属性3=4.9 属性4=1.6 对象四: 属性1=1.6 属性2=3.6 属性3=4.5 属性4=1.2 如果按2个一组,差值在1范围内: 则只能选一组:对像二和对像三 剩下的一和四经四属性不符合要求
七步777 2016-03-04
  • 打赏
  • 举报
回复
在for循环眼里,5组 100 1000000组是一样的。 取出数据比较 排序。 真正难在懒得动手
Poopaye 2016-03-04
  • 打赏
  • 举报
回复
太监了

110,538

社区成员

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

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

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