matlab 以坐标画圆
随机生成一组坐标,然后以此坐标为圆心,再一另一组随机数做为半径画圆,查看圆之间有没有相互覆盖,并显示出来,最好能生成用户邻接图然后在用户邻接图中找完全子图,使得完全子图的...
随机生成一组坐标,然后以此坐标为圆心,再一另一组随机数做为半径画圆,查看圆之间有没有相互覆盖,并显示出来,最好能生成用户邻接图然后在用户邻接图中找完全子图,使得完全子图的数目尽量少。将属于不同子图的用户标注,用颜色加以区分。
展开
2个回答
展开全部
n=5;%节点个数
x=rand(n,1);%随机x坐标
y=rand(n,1);%随机y坐标
r=rand(n,1)/4;%随机半径
t=0:360;
figure(1);
clf;
hold on;
for ii=1:n
plot(x(ii),y(ii),'r.');%画出随机5点
plot(x(ii)+r(ii)*cosd(t),y(ii)+r(ii)*sind(t));%画圆
text(x(ii),y(ii),num2str(ii));%标节点号
end
a=false(n);
for ii=1:n
a(ii,:)=sqrt((x-x(ii)).^2+(y-y(ii)).^2)<=r+r(ii);%利用距离判断生成邻接矩阵
end
a=a-eye(n); %令对角元素为0
gplot(a,[x,y],'k');%画邻接关系图,这里使用了原来的随机x,y坐标
axis equal;
hold off;
这是其中一次随机的结果,找子图等操作留给你自己完成
更多追问追答
追问
完全子图是不是就是最大独立集啊或者极大团????
追答
先去看完全图的定义
完全图是所有节点都亮亮相连的图n个节点的完全图有n(n-1)/2条无向边
完全子图,应该就是从图中找出的子图要满足完全图
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询