Questions tagged «math»

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

10
素数与素数索引
编写一个程序或函数,以输出/返回前10000个素数索引质数。 如果我们称第n 个素数p(n),则此列表为 3, 5, 11, 17, 31, 41, 59 ... 1366661 因为 p(p(1)) = p(2) = 3 p(p(2)) = p(3) = 5 p(p(3)) = p(5) = 11 p(p(4)) = p(7) = 17 ... p(p(10000)) = p(104729) = 1366661 禁止出现标准漏洞,并允许使用标准输出方法。您可以使用完整程序,命名函数或匿名函数来回答。
13 code-golf  math  primes 

4
如何不减少分数
错误地减少分数 在此代码高尔夫球挑战中,您必须找到可以以错误的方式减少但仍以相同数量结尾的分数。 注意:减少分数的错误方法此处有一个确切的定义,请参阅详细信息。 例: 64/16 = 6 4/1 6 = 4/1 = 4 当然,您不能只击中两个6e,但是在这里您仍然得到正确的值。在这个挑战中,您必须找到这样的例子。 细节 您必须编写一个函数/程序,接受一个正整数n作为输入,然后输出/返回格式的分数列表/数组 numerator1,denominator1,numerator2,denominator2,... 该计划必须找出每个分数a/b与a+b=n和a,b>0它是否可以减少错误的方式。(无论是否可以以常规方式减少排放量,还是有很多减少排放量的可能性,都必须至少以一种方式以错误的方式减少排放量。) 错误方式的定义:当且仅当相同的连续数字序列出现在a和b中且如果除去子字符串时分数的值保持相同时,分数才能以错误的方式还原。 示例:1536/353可以“减少”为16/3,但是这两个值不相等,因此您不能以错误的方式减少此分数。 请注意,这种减少错误方式的定义也可以包括以正确方式减少的分数:即使110/10 = 11/1在减少错误方式的定义内,它也是有效的步骤。 计分 最少的字节数获胜。您可以编写一个接受整数并返回使用stdin / stdout的数组或程序的函数或程序,也可以考虑将n保存在变量中,并且在程序末尾,列表必须保存在另一个变量中。 测试用例 请包括以下测试用例(告诉我应该添加哪些测试用例,我不知道这些部分有多少/期望有多少示例) n=80 (64/16 should be in this list) n=147 (98/49 should be in this list) n=500 (294/196 should be in this list) …

1
分析类似Collat​​z的序列
我们定义具有4个正整数的类Collat​​z序列s: n 起始值 d > 1 除数 m > 1 乘数 i 增量 (在原始Collat​​z序列中d = 2 m = 3和i = 1。) 给定这些整数s将以以下方式创建: s(0) = n 如果k > 0和s(k-1) mod d = 0再s(k) = s(k-1) / d 如果k > 0和s(k-1) mod d != 0再s(k) = s(k-1) * m + i 用一个例子的序列d …

17
计算最小值
背景 请考虑以下顺序(OEIS中为A051935): 从术语开始。222 找出大于的最低整数,使为质数。2 2 + nñnn2222 + n2+n2+n 找到大于的最低整数,使为质数,以此类推。 Ñ 2 + Ñ + Ñ 'ñ′n′n'ñnn2 + n + n′2+n+n′2 + n + n' 一个更正式的定义: 一个ñ= { 2分钟{ X ∈ Ñ | X > 一n − 1 和 ( x + ∑n − 1我= 0一个一世) 是素数}if n=0otherwisean={2if n=0min{x∈N∣x>an−1 and …

30
最后一位数字
对于给定的数字找到的最后一位 示例:x x x … x n 3 2 1[ x1个,X2,X3,。。。,Xñ][x1,x2,x3,...,xn][x_1, x_2, x_3, ..., x_n]XXX…Xñ321个x1x2x3…xnx_1 ^{x_2 ^ {x_3 ^ {\dots ^ {x_n}}}} [3, 4, 2] == 1 [4, 3, 2] == 4 [4, 3, 1] == 4 [5, 3, 2] == 5 因为。3(42)= 316= 430467213(42)=316=430467213 ^ {(4 ^ 2)} = …
12 code-golf  math 

30
整数对数
鉴于整数N , P > 1,找到最大的整数M这样P ^ M ≤ N。 输入/输出: 输入为2个整数N和P。输出将是整数M。 例子: 4, 5 -> 0 33, 5 -> 2 40, 20 -> 1 242, 3 -> 4 243, 3 -> 5 400, 2 -> 8 1000, 10 -> 3 笔记: 输入将始终有效,即它将始终是大于1的整数。 学分: 该名称的信誉归@cairdcoinheringaahing所有。最后3个示例由@Nitrodon提供,改进说明的功劳归@Giuseppe所有。

2
分解多项式
给定度数严格大于1的整数多项式,请将其完全分解为度数严格大于1的整数多项式的组合。 细节 一个完整的多项式是唯一的整数作为系数的多项式。 给定两个多项式p和q所述组合物由下式定义(p∘q)(x):=p(q(x))。 整数多项式的分解是整数多项式p的有限有序序列,q1,q2,...,qn其中deg qi > 1对1 ≤ i ≤ n和和p(x) = q1(q2(...qn(x)...)),并且所有qi不可进一步分解。分解不一定是唯一的。 您可以使用系数列表或内置的多项式类型作为输入和输出。 请注意,用于此任务的许多内建函数实际上会分解给定字段上的多项式,而不一定是整数,而此挑战则需要分解整数多项式。(某些整数多项式可能允许分解为整数多项式以及包含有理多项式的分解。) 例子 x^2 + 1 [x^2 + 1] (all polynomials of degree 2 or less are not decomposable) x^6 - 6x^5 + 15x^4 - 20x^3 + 15x^2 - 6 x - 1 [x^3 - 2, …

5
稀疏量角器
给定一些正整数n,设计一个带有最少标记数的量角器,使您能够测量所有角度的整数倍2π/n(每个角度一次测量)。 细节 作为输出,可以在的范围内输出的整数列表0到n-1(或1到n)表示每一个标记的位置。或者,也可以输出长度的串/列表n与#在每个标记的位置和_(下划线)在有无。(或两种不同的字符,如果更方便的。) 实施例:对于n = 5您需要的3马克到能够测量所有角度2π/5, 4π/5, 6π/5, 8π/5, 2π通过设置(例如)在1马克0,在1马克2π/5和1马克6π/5。我们可以将其编码为列表[0,1,3]或字符串##_#_。 例子 注意,输出不一定是唯一的。 n: output: 1 [0] 2 [0,1] 3 [0,1] 4 [0,1,2] 5 [0,1,2] 6 [0,1,3] 7 [0,1,3] 8 [0,1,2,4] 9 [0,1,3,4] 10 [0,1,3,6] 11 [0,1,3,8] 20 [0,1,2,3,6,10] PS:这类似于稀疏标尺问题,但是我们考虑使用圆形(角形)刻度,而不是线性刻度(两端)。 PPS:此脚本应为每个脚本计算一组标记的一个示例n。在线尝试! PPPS:正如@ngn所指出的,此问题等效于找到阶的循环组的最小差分基n。最小订单在http://oeis.org/A283297中列出,一些理论界限在https://arxiv.org/pdf/1702.02631.pdf中找到

8
尽快计算Hafnian
挑战在于编写可能最快的代码来计算矩阵的Hafnian。 对称2n按2n矩阵的Hafnian A定义为: 这里S 2n表示整数从1to 的所有置换的集合2n,即[1, 2n]。 Wikipedia链接还提供了一个可能引起您兴趣的不同外观公式(如果您在网络上进一步浏览,甚至可以使用更快的方法)。相同的Wiki页面讨论了邻接矩阵,但是您的代码也应适用于其他矩阵。您可以假设所有值都是整数,但不能假设它们都是正数。 还有一种更快的算法, 但似乎很难理解。而Christian Sievers是第一个实施它的人(在Haskell中)。 在这个问题上,矩阵都是正方形的,并且对称且偶数维。 参考实现(请注意,这是使用最慢的方法)。 这是Xcoder先生提供的一些示例python代码。 from itertools import permutations from math import factorial def hafnian(matrix): my_sum = 0 n = len(matrix) // 2 for sigma in permutations(range(n*2)): prod = 1 for j in range(n): prod *= matrix[sigma[2*j]][sigma[2*j+1]] my_sum += prod return …

4
用适当的总和计算矩阵数
在Steenrod代数的Milnor基中乘以单项式时,该算法的一部分涉及枚举某些“可允许矩阵”。 给定两个非负整数r 1,...,r m和 s 1,...,s n的列表,一个非负整数X的矩阵 如果是允许的 第j列的总和小于或等于s j: 第i行乘以2的幂进行加权的总和小于或等于r i: 任务 编写一个程序,该程序采用一对列表r 1,...,r m和s 1,s 1,...,s n并计算这些列表的允许矩阵数。如果需要,您的程序可以选择将m和n作为附加参数。 这些数字可以按喜欢的任何格式输入,例如分组到列表中或以一元编码或其他形式输入。 输出应为正整数 有标准漏洞。 计分 这就是代码高尔夫:以字节为单位的最短解决方案获胜。 例子: 对于[2]和[1],有两个允许的矩阵: 对于[4],[1,1]存在三个允许的矩阵: 对于[2,4],[1,1]有五个允许的矩阵: 测试用例: Input: [1], [2] Output: 1 Input: [2], [1] Output: 2 Input: [4], [1,1] Output: 3 Input: [2,4], [1,1] Output: 5 Input: …

5
一举两得
正如我们在这个问题中看到的那样,可以用广义Minesweeper的简单连接词来表示复杂的逻辑语句。但是,广义扫雷器仍有冗余。 为了避免这些冗余,我们定义了一个名为“ Generalized-1 Minesweeper”的新游戏。 Generalized-1 Minesweeper是在任意图形上播放的Minesweeper版本。该图具有两种类型的顶点,即“指示器”或“值”。值可以是开或关(地雷或哑巴),但玩家不知道其状态。指示器会告诉您,一个相邻的电池正好在(地雷)上。指标本身不算地雷。 例如,下面的通用扫雷板告诉我们,单元格A和B要么都是地雷,要么都不是地雷。 (在图中,指示器以灰色标记,而值则为白色) 与普通的扫雷器不同,在常规的扫雷器中,单击关闭的值即可显示指标,而在通用扫雷器中则没有这种机制。玩家只需确定图表的哪些状态可以满足其指标。 您的目标是制作一辆2Generalized-1扫雷车。您将在Generalized-1 Minesweeper中构建一个结构,以便有8个特定的像元,其所有可能的值配置都恰好有两个像元。这意味着它的行为与2传统扫雷器的行为完全相同。在编写解决方案时,您不应该在意价值单元格的具体价值。(在回答H.PWiz的问题时,允许某些值单元可以从状态中推论得出) 计分 您的答案将由最终图形中的顶点数减去8(对于8个输入)得到评分,得分越低越好。如果此标准中有两个答案,则平局决胜局将为边数。

3
贷款“大量”的钱
介绍 您有一个不断向您要贷款的朋友,您对此感到厌倦。今天,他再次来借钱。您不会拒绝他的提议,而是有了一个好主意:通过给他的朋友尽可能多的硬币/票据来拖曳他的朋友。 挑战 您将输入:您的朋友想要贷款的金额以及您拥有的硬币/票据的金额。对于此挑战,可能的面额为$ 20.00,$ 10.00,$ 5.00,$ 2.00,$ 1.00,$ 0.25,$ 0.10,$ 0.05和$ 0.01。输入的一个示例是,5.67, [5, 3, 4, 5, 5, 9, 8, 1, 2]如果您的朋友想要5.67美元,并且您有5张20美元的钞票,3张10美元的钞票等。您的输出将是能给您的朋友尽可能多的金属/纸张/塑料的硬币/钞票的数量。 如果不可能给您的朋友确切的金额,请给他您可以支付的最接近的金额,该金额要大于他想要的金额。例如,如果您的朋友想要$ 0.07但您只有$ 0.07 [0, 0, 0, 0, 0, 2, 4, 2, 0],则给他2个$ 0.05硬币(而不是1个$ 0.10,因为那样会给他尽可能多的硬币!)。 如果您的朋友想要的钱比您多,请把所有的钱都给他(并祈祷您不需要购买任何东西)。 测试用例 Input: 6.54, [9, 8, 7, 6, 5, 4, 3, 2, 4] Output: …
12 code-golf  math 

7
因子总数
给定n> 1的正整数,确定乘以n大于1的整数可以得到多少个数字。例如,如果n = 24,则可以通过以下方式将n表示为乘积 24 = 24 -> 24 = 24 24 = 12 * 2 -> 12 + 2 = 14 24 = 6 * 2 * 2 -> 6 + 2 + 2 = 10 24 = 6 * 4 -> 6 + 4 = 10 24 = …

1
卓越的高复合数
较高的高复合数是一个整数,其中其除数的数量与该数字的幂的比率应尽可能大。用公式表示: 令d(n)是n的除数,包括数字本身。对于给定的整数n,如果存在一个数字e,使得每个整数k的d(n)/ n ^ e都大于或等于d(k)/ k ^ e,则n是一个高度合成的数。 有关更多信息,请参见Wikipedia上的“ 高级高级综合号码”,或OEIS上的A002201。 这是初始值: 2, 6, 12, 60, 120, 360, 2520, 5040, 55440, 720720, 1441440, 4324320, 21621600, 367567200, 6983776800, 13967553600, 321253732800, 2248776129600, 65214507758400, 195643523275200, 6064949221531200 您的挑战是获取索引n,并按此顺序输出第n个数字。 您可以使用0或1索引,并且可以制作一个仅在您的语言的数据类型的限制范围内正确的程序,只要它至少可以处理前10个值即可。 这是代码高尔夫。有标准漏洞。

12
圆像零
目标 给定输入数字,将其四舍五入到一个有效数字。 要求 输入值 浮点数。 假设输入数字的结果在数据类型的限制之内(即忽略溢出错误)。 0是无效输入。 不必支持不能以浮点数据类型准确表示的数字(例如"0.35",存储为0.3499999)。 输出量 由一个非零数字和任意数目的零数字组成的最接近的数字。 结果必须支持负数和小数。 当输入恰好位于两个可能的输出之间时,请从零舍入。 介绍 重点是计算而不是表示。输出可以是浮点数据类型。它可以是完整或科学计数形式的文本。如果您发现一个漏洞,可以通过某种方式减少字节数,这对您来说是荣誉! 例子 9 -3000 .2 0.2 -.2 7e12 5e-15 1e0 测试用例 Input Output 1 1 10 10 17 20 99 100 54321 50000 56789 60000 -123 -100 -789 -800 0.23 0.2 0.25 0.3 -0.25 -0.3 4.56e23 5e23 …
12 code-golf  math 

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.