任务
您将得到一个正整数,并且必须输出具有这么多节点的“ 自补图 ”。如果您不知道什么是自助图,那么维基百科的文章将无济于事,因此以下是两种解释,一种是技术性的解释,另一种是非技术性的解释。
非技术
图是一组由线连接的节点。每对点可以通过一条线连接或不连接。图的“补码”是获取图并连接所有未连接的节点并断开所有已连接的节点的结果。
自补图是可以将补码重新排列为原始形状的图。下面是一个自补图的示例以及如何进行演示。
这是一个有5个节点的图形:
我们将用红色虚线突出显示可以进行连接的所有地方:
现在,我们将通过交换红色和黑色边缘来找到图形的补码:
这看起来不像原始图,但是如果我们像这样移动节点(每个步骤交换两个节点):
我们得到原始图!该图及其补图是同一图
技术
自补图是与其补图同构的图。
技术指标
通过最适合您的方法,您将收到一个正整数。然后,您将以您认为合适的任何方法输出图形,包括但不限于邻接矩阵表单,邻接列表表单,当然还有图片!输出的图必须是其自己的补码,并且具有与整数输入一样多的节点。如果不存在这样的图形,则必须输出一个伪造的值。
这是代码高尔夫球,您应努力减少字节数。
测试用例
以下是几个n的可能输出的图片
4
5
9
GraphData@{"SelfComplementary",{#,1}}&
,我相信只是n
从Wolfram的数据库中加载一些低级的示例,因此这不适用于任意大的输入。