Questions tagged «math»

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

10
埃及分数
概述: 来自维基百科:埃及分数是不同单位分数的总和。即,表达式中的每个分数都有一个等于1的分子和一个为正整数的分母,并且所有分母彼此不同。这种类型的表达式的值为正有理数a / b。每个正有理数都可以用埃及分数表示。 挑战: 编写最短函数,该函数将返回加总给定分数的最小单位分数集的所有分母的值。 规则/约束: 输入将是两个正整数值。 这可以是STDIN,argv,逗号分隔,空格分隔,或其他任何你喜欢的方法。 第一个输入值应为分子,第二个输入值应为分母。 第一个输入值应小于第二个输入值。 输出的值可能超过系统/语言(RAM,MAX_INT或存在的任何其他代码/系统约束)的内存限制。如果发生这种情况,只需将结果截断为可能的最高值,然后注意(即...)。 输出应该能够处理至少2147483483647(2 31 -1,32 位带符号int)的分母值。 较高的值(long等)完全可以接受。 输出应是找到的最小单位分数集(或分数本身,即1/2)的分母的所有值的列表。 输出应按照分母的值升序排序(以分数的值降序)。 可以使用任何希望的方式对输出进行定界,但是两者之间必须有一些字符,以便将一个值与下一个值区分开。 这就是代码高尔夫,因此最短的解决方案将获胜。 举例: 输入1: 43, 48 输出1: 2, 3, 16 输入2: 8/11 输出2: 1/2 1/6 1/22 1/66 输入3: 5 121 输出3: 33 121 363

19
基本计算器
您必须编写一个程序来评估将输入到计算器中的字符串。 程序必须接受输入并输出正确答案。对于不具有标准输入/输出功能的语言,您可以使用readLine和print。 要求 不使用任何“评估”功能 可以处理浮点数和负数 至少支持+,-,*和/运算符 可以处理在运算符和数字之间包含一个或多个空格的输入 从左到右评估表达式 最短的程序将获胜。如果出现平局,则首先提交的程序将获胜。 您可以假定输入有效并且遵循正确的格式 测试用例 输入项 -4 + 5 输出量 1 输入项 -7.5 / 2.5 输出量 -3 输入项 -2 + 6 / 2 * 8 - 1 / 2.5 - 18 输出量 -12

12
计算Landau函数
Landau函数 (OEIS A000793)给出对称组元素的最大阶数。在此,置换的顺序是最小的正整数k,因此\ pi ^ k是恒等式-等于置换的循环分解中循环长度的最小公倍数。例如,g(14)= 84,这是通过(1,2,3)(4,5,6,7)(8,9,10,11,12,13,14)实现的。G(n )G(ñ)g(n)小号ñ小号ñS_nππ\piķķkπķπķ\pi^kG(14 )= 84G(14)=84g(14) = 84 因此,G(n )G(ñ)g(n)也等于厘米(一个1个,... ,一ķ)厘米⁡(一种1个,…,一种ķ)\operatorname{lcm}(a_1, \ldots, a_k)的最大值,其中一种1个+ ⋯ + 一个ķ= n一种1个+⋯+一种ķ=ña_1 + \cdots + a_k = n其中一种1个,... ,一ķ一种1个,…,一种ķa_1, \ldots, a_k正整数。 问题 编写一个计算Landau函数的函数或程序。 输入项 正整数ññn。 输出量 G(n )G(ñ)g(n)是对称组小号ñ小号ñS_n元素的最大阶数。 例子 n g(n) 1 1 2 2 3 3 4 4 5 6 …

4
计算碗桩高度
碗堆高度 这个难题的目的是计算一堆碗的高度。 碗被定义为没有厚度的径向对称装置。它的轮廓形状是一个偶数多项式。堆栈由半径的列表描述,每个半径与一个偶数多项式关联,作为输入作为系数列表给出(例如,该列表3.1 4.2代表多项式3.1 x2+ 4.2 x43.1X2+4.2X43.1x^2+4.2x^4)。 多项式可以具有任意次数。为了简单起见,将堆的高度定义为最顶部碗的中心的高度(有关示例,请参见示例3的图)。 测试用例采用以下格式radius:coeff1 coeff2 ...:每行以代表碗半径的浮点数开头,后跟冒号和空格分隔的列表,其中包含偶数幂的系数,以幂2开头(隐含零常数部分)。 。例如,该行2.3:3.1 4.2描述了一碗半径2.3和形状多项式3.1 * x^2 + 4.2 * x^4。 例子1 42:3.141 描述一个零高度的堆,因为单个碗没有高度。 例子2 1:1 2 1.2:5 1:3 描述了一堆高度2.0(请参见图)。 例子3 1:1.0 0.6:0.2 0.6:0.4 1.4:0.2 0.4:0 10 描述一堆高度为0.8的桩(请参见图中的绿色箭头)。 这是代码高尔夫,所以最短的代码获胜。 我有参考代码。 编辑: 参考实现依赖于一个库来计算多项式的根。您也可以这样做,但不必这样做。由于参考实现只是一个(非常好的)数值逼近,因此我将接受在普通浮点公差范围内能产生正确结果的任何代码。 &lt; ε&lt;ε<\varepsilon 这个难题的另一个变体是通过重新排序碗来最小化高度。我不确定是否有快速的解决方案(我想这很困难)。如果有人有更好的主意(或可以证明NP完整性),请告诉我!

13
Dirichlet卷积
该狄利克雷卷积是一种特殊的卷积出现在数论中一个非常有用的工具。它对一组算术函数进行运算。 挑战 给定两个算术函数(即函数),计算Dirichlet卷积如下定义。F,g ^f,gf,gF,g ^:N → Rf,g:N→Rf,g: \mathbb N \to \mathbb R(f ∗ g ):N → R (f* 克):N → R(f∗g):N→R(f * g): \mathbb N \to \mathbb R 细节 我们使用约定。0 ∉ Ñ = { 1 ,2 ,3 ,... }0∉N={1,2,3,…} 0 \notin \mathbb N = \{1,2,3,\ldots \} 两个算术函数的Dirichlet卷积再次是算术函数,它的定义为(两个和都是等价的。表达式表示除以,因此求和在的自然除数上 。类似地,我们可以用F* 克f∗gf*gF,g ^f,gf,g(f* …

27
奇怪的加法
挑战 计算两个自然数的奇数和(也称为月球加法): 给定A=... a2 a1 a0和B=... b2 b1 b0两个以十进制为基础的自然数,根据最大运算将奇数和定义为: A+B=... max(a2,b2) max(a1,b1) max(a0,b0) ... a2 a1 a0 + ... b2 b1 b0 ---------------------------------------- ... max(a2,b2) max(a1,b1) max(a0,b0) 输入项 两个自然数 允许以下所有内容: 零填充字符串(相同长度) 左空格填充的字符串 右空格填充的字符串 两个填充字符串的数组 2D空格填充的char数组 输出量 自然数 例 1999+2018--&gt;2999 17210+701--&gt;17711 32+17--&gt;37 308+250--&gt;358 308+25--&gt;328 规则 输入和输出可以任何方便的格式给出(为您的语言/解决方案选择最合适的格式)。 无需处理负值或无效输入 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 如果可能,请提供一个在线测试环境的链接,以便其他人可以尝试您的代码! 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。

12
矩阵是正定的吗?
介绍 今天我们要照顾第一年线性代数学生的祸根:矩阵定性!显然这还没有挑战,所以我们开始: 输入项 任何方便格式的n×nn×nn\times n 对称矩阵AAA(当然,您也可以只取矩阵的上部或下部) 可选:矩阵的大小nnn 该怎么办? 挑战很简单:给定一个实值矩阵n×nn×nn\times n矩阵,如果输出真值,则输出真值,否则输出假值,从而确定其是否为正定值。 您可能会假定内置程序能够真正正确地工作,因此不必考虑数值问题,如果“可证明”的策略/代码产生正确的结果,则可能导致错误的行为。 谁赢? 这是代码高尔夫球,因此以字节(每个语言)为单位的最短代码为准! 反正矩阵是什么? 当对称矩阵为正定时,显然有6个等价公式。我将重现这三个简单的文章,并为更复杂的文章引用Wikipedia。 如果∀v∈Rn∖{0}:vTAv&gt;0∀v∈Rn∖{0}:vTAv&gt;0\forall v\in\mathbb R^n\setminus \{0\}: v^T Av>0则AAA是正定的。可以将其重新公式化为:如果对于每个非零向量vvv,vvv和AvAvAv的(标准)点积为正,则AAA为正定。 让λii∈{1,…,n}λii∈{1,…,n}\lambda_i\quad i\in\{1,\ldots,n\}是特征值的AAA,如果现在∀i∈{1,…,n}:λi&gt;0∀i∈{1,…,n}:λi&gt;0\forall i\in\{1,\ldots,n\}:\lambda_i>0(这是所有本征值是正的),然后AAA是正定的。如果您不知道特征值是什么,我建议您使用自己喜欢的搜索引擎进行查找,因为本文中的解释(以及所需的计算策略)太长了。 如果乔列斯基分解的AAA存在,即存在一个下三角矩阵LLL使得LLT=ALLT=ALL^T=A然后AAA是正定的。请注意,如果在任何时候由于负参数导致算法期间根的计算失败,则这等效于提早返回“ false”。 例子 为真实输出 ⎛⎝⎜100010001⎞⎠⎟(100010001)\begin{pmatrix}1&0&0\\0&1&0\\0&0&1\end{pmatrix} ⎛⎝⎜⎜⎜1000020000300004⎞⎠⎟⎟⎟(1000020000300004)\begin{pmatrix}1&0&0&0\\0&2&0&0\\0&0&3&0\\0&0&0&4\end{pmatrix} ⎛⎝⎜52− 121个− 1− 1− 13⎞⎠⎟(52−121−1−1−13)\begin{pmatrix}5&2&-1\\2&1&-1\\-1&-1&3\end{pmatrix} ⎛⎝⎜1个− 22− 2502030⎞⎠⎟(1−22−2502030)\begin{pmatrix}1&-2&2\\-2&5&0\\2&0&30\end{pmatrix} (7.152.452.459.37)(7.152.452.459.37)\begin{pmatrix}7.15&2.45\\2.45&9.37\end{pmatrix} 虚假输出 (至少一个特征值是0 /正半定) ⎛⎝⎜3− 22− 240202⎞⎠⎟(3−22−240202)\begin{pmatrix}3&-2&2\\-2&4&0\\2&0&2\end{pmatrix} (特征值具有不同的符号/不确定) ⎛⎝⎜1个000− 10001个⎞⎠⎟(1000−10001)\begin{pmatrix}1&0&0\\0&-1&0\\0&0&1\end{pmatrix} (所有特征值均小于0 /负定数) …

30
查找方根
编写代码给定一个正数时,为输入,输出的最大的正除数小于或等于的平方根。xxxxxxxxx 换句话说,找到最大的n&gt;0n&gt;0n > 0使得 ∃m≥n:m⋅n=x∃m≥n:m⋅n=x\exists m\geq n:m\cdot n=x (存在mmm大于或等于nnn,使得mmm乘以nnn是xxx) 例如,如果输入是121212的约数是111,222,333,444,666,和121212。 111,222和333的所有乘以较大的数字得到121212,而333是最大的,所以我们返回333。 这是代码高尔夫球,因此答案将以字节计分,而较少的字节被视为更好的计分。 测试用例 (1,1) (2,1) (3,1) (4,2) (5,1) (6,2) (7,1) (8,2) (9,3) (10,2) (11,1) (12,3) (13,1) (14,2) (15,3) (16,4) (17,1) (18,3) (19,1) (20,4) (21,3) (22,2) (23,1) (24,4) (25,5) (26,2) (27,3) (28,4) (29,1) (30,5) (31,1) (32,4) (33,3) (34,2) (35,5) (36,6) (37,1) …

19
使三角计划有效
三角性是Xcoder 先生开发的一种新的esolang ,其代码结构必须遵循非常特定的模式: 对于第nth行代码,其上必须完全2n-1有程序的字符。这将导致三角形/金字塔形,第一行仅包含一个字符,其余行以2为增量增加。 每行.的左侧和右侧都必须用s 填充,以使字符以其行为中心,并且所有行都应填充为相同的长度。如果l定义为程序中的行数,则程序中的每一行的长度必须为2 * l - 1 例如,左侧的程序有效,而右侧的程序无效: Valid | Invalid | ...A... | ABCDE ..BCD.. | FGH .EFGHI. | IJKLMN JKLMNOP | OPQRS 当布置在有效结构中时,该名称变得显而易见。 任务 您的任务是将单个行字符串作为代表Triangularity代码的输入,并将其输出转换为有效代码,如上所述。 I / O规格: 输入将仅包含范围内的字符 0x20 - 0x7e 输入的长度始终是一个平方数,因此可以很好地填充。 您必须将点用于输出填充,而不要使用其他东西。 您可以通过任何可接受的方法输入和输出。这是一个代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 input ---- output g ---- g PcSa ---- .P. …
19 code-golf  string  code-golf  combinatorics  code-golf  math  number  code-golf  matrix  code-golf  string  decision-problem  code-golf  internet  code-golf  number  number-theory  integer  expression-building  code-challenge  primes  cops-and-robbers  obfuscation  code-challenge  primes  cops-and-robbers  obfuscation  code-golf  string  balanced-string  code-golf  quine  code-generation  code-golf  matrix  code-golf  tips  c#  code-golf  ascii-art  code-golf  ascii-art  source-layout  code-golf  quine  source-layout  popularity-contest  language-design  code-golf  array-manipulation  subsequence  code-golf  matrix  math  code-challenge  game  graph-theory  atomic-code-golf  code-golf  number  integer  polynomials  equation  code-golf  array-manipulation  sorting 

9
使用Riemann和求近似定积分
左右黎曼和和是定积分的近似值。当然,在数学中我们需要非常精确,因此我们的目标是使用许多接近无穷大的细分来计算它们,但对于本挑战而言,并不是必需的。相反,您应该尝试编写最短的程序,以任何编程语言通过任何默认方法获取输入并提供输出,该语言可以执行以下操作: 任务 给定两个有理数一种一种a和bbb(定积分的极限),一个正整数ññn,代表左/右的布尔ķķk和一个黑盒函数 FFf,计算∫的左或右黎曼和(取决于ķķk)b a f (x )d x,使用n个相等的细分。∫b一种F(x )d x∫一种bF(X)dX\int_a^b f(x)\mathrm{d}xññn I / O规格 一种一种a和bbb可以是有理数/浮点数或分数。 ķķk可以由任意两个不同且一致的值表示,但请记住,不允许您将完整或部分函数用作输入。 FFf是黑盒功能。引用上面链接的meta答案,可能无法访问黑盒功能的内容(即代码),您只能调用它们(如果适用,则传递参数)并观察其输出。如果需要,请提供有关您的语言使用的语法的必要信息,以便我们测试您的提交。 作为输出,您必须提供一个有理数/浮点数/分数,代表您想要的黎曼和。如过去所讨论的,只要四舍五入到最接近的1/1000的倍数(例如1.4529999,可以代替1.453),您的输出至少可以精确到小数点后三位,就可以忽略浮点不精确度。 数学规格 FFf保证在一种一种a和bbb之间是连续的(没有跳跃,没有孔,没有垂直渐近线)。 您必须处理三种可能的情况:a = b一种=ba = b(结果应为000或等效值),a &lt; b一种&lt;ba < b或a &gt; b一种&gt;ba > b。 如果b &lt; ab&lt;一种b < a,则积分会更改其符号。此外,在这种情况下,整体的正义感是朝着一种一种a。 图表下方的区域为负,图表上方的区域为正。 示例/测试用例 分辨率不是最佳的,因为我不得不将它们缩小一点,但是它们仍然可读。 F(X )= 2 X + 1 ,a = …

3
写有理数作为质数的因数比
注意:此挑战已发布在沙盒上。 介绍 这项挑战的灵感来自2009年Putnam B1,这是本科数学竞赛中的一个问题。问题如下: 证明每个正有理数都可以写成素数(不一定是素数)的阶乘乘积的商。例如, 挑战 您的挑战是采用一对相对质数为正的整数,它们代表正有理数(或仅是有理数本身)的分子和分母作为输入,并输出两个质数的列表(或数组等),以便输入的有理数等于第一个列表中素数阶乘的乘积与第二个列表中素数阶乘的乘积之比。 笔记 第一个列表和第二个列表中可能没有任何素数;但是,素数在任意一个列表中可能会出现多次。 可以假定每个输入(非严格地)在1到65535之间。但是,不能假设您需要输出的数字的阶乘将在此范围内。 输入和输出示例 以下是合法输入和输出的示例。 input=&gt;output 10,9 =&gt; [2,5],[3,3,3] 2,1 =&gt; [2],[] 3,1 =&gt; [3],[2] 1,5 =&gt; [2,3,2],[5] (elements of a list may be in any order) 3,2 =&gt; [3],[2,2] 6,1 =&gt; [3],[] 输入(2,2),(0,3),(3,0),(3,6)和(1,65536)是非法输入(即,您的程序不需要对它们进行任何特定操作)。以下是一些非法输出的示例: 1,2 =&gt; [2],[2,2] (2 is in both returned lists) …

6
类Kolakoski自参考序列
这是如何定义Kolakoski序列(OEIS A000002)的方法: 所述Kolakoski序列是包含序列1和2,并且n该序列的第i个元素是长度n个组相等的元素(运行)的序列本身中的。序列的前20个术语以及相应的长度为: 1 2 2 1 1 2 1 2 2 1 2 2 1 1 2 1 1 2 2 1 - --- --- - - --- - --- --- - --- --- - 1 2 2 1 1 2 1 2 2 1 2 2 1 本质上,科拉科斯基序列的相等元素的组的长度是科拉科斯基序列本身。 …

12
实基转换
对于基数转换,我们遇到了一些挑战,但是所有这些挑战似乎都适用于整数值。用实数做吧! 挑战 输入: 以10为底的实数正数 x。可以将其视为双精度浮点数或字符串。为了避免精度问题,可以将该数字假定为大于10 -6且小于10 15。 甲目标基站 b。这是2到36之间的整数。 甲数的小数位的 Ñ。这是1到20之间的整数。 输出:x在n的底数b中的表示形式,带有n个小数位。 在计算输出表达式时,第n个以外的数字应被截断(而不是四舍五入)。例如,x = 3.141592653589793在base中b = 3是10.0102110122...,因此n = 3输出将是10.010(截断),而不是10.011(舍入)。 对于在小数部分中产生有限位数的x和b,还允许使用等效的无限表示形式(截断为n位)。例如,4.5十进制也可以表示为4.49999...。 不用担心浮点错误。 输入输出格式 x将不带前导零。如果x恰好是整数,则可以假定它的小数部分为零(3.0),也可以不为小数部分(3)。 输出是灵活的。例如,可以是: 代表数字的字符串,在整数和小数部分之间带有合适的分隔符(小数点)。位11,12等等(对于b超过10)可以表示为字母A,B像往常一样,或任何其它不同的字符(请注明)。 一个字符串用于整数部分,另一个字符串用于小数部分。 两个数组/列表,每个部分一个,包含从0到35数字的数字。 唯一的限制是整数和小数部分可以分开(合适的分隔符)并使用相同的格式(例如,[5, 11]对于表示整数部分['5', 'B']的列表和对于表示分数部分的列表,否)。 附加规则 允许使用任何编程语言编写程序或功能。禁止出现标准漏洞。 以字节为单位的最短代码获胜。 测试用例 输出被示出为与数字串0,..., 9,A,..., Z,使用.作为小数点分隔符。 x, b, n -&gt; output(s) 4.5, 10, 5 -&gt; 4.50000 or 4.49999 42, …

27
计算正多边形的面积
给定一个整数,n其中3 &lt;= n &lt; 2^32,计算正n态为1的正多边形的面积;的公式是n * tan(π / n)。对于那些不知道Apothem是什么的人: 正多边形的质点是从中心到边之一的中点的线段。 输出n-gon 的区域作为浮点,且不少于8个小数位。 测试用例 3 5.1961524227 6 3.4641016151 10 3.2491969623 20 3.1676888065 99 3.1426476062 1697 3.1415962425 15000 3.1415926995 注意:上面的测试用例包含的数字比您输出的数字多2个。

6
弹跳顺序
让我们定义一个序列。我们将说一个(n )一种(ñ)a(n)是最小的XXx,它具有以下属性: XXx和ññn是互质的(它们不共享因子) XXx没有出现在序列的前面 |n − x | &gt; 1|ñ-X|&gt;1个|n - x| > 1 与大多数序列不同,我们序列的域和范围是大于 1 的整数。 让我们计算前几个术语。 一个(2 )一种(2)a(2)必须至少为4,但是4和2的因子为2,因此一个(2 )一种(2)a(2)必须为5。 一个(3 )一种(3)a(3),必须是至少5但5采取的是一个(2 )一种(2)a(2),所以它是至少6,但6股因子与3所以它必须是至少7,7个满足所有三个条件从而a (3 )= 7一种(3)=7a(3)=7。 一个(4 )一种(4)a(4) 2分享一个因素 3太近了 4太近了 5太近了 6股因素 7由a(3)拍摄 8股因素 9好 一个(5 )一种(5)a(5) 2好 任务 在这个挑战中,您将编写一个程序,该程序接受大于1的数字并返回一个(n )一种(ñ)a(n)。 这是一个代码问题,因此答案将以字节计分,而字节数越少越好。 测试用例 这是序列的前几个术语(它们当然是2索引的): 5,7,9,2,11,3,13,4,17,6,19,8,23,22,21,10,25,12,27,16,15,14 奖励有趣的事实 由于对Math.se(证明由罗伯特·以色列链接)这个序列是其自身的逆,这意味着a (a …

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.