给定绘制了所有对角线的规则N形,对角线会形成多少个区域?
例如,正三角形的正整数为1,正方形的正整数为4,五边形的正整数为11,六边形的正整数为24。
尽管有定义明确的例程可以计算绘制了所有对角线的正则n边形中的区域数,但它们非常麻烦。我认为采用图像处理方法可能会很有趣:如果我们绘制带有对角线的n边形,是否有可能从绘制的图像中计算出区域(更准确地说,是从图像的光栅化和二值化表示为数组)?
以下生成并处理多边形的实际图像,并根据光栅化图像确定区域数。
这就是所谓的工程师解决方案。它可以完成工作,但只能在某些有限条件下完成。(而且很慢:上面的代码花了4.24 s来运行。)上面的例程可以正常工作,直到并包括一个14-Complete图,如下所示。我发现这令人惊讶,因为即使以1200 x 1200像素显示图像,也很难看到952个区域。
实现@mob注释中Woflram Mathworld链接上给出的公式。
为了清楚起见,不做广告:
=A1*(A1^3-6*A1^2+23*A1-42)/24+1