首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算圈复杂度

计算圈复杂度
EN

Stack Overflow用户
提问于 2012-02-01 14:56:27
回答 4查看 59.6K关注 0票数 23

我正处于学习圈复杂性(CC)的阶段。练习时,我正在计算两个例子的圈复杂度,并想确认我的答案是否正确。

参考维基百科,CC是由M = E − N + 2P给出的,其中:

  • E=图的边数
  • N=图的节点数
  • P=连通分量数

请帮帮忙。

这里E= 8,N=9,P= 1,因此M=8-9+ (2x1) = 1。

示例2:

这里E= 11,N= 10,P= 1,因此M=10-11+ (2x1) = 1。

因此,对于这两个例子,CC是1。请告诉我,我的计算是否正确。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-01 15:14:05

您需要更加小心地将值正确地插入到公式中。

在示例1中,您说

这里,E= 8,N=9,P=1

但实际上,情况正好相反:9个边(=E),8个节点(=N),所以你得到了一个CC = 3。

在示例2中,您拥有正确的值: E=11、N=10、P=1,但是您在公式中按错误的顺序插入它们;它实际上应该是11 - 10 + (2x1) = 3

快捷方式:,如果您有一张图的图片,您可以非常容易地确定圈复杂度。只需计算背景按边缘划分的区域数即可。在第一个例子中,你有两个内部区域(边缘边缘)和一个周边区域,给出一个CC值为3。第二个例子也是如此。(显然,这种方法要求边不相交。)

票数 23
EN

Stack Overflow用户

发布于 2012-08-04 10:19:36

另外,如果这有帮助,那么它就是条件语句( if,while,for)的数量+1。因此,在上面的示例中,有两个条件语句。因此,在本例中,圆圈复杂度为3。

票数 8
EN

Stack Overflow用户

发布于 2016-12-19 11:45:59

只需计算封闭区域的数量并将1添加到其中。

在上面的例子中,封闭区域数= 2,所以CC = 2+1 =3

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9097987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档