在线等一个关于图的经典问题

baudyer 2004-05-12 11:40:23
问题是这样的,引入多个文件,把相似的文件放在一起。
我已经计算出各个文件的相似度,记文件个数为N,将两两文件的相似度放入N*N的下三角矩阵,相当与无向图的权,现给定一相似度标准,低于此标准的认为相似。
例如A、B、C相似,A、B、D相似,其中C,D并不相似。则将ABC放入一类,ABD放入一类。
请问如何遍历这些分类,将相似的一类放在一起(将相似的一类文件名保存在一个TXT里)
各位帮下忙,最好能有小段范例代码

相似的理解法,现有n个村,之间有距离权,要求将权小于某数的村归为一区域,该区域的各村距离必须两两小于给定的某数,一区域至少要有两个村,一村可被归为多个区域
...全文
31 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
whalefish2001 2004-05-13
  • 打赏
  • 举报
回复

(将相似的一类放在一起的我称做为相似包)

用程序语言描述。
//次程序不可编译执行
for(file1=A;file1<=N-1;file1++)
for(file2=A+1;file2<=N;file2++)
{
if(file1-file2<=标准相似度)//寻找相似度符合标准的。
{ 遍历所有包含file1的相似包,如果这个相似包里包含含有文件file2,则return,否则,比较这个包里的其他文件是否都和file2相似,如果都相似,则把file2插入到此包里。如果有任意一个不符合,则把file1和file2再重新组成一个新包. }

//不好意思,又回到zhouqingyuan(浪帆) 的方法来了。我也想不出再好的方法了。
}

whalefish2001 2004-05-13
  • 打赏
  • 举报
回复
感觉 zhouqingyuan(浪帆) 的方法可行,但是有些不太好。为什么那样归类啊?
这样的话,到最后会有大量重复的。需要大量的排除运算。


iidj 2004-05-13
  • 打赏
  • 举报
回复
我只知道在数据结构中有相关的。你看一看吧。只有帮到此了。我水平也不高。
继续努力。
zhouqingyuan 2004-05-13
  • 打赏
  • 举报
回复
有一个比较笨的方法就是:
先求和A有关的相似类,依次遍历A文件那一行,如果有与A相似的文件K,归为{A,K},接下来有与A相似文件M,若K与M相似,则归为{A,K,M},若否,则归为{A,M},依次遍历下去,可得与A有关的相似类。然后求其他相似类,可不用考虑A。

利用这种方法是能够容易求出的,虽然代价可能大了一点。
yuwenzhou 2004-05-13
  • 打赏
  • 举报
回复
up
庄鱼 2004-05-13
  • 打赏
  • 举报
回复
使用zhouqingyuan(浪帆)的方法,不会出现相同集合的,唯一需要关心的是效率问题
countryboy 2004-05-13
  • 打赏
  • 举报
回复
up
baudyer 2004-05-12
  • 打赏
  • 举报
回复
请知道的提示一下也好,我困扰好多天了

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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