Questions tagged «math»

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

12
伟大的正弦
介绍 每个人都听说过正弦(sin),余弦(cos),正切(tan),余切(cot),割线(sec)和割线(csc)。几乎每个角度都有它们。 远不如已知的,或记住的,是exsecant(exsec) ,excosecant(excsc) ,正矢(正矢量),和coversine(CVS) 。几乎每个角度都具有这些角度。有些甚至鲜为人知,但我们会坚持下去。 我为这些角度为45°的角度创建了可视化效果。 挑战 创建一个程序,该程序接受一个angle n(以度为单位)的输入,并将输出: 角度正弦 n 角度的余弦 n 角正切 n 角度的割线 n 以下至少之一。此列表中的所有其他项目都将获得-5%的奖励,最多-25%。 角度角度 n 角度余割 n 角形剂 n 角度的 n 角度的正弦 n 角余切 n 如果应用奖金后分数为小数,则四舍五入至最接近的整数。 输入项 您可以通过STDIN或函数调用接受输入。n将传递一个参数。 n 将始终是一个大于0但小于或等于90的整数。 输出量 这是一个正弦为45°的输出示例。所有输出项目必须采用这种格式。项目的顺序无关紧要。 sine: 0.70710678118 所有项目的小数点后必须精确到4个数字(精确到千分之一)。以下是一些四舍五入的示例。 0 -> 0.0000 1 -> 1.0000 0.2588190451 -> 0.2588 …

5
{0、3、2、5、0、3、5、1、4、6、2、4}的最短表达式
给定的整数列表{0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4}。对于那些感兴趣的人,这些数字将用于工作日计算。 工作日= (m[n] + d + y + y>>2 + y/400 - y/100) % 7;,m[n]我要搜索的表达式d-月中的某天y- year - (month <= 2)。 构造由算术,逻辑和按位运算符组成的表达式,该表达式将输出正整数n整数,m以便m % 7等于列表中的第n个数字。 不允许使用分支,三元运算符,表查找和指针。 得分: 1- | & ^ ~ >> <<运营商 1.1- + - < > <= >= …

24
最短Minmod函数
该minmod功能是熟悉的一种变型分钟,出现在偏微分方程斜率限制性高分辨率方案。给定许多坡度,它会选择最平坦的坡度,同时注意坡度之间的相对符号。 该函数接受任意数量的参数。然后将minmod(x 1,x 2,...,x n)定义为: min(x 1,x 2,...,x n),如果所有x i都严格为正 max(x 1,x 2,...,x n),如果所有x i均为负 0,否则。 我们将仅考虑整数输入,因为这实际上不会影响实现,并且对于某些(深奥)语言应具有更大的包容性。 编写程序或函数,该程序或函数通过STDIN,ARGV或函数参数(如果要比可变参数函数更方便,则可以使用数组)接收n个有符号整数(对于n> 0),然后返回或打印(到STDOUT)结果的minmod(a,b)。 您一定不能使用内置的min或max函数(显然,如果可以实际找到的话,也没有内置的minmod)。此外,除对固定的少量项目(少于5个)进行分类外,不得使用任何内置的分类功能。 如果您的语言没有带符号的类型,则可以使用无符号的类型并将其解释为二进制补码。例如,如果您的语言仅使用无符号字节,则可以使用255代表-1和128代表-128,等等。 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 测试用例 Input Output 2 2 -3 -3 0 0 3 -5 0 2 4 1 1 0 1 2 0 -1 1 2 0 -4 -2 -3 -2 …

6
最近的分数
任务: 您的程序将使用格式正确的,正的简单分数<numerator>/<denominator>。 对于此输入,它必须找到两个分数。 小于输入的分数。 大于输入的分数。 两个分数的分母都必须小于输入的分母。在所有可能的分数中,它们与输入的差异应该最小。 输出: 程序的输出必须为: 小于输入的小数,格式为<numerator>/<denominator>。 后面跟一个空格字符(ASCII码32)。 后跟一个大于输入的小数,格式为<numerator>/<denominator>。 如下: «fraction that is < input» «fraction that is > input» 规则: 输出的所有分数必须使用最低的术语。 输出的所有分数必须是正确的分数。 如果规则没有允许的任何适当分数,则必须输出0而不是分数<输入,而1不是分数>输入。 您可以选择是要接收分数作为命令行参数(例如yourprogram.exe 2/5)还是提示用户输入。 您可能会认为您的程序不会收到无效的输入。 最短的代码(以任何语言表示的字节数)为准。 任何非标准的命令行参数(运行脚本通常不需要的参数)都计入总字符数。 您的程序不得执行的操作: 取决于任何外部资源。 取决于具有特定的文件名。 输出所需输出以外的任何内容。 需要非常长的时间才能运行。如果您的程序在一分钟的179565/987657时间内用普通家庭用户的计算机上的分数用6位数字的分子和分母(例如)运行一分钟,则它无效。 输出分数以0作为分母。你不能被零除。 输出分数0作为分子。您的程序必须输出0而不是小数。 减少输入分数。如果作为输入给出的分数是可约的,则必须使用输入的分数。 发布此挑战之前,不得使用没有公开可用的编译器/解释器的编程语言来编写您的程序。 例子: 输入: 2/5 输出: 1/3 1/2 输入: 1/2 输出: 0 …

1
查找多项式的实根
编写一个自包含的程序,当给定一个多项式和一个界限时,它将发现该多项式的所有实根都达到不超过界限的绝对误差。 约束条件 我知道Mathematica以及其他一些语言都有一个符号解决方案,这很无聊,因此您应该坚持原始操作(加,减,乘,除)。 输入和输出格式具有一定的灵活性。您可以通过stdin或命令行参数以任何合理的格式进行输入。您可以允许浮点数,或者要求使用某些有理数表示形式。您可以采用边界或边界的倒数,如果您使用的是浮点,则可以假定边界不小于2 ulp。多项式应表示为一个单项式系数列表,但可以是大端或小端的。 尽管没有必要提供完整的内联证明,但是您必须能够证明您的程序为何始终可以工作的原因(模数问题)。 该程序必须处理具有重复根的多项式。 例 x^2 - 2 = 0 (error bound 0.01) 输入可以是例如 -2 0 1 0.01 100 1 0 -2 1/100 ; x^2-2 输出可以是例如 -1.41 1.42 但不是 -1.40 1.40 因为那有大约0.014的绝对误差... 测试用例 简单: x^2 - 2 = 0 (error bound 0.01) x^4 + 0.81 x^2 - …

30
不使用+或-号添加
以前有很多“不做__ _ __的挑战”,但我希望这是最具挑战性的挑战之一。 挑战 您将要编写一个程序,该程序从STDIN中获取两个自然数(整数> 0),并将两个数字的和输出到STDOUT。我们面临的挑战是,你必须尽可能少的使用+和-迹象可能。不允许使用任何类似求和或求反的函数。 例子 输入 123 468 输出 591 输入 702 720 输出 1422 抢七局: 如果两个程序的+和-字符数相同,则获胜者是人数/ * ( ) = . ,和0-9字符少的人。 不允许:标准加/减和增/减运算符是除+或-不允许的符号之外的语言。这意味着不允许使用空白语言。

4
三分球!那是什么
来自http://en.wikipedia.org/wiki/Triangle: 编写一个程序,该程序采用三个2d坐标元组(笛卡尔),并对这三个点描述的形状进行分类。 在几乎所有情况下,这些点都将描述不同类型的三角形。在某些退化的情况下,这些点将描述一个奇异点或一条直线。程序将确定以下哪个标签适用于所描述的形状: 点(3点同时发生) 直线(直线上3点-可以同时发生的点不超过2点) 等边的(3个边相等,3个角度相等) 等腰(2边相等,2个角度相等) 斜角(0边相等,0角度相等) 右(1个正好为π/ 2(或90°)的角度) 倾斜(0个角度正好为π/ 2(或90°)) 钝角(1个角度>π/ 2(或90°)) 急性(3个角度<π/ 2(或90°)) 请注意,对于某些上述形状,将应用上述标签中的多个。例如,任何直角也将是等腰或斜角。 输入项 该程序可以从STDIN,命令行,环境变量或任何适合您选择的语言的方法中读取3个输入坐标。 输入坐标可以格式化,但是对于您选择的语言来说很方便。可以假设所有输入数字相对于最终使用的数据类型都是正确的格式。 不能假设输入坐标的顺序。 输出量 程序将输出到STDOUT,对话框或任何适合您选择语言的显示方法。 输出将显示适用于由输入坐标描述的形状的所有标签。 标签可以以任何顺序输出。 其他规定 允许使用您语言的三角函数库/ API,但禁止任何专门计算三角形类型的API。 在确定角度或边长相等时,您可能最终会比较浮点值。如果一个值在另一个值的1%以内,则将两个这样的值视为“相等”。 标准的“漏洞”不再有趣 这是代码高尔夫球,因此最短的答案以字节为单位。 例子 Input Output (1,2) (1,2) (1,2) Point (1,2) (3,4) (5,6) Line (0,0) (1,1) (2,0) Isosceles Right (0,0) (2,1) (10,1) …

10
费马多边形数定理
Fermat的多边形数定理指出,每个正整数都可以表示为最多nnn 多边形的和。这意味着每个正整数都可以表示为最多三个三角形,四个正方形,五个五角形等的总和。您的任务是取一个正整数和一个整数,并输出相加为角整数。nnnxxxs≥3s≥3s \ge 3sssxxx 第个角整数,其中和可以用两种方法定义。非数学-Y方式是个 -gonal数可以构造为正多边形与两侧,各有长度的。例如,对于(三角数):nnnsssn≥1n≥1n \ge 1s≥3s≥3s \ge 3nnnssssssnnns=3s=3s = 3 请参阅此处以获取具有更大示例。sss math-y定义是通过使用的公式,它得出第个角数:P(n,s)P(n,s)P(n, s)nnnsss P(n,s)=n2(s−2)−n(s−4)2P(n,s)=n2(s−2)−n(s−4)2P(n, s) = \frac{n^2(s-2) - n(s-4)}{2} 这是在维基百科页面给出这里。 输入项 两个正整数和,条件为。您可以用您的语言以最自然的表示形式输入这些整数(十进制,一进制,教堂数字,整数值浮点数等)。sssxxxs≥3s≥3s \ge 3 输出量 整数列表,最大长度为,其中L的总和等于x,L中的所有整数都是s-角整数。同样,整数可以用您的语言以自然表示形式输出,并带有任何不同的,一致的分隔符(因此,十进制输出使用非小数字符,一进制输出使用不同的字符等)。LLLsssLLLxxxLLLsss 规则 输入或输出将永远不会超出您语言的整数限制 LLL不必订购 如果有多个可能的输出,则任何一个或全部都可以接受 这是代码高尔夫球,因此以字节为单位的最短代码获胜 测试用例 x, s => L 1, s => 1 2, s => 1, 1 5, 6 => …

19
模拟是钝的!
模拟时钟有两只指针*:小时和分钟。 随着时间的流逝,这些指针绕着时钟的脸盘旋。分针每旋转一圈,时针就会旋转1/12。时针旋转2圈表示整整一天。 由于这些指针固定在同一中心点上并围绕该点旋转,因此您始终可以计算指针之间​​的角度。实际上,在任何给定时间都有2个角度。较大的一个和较小的一个(有时它们都等于180,但这并不重要) *我们假设的时钟没有秒针 任务 给定时间为24小时格式,请以度为单位输出双手之间的较小角度。如果手是直接相对海誓山盟(如在6:00,18:00等)输出180 规则 输入可以视为:-用定界符分隔的字符串:6:32,14.26 -2个独立的值,字符串或整数:6, 32,14, 26 -由2个值,字符串或整数组成的数组:[6, 32],[14, 26] 您也可以选择指定你的答案需要输入要填充到2个位数(假设你把字符串),即:06:32,06, 32,[06, 32] 你还可以任选地反转的输入的顺序,同时分钟然后小时,即:32:6,32, 6,[26, 14] 小时将是介于(0和23)之间的整数值(分钟)将是介于(0和59)之间的整数值 您可以假设分针沿着脸部以6度为增量(每个分钟值一个均匀间隔的位置) 您可以假定时针沿着脸部以0.5度为增量进行增量(一个分钟的位置均匀间隔)。每分钟值/小时值) 输出必须以度为单位,而不是以弧度为单位。您可以包括尾随.0在整数 计分 这是代码高尔夫,因此每种语言中的字节数最少获胜! 测试用例 Input: 06:32 Output: 4 Input: 06:30 Output: 15 Input: 18:32 Output: 4 Input: 06:01 Output: 174.5 Input: 00:00 Output: 0 Input: 00:01 Output: …
23 code-golf  math  number  date 

15
半回文之谜
回文是一个本身相反的词。 现在有些单词看起来像回文,但看起来却不然。例如,考虑单词 sheesh, sheesh不是回文,因为它的反向是hseehs不同的,但是如果我们认为sh是单个字母,那么它的反向是sheesh。我们将这种词称为半回文。 具体来说,如果我们可以将单词拆分成一定数量的块,则该单词为半回文,这样当块的顺序颠倒时,便形成了原始单词。(因为sheesh这些块是sh e e sh),我们也将不要求任何块包含两个单词的字母(否则每个单词都是半回文)。例如rear,不是半回文,因为它r ea r具有一个块(ea),其中包含来自原始单词两边的字母。我们认为奇数长度的单词的中心字符不在单词的两侧,因此对于奇数长度的单词,中心字符必须始终位于其自己的块中。 您的任务是获取正整数列表,并确定它们是否为半回文。您的代码应输出两个一致的不相等值,如果输入是半回文,则应输出一个,否则将输出另一个。但是,代码的字节序列本身必须是半回文。 答案将以字节计分,而字节数越少越好。 测试用例 [] -> True [1] -> True [2,1,2] -> True [3,4,2,2,3,4] -> True [3,5,1,3,5] -> True [1,2,3,1] -> False [1,2,3,3,4,1] -> False [11,44,1,1] -> False [1,3,2,4,1,2,3] -> False 程序生成更多的测试用例。 borrible指出,这些与广义Smarandache回文相似。因此,如果您想做进一步的阅读,那是一个开始的地方。

10
最短的唯一标识子字符串
给定一个字符串列表,请用其非空子字符串之一替换每个字符串,该子字符串不是列表中任何其他字符串的子字符串,并且应尽可能短。 例 给定list ["hello","hallo","hola"],"hello"应替换为,"e"因为该子字符串未包含在其中"hallo","hola"并且它尽可能短。"hallo"可通过任一取代"ha"或"al"并"hola"通过任何"ho","ol"或"la"。 规则 您可以假定字符串将为非空,并且仅包含大小写相同的字母字符。 您可以假定列表中的每个字符串都存在这样的子字符串,即列表中的任何字符串都不是其他任何字符串的子字符串。 输入和输出可以采用任何合理的格式。 这是code-golf,因此请尝试使用您选择的语言使用尽可能少的字节。 测试用例 在大多数情况下,仅给出一种可能的输出。 ["ppcg"] -> ["p"] (or ["c"] or ["g"]) ["hello","hallo","hola"] -> ["e","ha","ho"] ["abc","bca","bac"] -> ["ab","ca","ba"] ["abc","abd","dbc"] -> ["abc","bd","db"] ["lorem","ipsum","dolor","sit","amet"] -> ["re","p","d","si","a"] ["abc","acb","bac","bca","cab","cba"] -> ["abc","acb","bac","bca","cab","cba"] 相关:最短识别子字符串 -类似的想法,但涉及更多规则和繁琐的格式。
23 code-golf  string  code-golf  string  code-golf  array-manipulation  code-golf  quine  code-golf  array-manipulation  integer  matrix  classification  code-golf  quine  code-golf  string  matrix  conversion  code-golf  string  number  code-golf  string  code-golf  number  sequence  integer  code-golf  decision-problem  matrix  code-golf  string  code-golf  math  code-golf  math  array-manipulation  combinatorics  code-golf  random  code-golf  code-golf  alphabet  code-golf  python  c  code-golf  base-conversion  code-golf  string  counting  code-challenge  code-generation  fastest-code  code-golf  kolmogorov-complexity  matrix  code-golf  string  code-golf  array-manipulation  decision-problem  random  sudoku  code-golf  chess  code-golf  card-games  encode  code-golf  decision-problem  code-golf  code-golf  math  array-manipulation  matrix 

5
确定有多少个轮子
非数学解释 不论您的背景如何,这都是可以理解的解释。不幸的是,它确实涉及一些数学,但是对于大多数具有中学水平的人来说应该是可以理解的。 指针序列是a(n + 1)= a(na(n))的任何序列。 让我们对这个公式进行一点理解,以了解其含义。这只是意味着要找出我们在上一个术语中看到的序列中的下一个术语,往后退许多步并复制找到的术语。例如,如果到目前为止我们有序列 ... 3 4 4 4 3 ? 我们将向后退3步 3 ... 3 4 4 4 3 ? ^ 使我们的结果4。 现在,通常我们可以在两个方向上都无限的磁带上玩游戏,但是我们也可以在轮子上玩游戏,在经过一定数量的步骤后,我们回到序列的开头。 例如,这是序列的可视化 [1,3,1,3,1,3] 现在我们可能会注意到,轮子中的任何数字x超过轮子中的单元数n,也可能是x mod n,因为围绕轮子的每个完整电路都等于无所事事。因此,我们将只考虑所有成员小于轮子尺寸的轮子。 数学解释 指针序列是a(n + 1)= a(na(n))的任何序列。通常,这些定义是从整数到整数,但是您可能会注意到,此定义中唯一需要的是后继函数和逆函数。由于所有循环组都具有这两者,因此我们实际上可以考虑任何循环组上的指针序列。 如果我们开始寻找这些类型的功能,我们会注意到每个功能都有几个相似的功能。例如,在Z 3上,以下3个都符合我们的要求。 f1 : [1,2,2] f2 : [2,1,2] f3 : [2,2,1] (这里的列表用于表示一个函数,该函数仅通过输入对列表进行索引就可以得到结果) 我们可能会注意到这些功能都是彼此“旋转”的。正式什么我通过旋转的意思是,一个函数b是一个旋转一个 IFF …

27
广义矩阵迹
灵感。 给出(通过任何方式): 两个参数(或包含两个元素的列表的单个参数)黑盒函数,(输入和输出为1、2、3,…)f: ℤ+ × ℤ+ → ℤ+ 具有至少两行两列的严格正整数矩阵 返回矩阵的函数trace。 什么是功能跟踪? 法线矩阵轨迹是矩阵的主要对角线(左上至右下)的总和: [[1,2,3],[4,5,6],[7,8,9]]→交通[1,5,9]→交通1+5+9→交通15 但是我们不求总和,而是f沿对角线应用: [[1,2,3],[4,5,6],[7,8,9]]→交通[1,5,9]→交通f(f(1,5),9)或f(1,f(5,9)) 请说明您使用的是从左到右还是从右到左。 给定的矩阵和所有中间值将严格为您语言的整数域内的正整数。矩阵可以是非正方形的。 例子 f(x,y) = xy,[[1,2,3],[4,5,6],[7,8,9]]→交通1×5×9→交通45 f(x,y) = xy,[[1,2,3],[4,5,6],[7,8,9]]→交通 →交通1591 f(x,y) = x-y,[[4,5,6],[1,2,3]]→交通4-2→交通2 f(x,y) = (x+y)⁄2,[[2,3,4],[5,6,7],[8,9,10]]→ 5或7 f(x,y) = x+2y,[[1,2,3],[4,5,6],[7,8,9]]→ 47或29 f(x,y) = max(x,y),[[1,2,3],[4,5,6],[7,8,9]]→交通max(1,5,9)→交通9 f(x,y) = 2x,[[1,2,3],[4,5,6],[7,8,9]]→ 2或4 f(x,y) = lcm(x,y),[[2,2,2],[2,2,3],[2,3,3],[4,4,4]]→交通lcm(2,2,3)→交通6 参考实施。

11
双射函数ℤ→ℤⁿ
从(所有整数的集合)到(例如,恒等函数)创建双射函数是很简单的。žžž\mathbb{Z}žž\mathbb{Z} 也可以创建从到(所有2对整数的集合;和的笛卡尔积)的双射函数。例如,我们可以使用表示2D平面上整数点的晶格,从0向外绘制螺旋,然后将整数对编码为与该点相交时沿螺旋的距离。Z 2 Z Zžž\mathbb{Z}ž2ž2\mathbb{Z}^2žž\mathbb{Z}žž\mathbb{Z} (使用自然数执行此操作的功能称为配对功能。) 实际上,存在以下一系列双射函数: Fķ(x ):Z → ZķFķ(X):ž→žķf_k(x) : \mathbb{Z} \to \mathbb{Z}^k 挑战 使用双射将整数映射到个整数元组的属性,定义函数(其中是一个正整数)。k f k(x )kFķ(x )Fķ(X)f_k(x)ķķkFķ(x )Fķ(X)f_k(x)ķķk 给定输入和,您的提交应返回。x f k(x )ķķkXXxFķ(x )Fķ(X)f_k(x) 这是代码高尔夫球,因此最短的有效答案(以字节为单位)获胜。 技术指标 只要满足上述条件,就可以使用任何家族。Fķ(x )Fķ(X)f_k(x) 鼓励您添加有关函数系列工作方式的描述,以及用于计算函数反函数的代码段(这不包括在字节数中)。 如果反函数不可计算就可以,只要您可以证明它是双射的即可。 您可以对语言的带符号整数和带符号整数列表使用任何合适的表示形式,但是必须允许对函数的输入是无界的。 您只需要支持最大127 的值。ķķk
23 code-golf  math  number 

10
自然日志上的蚂蚁
这是一个很好的初学者挑战,也是一个很好的时间杀手。 我只说了-自然-对数,因为标题太短了,这与对数无关。 给定2个变量: 蚂蚁数量n。 日志的宽度w。 输出日志宽度w与n蚁(实施例示出w=3,n=6) | | | \O/ \O/ \O/ | | -O- -O- -O- | | /o\ /o\ /o\ | | ^ ^ ^ | | | | \O/ \O/ \O/ | | -O- -O- -O- | | /o\ /o\ /o\ | | ^ ^ ^ | …

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.