Questions tagged «topology»

对于与拓扑相关的挑战,对开放集进行数学研究。

3
克莱因地形学
克莱因(Klein)是我设计的2D语言,可以嵌入12种不同的拓扑表面。通过更改命令行参数,可以在不同的表面上运行Klein程序。 拓扑确定指令指针离开程序边缘时的位置。当移出边缘时,ip将跳至具有匹配颜色的边缘,并保持其相对于箭头的位置,即指针将保留其与箭头的距离。 例如topology 000,大多数2D语言使用的topology ,当离开边缘时,会使指令指针环绕到另一侧。 任务 任务非常简单,编写一个Klein程序,该程序在运行时将输出其运行所在的拓扑。各个数字可以用空格分隔。(例如000和0 0 0都是允许的输出)。您可以选择使用或忽略-A命令行标志,如果使用它不会花费您的字节数。 这是代码高尔夫球,所以最短的答案将是赢家。 这是一个在线测试驱动程序,可用于一次测试所有拓扑。要以整数模式运行,请删除-A。

8
ASCII拓扑pt 1:我可以指望您吗?
我有一个严重的问题。我有一些文本文件,其中保存着我非常重要的数字-所有重要的数字!还有二三。 这些数字是如此重要,以至于我无法将它们委托给那些新奇的十进制或二进制数字系统。我将每个数字保持一元编码,如下所示: +--+ | | +---+ +----+ | | | | | +---+ +-------+ ~/two.txt 简单可靠:数字2的两个ASCII循环。不幸的是,随着时间的流逝,这些事情会变得一团糟,现在我很难确定每个文件中有多少个循环。以下是我手工制作的一些示例: 一: +---+ | | +--+ | | | +--+ | | | | | | | +--+ +--+ | | +---------+ 三: +---------+ | +-----+ | | | +-+ | | | | | …

8
验证拓扑
挑战 给定T有限集的子集S={1,2,3,...,n},确定是否T为拓扑。 说明 某个集合的幂 P(S)集S是的所有子集的集合S。一些例子: S = {}, P(S) = {{}} S = {1}, P(S) = {{}, {1}} S = {1,2}, P(S) = {{}, {1}, {2}, {1,2}} S = {1,2,3}, P(S) = {{}, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}} 甲拓扑 T上的集S的一个子集P(S)与以下属性: {}在T和S在T 如果A和B在,T那么他们的交集A ∩ B 如果A和B在,T那么他们的联合也是A ∪ B* *这个定义不是很正确,但是对于有限集却是正确的,对于这个挑战的目的就足够了。实际的公理也将允许无限的并集,但这与有限的情况无关。 …

1
分隔我的整数
介绍 在称为拓扑的数学领域中,有一些东西称为分离公理。直观地,您有的集合X和子集的集合X,我们可以将其视为属性。如果一个人可以X根据其属性来区分所有项目,则该系统可以很好地分开。分离公理正式化了这个想法。在此挑战中,您的任务是检查给定的三个分离公理X和属性列表。 输入项 您的输入是一个integer n ≥ 2,以及一个整数列表的列表T。中的整数T来自X = [0, 1, ..., n-1]。中的列表T可能为空且未排序,但不会包含重复项。 输出量 您的输出是由三个分离公理确定的四个字符串之一,每个公理都强于最后一个。还有其他公理,但是为了简单起见,我们坚持使用这些公理。 假设对于in 中的所有unique x和,存在一个列表,其中恰好包含其中一个。然后和满足公理T0。yXTXT 假设对于所有in x和yin X,都有两个列表T,其中一个包含x但不包含y,另一个包含y但不包含x。然后X和T满足公理T1。 假设上面的两个列表也不包含公共元素。然后X和T满足公理T2。 你的输出中的一个T2,T1,T0或TS,这取决于上述条件成立(TS手段它们都不做)。请注意,T2比T1强,T1比T0强,并且您应始终输出尽可能强的公理。 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 2 [] -> TS 2 [[],[1]] -> T0 2 [[0],[1]] -> T2 3 [[0],[0,1,2],[1,2]] -> TS 3 [[],[0],[0,1],[2]] -> T0 3 [[0],[0,1],[2,1],[0,1,2]] -> T0 3 …

8
在圆环上循环
挑战 这一挑战将让你写一个程序,它在两个整数n和m输出的数量不相交的环n通过m由开始做圆环(0,0),只有采取措施,并在右边。您可以将环面视为顶部和底部以及侧面均具有环绕效果的网格。 这是代码高尔夫球,因此最少的字节获胜。 例 例如,如果输入为n=m=5,则一个有效的步行路线为 (0,0) -> (0,1) -> (0,2) -> (1,2) -> (2,2) -> (2,3) -> (2,4) -> (2,0) -> (3,0) -> (4,0) -> (4,1) -> (4,2) -> (4,3) -> (0,3) -> (1,3) -> (1,4) -> (1,0) -> (1,1) -> (2,1) -> (3,1) -> (3,2) -> (3,3) -> (3,4) …

11
生成Steenrod代数的基础元素
Steenrod代数是在代数拓扑中出现的重要代数。Steenrod代数由称为“ Steenrod平方”的算子生成,每个正整数i存在一个。Steenrod代数在平方运算中有一个由“可允许的单项式”组成的基础。建立这个基础是我们的目标。 正整数的序列被称为受理如果每个整数是至少下一个的两倍。因此,例如[7,2,1]是受理,因为7 ≥ 2 * 27≥2∗27 \geq 2*2和2 ≥ 2 * 12≥2∗1个2 \geq 2*1。另一方面,[3,2]由于3 &lt; 2 * 23&lt;2∗23 < 2*2,因此是不可接受的。(在拓扑中,我们将为序列写小号q7小号q2小号q1个小号q7小号q2小号q1个\mathrm{Sq}^7 \mathrm{Sq}^2\mathrm{Sq}^1[7,2,1])。 序列的程度是其条目的总数。因此,例如,度数[7,2,1]为7+2+1=107+2+1=107 + 2 + 1 = 10。所述过量的容许序列的是第一个元素减去总的剩余元素,所以[7,2,1]有过量的7−2−1=47−2−1=47 - 2 - 1 = 4。 任务 编写一个程序,该程序接受一对正整数,(d,e)并输出所有d小于或等于的度和超出的所有允许序列的集合e。输出是一个集合,因此允许序列的顺序无关紧要。 例子: Input: 3,1 Output: [[2,1]] 在这里,我们正在寻找总数为3的可允许序列。有两个选项,[3]和[2,1]。([1,1,1]且[1,2]总和为3,但不可接受)。过量的[3]是3和过量的[2,1]是2−1=12−1=12-1 = 1。因此,用过量的唯一序列≤1≤1\leq1是[2,1]。 Input: 6, 6 Output: [[6], …

14
多面体的欧拉-庞加莱特征
给定多面体的表面的三角剖分p,请计算其Euler-Poincaré-Characteristic χ(p) = V-E+F,其中V的数量是顶点E的数量,边F的数量和面的数量。 细节 顶点被枚举为1,2,...,V。三角剖分以列表形式给出,其中每个条目都是一个面的顶点的列表,以顺时针或逆时针顺序给出。 尽管有名称,但三角剖分还可以包含具有3个以上边的面。可以假定这些面是简单连接的,这意味着可以使用一个闭合的非自相交环路绘制每个面的边界。 例子 四面体:这个四面体是凸面的,具有凸面χ = 2。可能的三角剖分是 [[1,2,3], [1,3,4], [1,2,4], [2,3,4]] 立方体:这个立方体是凸的并且具有χ = 2。可能的三角剖分是 [[1,2,3,4], [1,4,8,5], [1,2,6,5], [2,3,7,6], [4,3,7,8], [5,6,7,8]] 甜甜圈:这种甜甜圈/环形形状具有χ = 0。可能的三角剖分是 [[1,2,5,4], [2,5,6,3], [1,3,6,4], [1,2,7,9], [2,3,8,7], [1,9,8,3], [4,9,8,6], [4,5,7,9], [5,7,8,6]] 双甜甜圈:这种双甜甜圈应该有χ = -2。它是通过使用上面两个甜甜圈的副本[1,2,5,4]并将第一个甜甜圈的侧面[1,3,6,4]与第二个甜甜圈的侧面标识来构造的。 [[2,5,6,3], [1,3,6,4], [1,2,7,9], [2,3,8,7], [1,9,8,3], [4,9,8,6], [4,5,7,9], [5,7,8,6], [1,10,11,4], [10,11,5,2], [1,10,12,14], …

3
标记基于堆栈的语言
我一直在研究另一种称为Stackgoat的基于堆栈的高尔夫语言。在这个挑战中,您将为Stackgoat(或实际上是任何通用的基于堆栈的语言)编写Tokenizer。 例子 "PPCG"23+ ["PPCG", '23', '+'] 'a "bc" + ['"a"', '"bc"', '+'] 12 34+-"abc\"de'fg\\" ['12', '34', '+', '-', '"abc\"de'fg\\"'] "foo ['"foo"'] (empty input) [] ' "" ['" "', '""'] 规格 您需要处理的三种类型是: 弦乐,什么内"" 数字,任何数字序列 运算符,除空格外的任何其他单个字符 除非将其留在字符串中或将两个数字分隔开,否则实际上将忽略空格。 字符串/字符规范: 字符串以分隔",当\遇到时,下一个字符应转义。 字符前面加a ',后面的字符'应转换为字符串文字。'a-&gt;"a" ' 后面总会有一个角色 右引号应自动插入 规则: 没有形式eval允许 输入输出: 可以通过STDIN,函数参数或您的语言等效输入。 输出应为数组或您的语言最接近的等效数组。
15 code-golf  parsing  code-golf  hexagonal-grid  code-golf  string  code-golf  string  code-golf  combinatorics  code-golf  ascii-art  code-golf  string  game  counting  code-golf  arithmetic  complex-numbers  code-golf  string  code-golf  decision-problem  hexagonal-grid  code-golf  string  sequence  code-golf  number  arithmetic  code-golf  ascii-art  code-golf  ascii-art  code-golf  string  arithmetic  code-golf  number  simulation  code-golf  number  arithmetic  code-golf  string  sequence  unicode  code-golf  string  ascii-art  balanced-string  code-golf  number  clock  code-golf  ascii-art  number  code-golf  math  number  sequence  code-golf  string  ascii-art  balanced-string  code-golf  math  string  popularity-contest  graphical-output  image-processing  code-golf  string  permutations  code-golf  string  code-golf  random  code-golf  string  cryptography  palindrome  code-golf  chess  code-golf  math  array-manipulation  topology  code-golf  math  sequence  code-golf  keyboard  classification  code-golf  string  sequence  code-golf  natural-language  code-golf  math  number  sequence  sorting  code-golf  sequence  combinatorics  grid  tic-tac-toe  code-golf  geometry  code-golf  number  restricted-source  new-years  expression-building 

2
那是谁的多边形?
表示拓扑表面的一种方便且有用的方法是使用基本多边形。多边形的每一侧都与另一侧匹配,并且可以是平行的或反平行的。例如,这是圆环的基本多边形: 为了弄清楚为什么这是一个圆环,我们可以想象我们的多边形是一张纸。为了制作适当的表面,我们希望弯曲纸张,以使相应的边缘与箭头的方向相同。对于我们的圆环示例,我们可以从将纸卷成圆柱体开始,以便连接两个蓝色边缘(标记为b)。现在,我们将试管弯曲并将其两个红色边缘(标记为a)彼此连接。我们应该有一个甜甜圈形状,也称为圆环形状。 这可能会有点棘手。如果您尝试对以下多边形进行相同处理,则其中一个边沿相反的方向移动: 您可能会遇到麻烦。这是因为此多边形代表的Klein瓶子无法嵌入三个维度。这是维基百科的图表,显示了如何将这个多边形折叠成Klein瓶子: 您可能已经猜到了,这里的任务是获取基本多边形并确定其为哪个表面。对于四个面的多边形(您将需要处理的唯一曲面),有4个不同的曲面。 他们是 圆环面 克莱因瓶 球 投射平面 现在不是 图像处理,因此我不希望您将图像作为输入,而是使用方便的符号来表示基本多边形。您可能已经注意到,在上面的两个示例中,我用相同的字母(a或b)命名了相应的边,并且给扭曲的边附加了一个标记以显示其扭曲。如果我们从上边缘开始并沿顺时针方向写下每个边缘的标签,我们将得到一个表示每个基本多边形的符号。 例如,提供的Torus将变为abab,而Klein瓶将变为ab - ab。对于我们的挑战,我们将使其变得更加简单,而不是用负号标记扭曲的边缘,而改为将那些字母大写。 任务 给定一个字符串,确定它是否代表基本多边形,并输出一个与其正确表面相对应的值。您无需精确命名表面,只需要4个输出不同的值即可,每个值代表4个表面之一,第5个值代表不正确的输入。所有基本案例都包含在“ 简单测试”中部分介绍,每辆车将同构或无效。 规则 侧面将不会总是用a和b标记,但是它们总是会用字母标记。 有效输入将包含4个字母,其中两个是一种类型,而另外两种是两种类型。您必须始终输出正确的表面以进行有效输入。 您应该拒绝(不输出代表曲面的4个值中的任何一个)无效输入。拒绝输入时,您可以执行任何操作,只要它可以与4个表面区分开即可 这是代码高尔夫球,因此目标是最大程度地减少源代码中的字节数。 测验 简单测试 abab Torus abAb Klein Bottle abaB Klein Bottle abAB Projective Plane aabb Klein Bottle aAbb Projective Plane aabB Projective Plane aAbB Sphere abba Klein Bottle …

2
这些辫子相等吗?
如果您不熟悉辫子理论,建议您先阅读本节。这个问题假设您至少熟悉手头的概念,并假设您熟悉小组理论 让我们定义σ Ñ为其中所述编织物Ñ从顶部越过所述第链(一个索引)的n + 1个链,和σ Ñ -是的逆σ Ñ(即在N + 1个链与第n个链交叉)。 编织物组乙Ñ然后通过产生&lt;σ 1,σ 2,σ 3,。。。,σn -1 &gt;。因此,B n上的每个编织都可以写成σ编织的乘积。1个 确定一组上的两个辫子是否相等并不是一件容易的事。这可能是很明显,σ 1 σ 3 =σ 3 σ 1,但它是不那么明显的是,例如σ 2 σ 1 σ 2 =σ 1 σ 2 σ 1。2 因此,问题是“如何确定两个辫子是否相同?”。上面的两个示例分别代表了这一点。通常,以下关系称为阿丁关系: σ 我 σ Ĵ =σ Ĵ σ 我 ; i-j&gt; 1 σ 我 …

1
具有n个交叉点的主要结数
一个主要的结是: 一个非平凡的结,不能写成两个非平凡的结的总和。 结和的说明:将两个结相邻放置, ...然后在它们之间绘制两条线,到每一侧的同一条线上,并删除刚绘制的线之间的部分。两个结的这种组合将形成一个新的非原始结。 以下是所有具有7个以下交叉的主要结(“未结不是主要结”): 您需要输出给定数量的交叉的唯一素结数量。 1 0 2 0 3 1 4 1 5 2 6 3 7 7 8 21 9 49 10 165 11 552 12 2176 13 9988 14 46972 15 253293 16 1388705 我不认为输入大于会知道这些值16,但是如果给出这样的输入,则您的代码需要在足够的时间内找到正确的结果。 OEIS-A002863
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.