Questions tagged «math»

挑战涉及数学。还可以考虑使用更具体的标签:[数字] [数字理论] [算术] [组合] [图形理论] [几何] [抽象代数]。

8
求和顶点连接
比方说,你有一个正整数ñ。首先,建立一个具有N个顶点的规则多边形,相邻顶点之间的距离为1。然后将每个顶点之间的线连接到另一个顶点。最后,计算所有行的总和。 例 给定输入N = 6,用连接每个顶点和其他顶点的线构建一个六边形。 如您所见,总共有6条边界线(长度= 1),3条边界长度加倍(长度= 2)的线和其他6条线,我们可以使用毕达哥拉斯定理来计算,这是 如果将线的长度相加,我们将得到(6 * 1)+(3 * 2)+(6 * 1.732)= 22.392。 附加信息 由于不将具有2个或更少顶点的结构视为多边形,因此NaN对于N = 1,输出0(或,因为单个顶点之间的距离没有多大意义),因为单个顶点无法连接到其他顶点,而对于1,则输出1 N = 2,因为两个顶点通过一条直线连接。 输入值 任何合理格式的整数N。 输出量 所有行的长度加总起来,至少精确到小数点后三位,可以作为函数返回值或直接打印到stdout。 规则 禁止出现标准漏洞。 这是code-golf,因此以任何语言表示的最短代码(以字节为单位)将获胜。 祝好运! 测试用例 (Input) -> (Output) 1 -> 0 or NaN 2 -> 1 3 -> 3 5 -> 13.091 6 …

14
递归级联[N]的累积和与M次迭代
取两个正整数N,M并[N]通过M迭代创建的串联累积和。输出最后一次迭代的结果。 串联累积和的定义: 以数字开头N并定义顺序X = [N] 追加到X的累积和X 重复步骤2 M次。 向量的累加和X = [x1, x2, x3, x4]为:[x1, x1+x2, x1+x2+x3, x1+x2+x3+x4]。 N = 1和的示例M = 4: P =累积和函数。 M = 0: [1] M = 1: [1, 1] - X = [1, P(1)] = [[1], [1]] M = 2: [1, 1, 1, 2] - X …
14 code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

14
计算威尔逊数
给定正整数n,计算第n 个 威尔逊数 W(n),其中 和ë = 1,如果Ñ具有原根Ñ,否则ê = -1。换句话说,如果不存在1 < x < n-1和x 2 = 1 mod n的整数x,则n具有原始根。 这是代码高尔夫球,因此请为计算n的函数或程序创建最短的代码输入整数 n > 0的第个威尔逊数。 您可以使用基于1或基于0的索引。您也可以选择输出前n个威尔逊数。 这是OEIS序列A157249。 测试用例 n W(n) 1 2 2 1 3 1 4 1 5 5 6 1 7 103 8 13 9 249 10 19 11 329891 12 …

27
泛指倍增
灵感来自这个 CMC 给定一个大于0的正整数,对其执行以下操作: 如果所有十个数字(1234567890)都至少有一次,输出计数并退出程序 否则,将数字加倍并重复,增加计数。 计数从0开始,是输入加倍的次数。例如,如果输入为617283945,则需要将其加倍一次,因为1234567890中包含所有10位数字。 这是一个代码高尔夫球,因此最短的代码获胜。如果需要,可以将输入作为字符串。 测试用例 input => output 617283945 => 1 2 => 67 66833 => 44 1234567890 => 0 100 => 51 42 => 55

23
计算矩阵向量
给定一个至少包含两个元素的整数数组,输出该数组的矩阵向量(定义如下)。 为了计算Matrix-Vector,首先旋转通过nsize - input数组以创建一个size的矩阵n x n,该数组的第一个元素位于主对角线之后。这形成矩阵部分。对于向量,垂直翻转输入数组。然后执行普通矩阵乘法。输出向量是结果。 例如, a = [1, 2, 3] 首先,将阵列向右旋转两次,以获得[3, 1, 2]和[2, 3, 1],然后将它们堆叠以形成3x3矩阵 [[1, 2, 3] [3, 1, 2] [2, 3, 1]] 接下来,垂直翻转数组以形成向量 [[1, 2, 3] [[1] [3, 1, 2] x [2] [2, 3, 1]] [3]] 执行通常的矩阵乘法 [[1, 2, 3] [[1] [[1+4+9] [[14] [3, 1, 2] …

12
寻找近似相关
考虑一个S长度为string 的二进制字符串n。从索引中1,我们可以计算出海明距离之间S[1..i+1],并S[n-i..n]为所有i从订单0到n-1。等长的两个字符串之间的汉明距离是相应符号不同的位置数。例如, S = 01010 给 [0, 2, 0, 4, 0]. 这是因为0matchs 0,01具有汉明距离2到10,010matches 010,0101具有汉明距离4到1010 最后01010匹配自己。 但是,我们仅对汉明距离最大为1的输出感兴趣。因此,在此任务中,我们将报告Y汉明距离是否最多为1,N否则为否。因此,在上面的示例中,我们将获得 [Y, N, Y, N, Y] 定义f(n)为Ys和Ns在2^n不同S长度的所有可能位字符串上迭代时得到的不同数组的数目n。 任务 为了增加n开头1,应该输出代码f(n)。 示例答案 对于n = 1..24,正确的答案是: 1, 1, 2, 4, 6, 8, 14, 18, 27, 36, 52, 65, 93, 113, 150, 188, 241, 279, 377, 427, 540, 632, …

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 …

8
可达号码
定义 欧拉披(Euler Phi)函数(又称totient函数):该函数接受一个正数,并返回小于给定数的正数,这些正数与给定数互质。表示为φ(n)。 可达数:如果存在一个正整数x,使得φ(x) == n,然后n是可到达的。 任务 编写函数/程序以确定给定的正整数是否可以达到。 输入值 任何合理格式的正数。可以假定数字在该语言的能力范围内。一元输入被接受。 输出量 两个一致的值,一个用于可访问的数字,另一个用于不可访问的数字。两个值可以是任意值,只要它们是一致的即可。 测试用例 以下是可接通的电话号码100: 1,2,4,6,8,10,12,16,18,20,22,24,28,30,32,36,40,42,44,46,48,52,54,56,58,58, 60、64、66、70、72、78、80、82、84、88、92、96 (OEIS上为A002202) 规则 有标准漏洞。 获奖标准 这是代码高尔夫球。提交的字节数最少。 参考文献 欧拉·菲函数 OEIS A002202

25
加分数
编写一个程序或函数,将两个长度相同的非空列表作为输入,并执行以下操作: 使用第一个列表的元素获取分子, 使用第二个列表的元素来获取分母, 简化后显示结果分数(2/4=>1/2),以“ +”号分隔, 在最后一个分数之后显示“ =”和加法结果。 例: 输入值 [1, 2, 3, 3, 6] [2, 9, 3, 2, 4] 输出量 1/2+2/9+1+3/2+3/2=85/18 关于规则 列表的元素将为正整数, 元素可以用空格隔开,例如:1/2 + 2/9 + 1 + 3/2 + 3/2 = 85/18可以, 尾随换行符是允许的, 列表可以采用上述格式以外的其他格式,例如:(1 2 3 3 6)或{1;2;3;3;6},等等。 1可表现为1/1, 您可以返回适当的字符串来代替打印, 您不需要处理错误的输入, 最短的代码胜出。

4
查找有限组的子组数
定义 如果您已经知道组,有限组和子组的定义,则可以跳过此部分。 团体 在抽象代数中,一个组是一个元组(G,∗),其中G是一个集合,而∗是一个函数G×G→G,使得下式成立: 封闭:对于所有的x,y在ģ,X * Y也是ģ(由事实暗示*是一个函数G×G ^→G )。 关联:对所有X,Y,Z在ģ,(X * Y)* Z = X *(Y * Z) 。 同一性:存在一个元素ê在ģ使得对于所有X中ģ,X * E = X = E * X。 逆:对于每个X在ģ,存在一个元素ý在ģ使得X * Y = E = Y * X,其中ê是在前面的项目符号点中提到的单位元。 有限群体 甲有限组是一组(G,*) ,其中G ^是有限的,即,具有有限多个元件。 亚组 组(G,∗)的子组 (H,∗)使得H是G的子集(不一定是适当的子集),而(H,∗)也是一个组(即满足上述4个条件)。 例子 考虑二面体组D 3 (G,∗),其中G = {1,A,B,C,D,E},并且∗在下面定义(这样的表称为Cayley表): …

12
正负多面体!
您的提交必须包含一个数字列表(以您的语言支持的任何列表格式,或使用多个功能/命令行参数),或一串数字,并用一个不是的字符分隔0123456789。用一种语言,它必须将所有语言相加并输出和。用另一种语言,它必须按顺序输出彼此相减的结果。例: 12 5 7 2 在一种语言中,它必须输出26,而在另一种语言中,它必须输出-2。请注意,所有输入的数字都是小于的正整数100。所20提供的数字将永远不会超过,因此您的输出将永远不会大于2000或小于-1899。任何问题?在下面发表评论!

1
将图片变成拼图
摘要 这项挑战的目标是创建一个15拼图 / 滑动拼图(在法语中也称为taquin)的未还原图像版本。 细节: 给定一个输入,该输入包括: 一个图像, 的整数n, 的其它整数r, 您的程序,函数或任何其他适合的东西,都必须输出与输入相同的图像(即,相同的大小和格式),但是必须经过以下过程: 将图像分成n²矩形, 随机删除其中一个矩形, 从受点(2.)影响的线/列中移动任意数量的连续矩形,以便填充创建的孔,并在该线/列中生成另一个。0如果毛坯在角落或边缘,则此数字可以是。 重复(3.)r次。 说明: 如果您在第(3.)步中从行中移动了矩形,则必须在下一个重复中从列中移动矩形, 如果您在一行中从左到右移动矩形,则必须在下一行中将它们从右到左移动,这与列的上下到上下以及从下到上相同, 您可能会假设n会选择该选项,因此它将划分图片两边的长度。 最后一点: 动画.gif演示整个过程非常受欢迎。 我建议使用下面的图片(是1024x768),将n=16和r=100用作模型,您可以使用任何其他图片(只要它是相关的并且符合SE的规则)。 请注意,适用标准漏洞政策。 这是代码高尔夫球,因此较短的提交将获胜! 由于请求了一个示例,因此这里有一个“手工制作”的示例,其中包含n=4和r=1 步骤1和2 步骤3:逐行,向左2个矩形

1
混淆整数表示法
编辑:我将meta-golf很快发布此问题的较新版本。保持警惕! 编辑2:我将不再更新挑战,但将其保持打开状态。该meta-golf版本位于此处:https : //codegolf.stackexchange.com/questions/106509/obfuscated-number-golf 背景: 大多数数字只能用6个不同的符号书写: e (欧拉常数) - (减,非负) ^ (求幂) ( ) ln (自然对数) 例如,您可以i使用以下等式转换虚数: (e-e-e^(e-e))^(e^(e-e-ln(e^(e-e)-(e-e-e^(e-e))))) 目标: k通过任何合理的方式给定任何整数,仅使用这6个符号输出该数字的最短表示。 例子: 0 => "e-e" 1 => "ln(e)" 2 => "ln(ee)" // Since - cannot be used for negation, this is not a valid solution: // ln(e)-(-ln(e)) -1 => "e-e-ln(e)" 笔记: …

7
绘制Sierpinski箭头曲线
介绍 该谢尔宾斯基箭头曲线是一条曲线,这是限制是谢尔宾斯基的三角。 它首先是这样开始的: _ / \ 然后,将每一行替换为第一行的旋转版本: _ / \ \ / _/ \_ 下一个: _ / \ \ / _/ \_ / \ \_ _/ _ \ / _ / \_/ \_/ \ 你的任务 给定数字n,输出Sierpinski箭头曲线的第n次迭代。 您可以选择0或1索引,但请在答案中指定。 您可以生成图像,或以我上面的格式使用Ascii Art。 您可能不使用内置函数生成此曲线。 请记住,这是code-golf,所以字节最少的代码将获胜。

10
查找最大列中的每个数字
这对您来说是一个相对简单的挑战: 给定一个正整数列表: 将它们排列成网格,然后对每一列求和。例如,如果输入为[123, 7, 49, 681],则网格将如下所示: 1 2 3 7 4 9 6 8 1 每列的总和为[18, 19, 4]: 1 2 3 7 4 9 6 8 1 -------- 18 19 4 查找这些总和的最大值,在这种情况下为19,然后 输出与此最大列在同一索引处的每个数字。在这种情况下, 2 9 8 您不必以任何特定顺序输出这些数字。请注意,即使我们有4个输入,也只有3个输出。如果是平局,请选择最早的索引。例如,如果输入为[25, 223, 302],则您的网格为: 2 5 2 2 3 3 0 2 ------- 7 7 …
14 code-golf  math  grid 

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.