任意线段集生成多边形_正N边型的完全图被分割成几个多边形

正N边型的完全图被分割成几个多边形?

这篇文章被分为四个部分

一、知识铺垫

二、在不允许对角线重合的情况下,N边形可以分为多少个多边形

三、正N边形可以分为多少个图形

四、附录(在附录进行总结)


一、知识铺垫

1.组合数公式(Combinatorial Number Formual)

这个公式用于示意在

个元素中,取
个元素,共有多少种取法。

2.欧拉示性数公式(Euler's Characteristic Formual)

b039490a084cc6ad1d3e7d531550ad0b.png
柯西的证明

其中

是顶点的意思,
是面的意思,
是棱(边)的意思。

这个公式表示了三维几何体内各个元素的关系,亦表示了平面内各个元素的关系,这是由于你可以把一个平面图看作底面为平面的三维几何体的俯视图。

在平面内,
的数量要加上图形外的一个面,
会被交点分割,如下图

18bee719c03f8b5802456302d2b73ece.png
欧拉示性数公式

二、在不允许三个及以上的对角线相交于一点的情况下,N边形可以分为多少个多边形

这个问题很类似于分圆问题,感兴趣的小伙伴可以去看一看。

我们把这个问题简化一下,就引出以下两个问题:

1.N边形(非正)的完全图有多少条线(不包括边)?

2.N边形(非正)的完全图有多少个点(不包括顶点)?

3.第1问中所得得线被第2问中所得得点分为几段?

解决前两个问题还是很简单的。

两点连成一线,我们在

个点中选取
个点连成一条线,即每个线都可以用一个二元数表示,在
个元素中选取
个元素任意组合,那么有

两线交于一点,但是并不是所有的线都交与N边形内,如下图

8eb0b8dfe5a17dfce755546c012c378c.png
不应该的点L

我们可以让每一个交点都对应一个四元数,即一组直线(两个直线)的每个端点为一元,四元即可对应一个交点,即在

个元素选取
个元素任意组合,我们就有了

Then, 来求边的数量。

每增加一个交点等价于增加两条边,每个交点由已知的直线构成,然后这两个直线又被分成四小份。

For Instance,

条线(线段)交于
点,会被分割成
,也就是
小段。

ae354090fca1ab748b741c90d06a1185.png
3线2点 图片来源于 分圆问题

条线交于
点,会被分割成
,也就是
小段

6fdab857639c9989e7020252e85390f9.png
4线3点 图片来源于 分圆问题

在我们的图像中,

条线交于
个点,那么有

根据欧拉示性数公式,有

展开一下,得到

由于我们只关注多边形以内的部分,我们在最后的结果上减去

,那么N边形(非正)完全图就被分为了
个多边形。

三、正N边形可以分为多少个图形

由于正奇边形不会有三个及以上的连线交于同一点,如此,正奇边形的完全图便完解了。

正偶边形呢?

1e0f0b9e87ceb9a64e0cae4fcf18691e.png
正六边形完全图

Generally Speaking, 正偶边形都会有若干条线交与同一点。

-----------------------------------------------------------------------------------------------

(这可真不是一个简易的解法 >_<)

-----------------------------------------------------------------------------------------------

Now, 思考另一个问题,如果

条直线交于
点,随后使其均不交于
点,会多出来多少个面?

答案是

,如下图

414dd30fa6a0d191988d1e553a6ccc9a.png
同时交于1点的4条直线段

465d3b678d2f38156898aeeda22fc948.png
均不交于1点的4条直线段

That's So Easy, 但又引出一个问题:正偶边形的特殊交点数目各几何?

我们现在把由大于等于

条线的同一交点叫做特殊交点,并将其表示为
,其中
为交点数量,该类交点由
条直线同时相交构成。

接着引出以下函数

通过统计得到:

正四边形

正六边形

正八边形

正十边形

正十二边形

正十四边形

现在令

我们自然而然地对

展开讨论。

很明显,想要知道

,有必要从简单问题入手,可以先讨论

为了讨论正偶边形,我们引入一个函数

是个判断类型的函数,可以给出它的简易计算式

对于正偶边形,均有

例如正十边形与正十四边形,他们有

,不过特殊的是,他们除数为不为
的偶数。

对于这类仅有(除数为偶数)

的正偶边形的完全图仅有过中心的直线上的交点,又分为两种——

697ff053c1d6aa9be480ea2bef08ce78.png
正十四边形完全图局部

我们对

进行分析——

条直线均不交于
点时,共有
个交点,比起
条直线同时交于
点,多了
个交点。

那么对于仅有(除数为偶数)

的这类正偶边形,有

现在令

7dc3a4bd51d07546f31d88a279efb1da.png
参考数据

和图片中参考数据带入得到

的数值仅为假设数值,作为逆推关系式的工具,并不为真实数值)

我们可以猜测

的数值与
的数值有关,就令

的数值与其对应
的数值分别带入得到一个方程组——

解得

最终发现

于是可以得出与

的积项为

用同样的方法便可以得出与

、与
的积项等。

值得一提的是,在下面的文章中,也提到了

时,内心角平分线上的交点个数一般等于过中心点的对角线上的交点个数,原因固然与此有关。

https://wenku.baidu.com/view/978b3eb1f111f18583d05abd.html

In Addition, 如果你对统计情有独钟的话,我认为上面的文章会帮助到你。

Luckily, 我从OEIS得到了一个公式来计算以计算正N边形构成点数目的计算公式:

由于公式太长,为了能让手机用户看到,我把他分成了七行。

可以用同样的方法得到

我有一个对这个命题十分美妙的证明,这里空白太小,写不下。[手动滑稽]

Okay, 根据欧拉示性数公式,我们最终得出

那么 ,正N边形完全图就被分为了

个多边形。

Interestingly, 即使在正偶边形中,总交点的个数也并不随着N的增大而严格单调增。

For Example, 正二十八边形内交点个数为

个,而正三十边形内交点个数为
个。

我最后准备了一片Python代码来计算它,如下

#  Creating By KebRainy

def delta(m,n):
    if n % m == 0:
        return 1
    return 0

def vertex(n):
    return (n**4 - 6*n**3 + 11*n**2 + 18*n)/24 + (-5*n**3 + 45*n**2 - 70*n + 24)*delta(2,n)/24 - (3*n/2)*delta(4,n) + (-45*n**2 + 262*n)*delta(6,n)/6 + 42*n*delta(12,n) + 60*n*delta(18,n) + 35*n*delta(24,n) - 38*n*delta(30,n) - 82*n*delta(42,n) - 330*n*delta(60,n) - 144*n*delta(84,n) - 96*n*delta(90,n) - 144*n*delta(120,n) - 96*n*delta(210,n)

def face(n):
    return (n**4 - 6*n**3 + 23*n**2 - 42*n + 48)/24 + delta(2, n)*(-5*n**3 + 42*n**2 - 40*n - 48)/48 - delta(4, n)*(3*n/4) + delta(6, n)*(-53*n**2 + 310*n)/12 + delta(12, n)*(49*n/2) + delta(18, n)*(32*n) + delta(24, n)*19*n - delta(30, n)*36*n - delta(42, n)*50*n - delta(60, n)*190*n - delta(84, n)*78*n - delta(90, n)*48*n - delta(120, n)*78*n - delta(210, n)*48*n

def edge(n):
    return (2*n**4 - 12*n**3 + 34*n**2 - 24*n)/24 + delta(2, n)*(-5*n**3 + 44*n**2 - 60*n)/16 - delta(4, n)*(9*n/4) + delta(6, n)*(-143*n**2 + 834*n)/12 + delta(12, n)*(133*n/2) + delta(18, n)*(92*n) + delta(24, n)*54*n - delta(30, n)*74*n - delta(42, n)*132*n - delta(60, n)*520*n - delta(84, n)*222*n - delta(90, n)*146*n - delta(120, n)*222*n - delta(210, n)*146*n

n = int(input("请输入要解析的正N边形: N="))
print("正 %d 边形完全图点统计为: %d " % (n, vertex(n)))
print("正 %d 边形完全图面统计为: %d " % (n, face(n)))
print("正 %d 边形完全图棱统计为: %d " % (n, edge(n))) 

四、附录


这个问题来源于:

正n边型的完全图被分割成几个多边形?​www.zhihu.com

参考资料:

http://www.bilibili.com/video/av19849697

http://oeis.org/A007678

http://oeis.org/A006561

http://oeis.org/A135565

https://wenku.baidu.com/view/978b3eb1f111f18583d05abd.html

At Last, 喜欢小雨可白的小伙伴可以点一下关注,よろしくお願い!

b5f8b12a0f25f9918377579b26c630d0.png
KebRainy
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值