我正处于学习圈复杂性(CC)的阶段。练习时,我正在计算两个例子的圈复杂度,并想确认我的答案是否正确。
参考维基百科,CC是由M = E − N + 2P给出的,其中:
请帮帮忙。

这里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。请告诉我,我的计算是否正确。
发布于 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。第二个例子也是如此。(显然,这种方法要求边不相交。)
发布于 2012-08-04 10:19:36
另外,如果这有帮助,那么它就是条件语句( if,while,for)的数量+1。因此,在上面的示例中,有两个条件语句。因此,在本例中,圆圈复杂度为3。
发布于 2016-12-19 11:45:59
只需计算封闭区域的数量并将1添加到其中。
在上面的例子中,封闭区域数= 2,所以CC = 2+1 =3
https://stackoverflow.com/questions/9097987
复制相似问题