Questions tagged «math»

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

5
查找具有最小均值2.0的子矩阵
您会得到一个n×m的整数矩阵,其中n,m> 3。您的任务是找到平均值最低的3×3子矩阵,然后输出该值。 规则和说明: 整数将为非负数 可选的输入和输出格式 输出必须精确到至少2个十进制小数点(如果不是整数) 子矩阵可以由任意列和行组成 测试用例: 1 0 4 0 1 0 1 0 4 0 1 0 4 3 4 3 4 3 1 0 4 0 1 0 Minimum mean: 0 (We have chosen columns 2,4,6 and rows 1,2,4 (1-indexed) ----------------------------- 4 8 9 7 5 …
15 code-golf  math  matrix 

3
找到最短的哥伦布尺子
哥伦布尺子是非负整数的集合,因此集合中没有两对整数间隔相同。 例如,[0, 1, 4, 6]是Golomb标尺,因为此集合中两个整数之间的所有距离都是唯一的: 0, 1 -> distance 1 0, 4 -> distance 4 0, 6 -> distance 6 1, 4 -> distance 3 1, 6 -> distance 5 4, 6 -> distance 2 为了简化此挑战(并且翻译很简单),我们强加了Golomb标尺始终包含数字0(前面的示例中这样做)。 由于该集合的长度4,因此我们说这是一个有序 的Golomb标尺4。此集合(或元素,因为0总是在集合中)中的最大距离是6,因此我们说这是长度的哥伦布尺 6。 你的任务 找到哥伦布统治者为了 50给100有小(含)的长度,你可以找到。您发现的标尺不一定是最佳的(请参见下文)。 最优性 N如果没有其他N长度较小的Golomb直尺,则称Golomb直尺是最优的。 最佳Golomb直尺的订单少于28个,但随着订单的增加,找到和证明最优性变得越来越困难。 因此,不能期望您找到介于50和之间的任何订单的最佳Golomb标尺100(甚至更不可能期望您可以证明它们是最佳的)。 程序的执行没有时间限制。 基准线 下面的列表是使用天真的搜索策略评估的Golomb尺规从50到100(按顺序)的长度列表(感谢@PeterTaylor获得此列表): [4850 …

25
该程序将找到下一个素数
介绍: 您不小心用了一个有趣的设备破坏了时间流,该设备原来是一台时间机器。结果,您被推到了遥远的未来。您意识到计算,处理能力和计算机总体上已经发生了巨大的发展,确切地说,它是无限的。因此,您可以抢购一台具有无限内存和处理能力的计算机。您不知道它如何具有无限的内存和无限的处理能力,但是您只接受它并回到现在。 挑战: 您听说发现当前最大黄金的人2^74,207,281 − 1获得了$ 100.000的报酬。您决定制作一个程序来查找下一个素数,因为您想取回在计算机上花费的钱。您可以制作一个通过输入数字并通过暴力破解或任何其他方法找到下一个质数的数字。 说明: 您有一台假设的机器,具有无限的存储和处理能力。您的程序一定不能受到限制(例如:C#的int可以存储从-2,147,483,648到2,147,483,647),那么您的程序必须能够存储并且可以使用任意数量的任何大小的文件。您拥有无限的资源,因此如果允许,则不必担心是否会耗尽内存。 I / O示例: 输入:当前发现的最大质数,具有22,338,618位数字。 输出:正好是下一个素数 显然,您不必证明它可以工作,因为在物理机上进行计算将花费大量时间。但是,如果将程序转移到具有无限处理能力/内存的虚拟机上,它应该立即进行计算。 找到下一个质数并检查数字是否为质数是两件完全不同的事情
15 code-golf  math  primes 

16
计算威尔逊得分间隔
的威尔逊得分间隔是成功的概率的置信区间的基础上,成功的在一组伯努利试验的比例(一个伯努利试验是其中恰好两个结果是可能的试验:成功或失败)。该间隔由以下公式给出: 公式给出的两个值是间隔的上限和下限。n S和n F分别是成功和失败的次数,n是试验的总数(相当于n S + n F)。z是取决于所需置信度的参数。出于此挑战的目的,将使用z = 1.96(对应于95%的置信区间)1。 给定非负整数n S和n F,输出威尔逊得分区间的边界。 规则 在您的语言的浮点实现限制内,输出必须尽可能精确到真实值,而忽略由于浮点算术错误而引起的任何潜在问题。如果您的语言能够执行任意精度算术,则它必须至少与IEEE 754双精度算术一样精确。 输入将在您的语言的本机整数类型的可表示范围内,而输出将在您的语言的本机浮点类型的可表示范围内。 n将始终为正。 输出的顺序无关紧要。 测试用例 格式: n_s, n_f => lower, upper 0, 1 => 0.0, 0.7934567085261071 1, 0 => 0.20654329147389294, 1.0 1, 1 => 0.09452865480086611, 0.905471345199134 1, 10 => 0.016231752262825982, 0.3773646254862038 10, 1 => 0.6226353745137962, …

16
确定关系是否可传递
挑战说明 让我们从一些定义开始: 一个关系是一组有序的元素对(在这个挑战中,我们将使用整数) 例如,[(1, 2), (5, 1), (-9, 12), (0, 0), (3, 2)]是一个关系。 如果对于任意两对元素,并且在该关系中还存在一对,则该关系称为可传递的,(a, b)(b, c)(a, c) [(1, 2), (2, 4), (6, 5), (1, 4)]是传递的,因为它含有(1, 2)和(2, 4),但(1, 4)为好, [(7, 8), (9, 10), (15, -5)]是传递的,因为没有任何2双 (a, b),(c, d)存在,使得b= c。 [(5, 9), (9, 54), (0, 0)]不传递,因为它包含(5, 9)和(9, 54),但不包含(5, 54) 给定整数对列表,请确定一个关系是否可传递。 输入输出 您将获得任何合理格式的整数对列表。考虑一个关系 …

23
求多项式某个点的变化率
给定多项式和x坐标方程,找到曲线上该x坐标处的点的变化率。 多项式的形式为:ax n + ax n-1 + ... + ax 1 + a,其中a ϵ Q和n ϵW。对于此挑战,如果您不想拥有n也可以为0处理没有x的特殊情况(常数)。 要找到该x坐标处的变化率,我们可以得到多项式的导数并插入x坐标。 输入值 多项式可以采用任何合理的形式,但是您必须明确说明该格式。例如,形式的数组[..[coefficient, exponent]..]是可以接受的。 输出量 给定x坐标处的点的变化率。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。 例子 [[4, 3], [-2, 4], [5, 10]] 19 -> 16134384838410 [[0, 4]] 400 -> 0 [[4, 0], [5,1]] -13 -> 5 [[4.14, 4], [48, 2]] -3 -> …

22
除数不多的除法
写一个程序或函数,它在正整数a,b并c,并打印或返回a/b到c小数位,使用操作+ - * /%[加,减,乘,除,调制]在正整数:您可以使用所有您的语言允许,但不能使用浮点数。a,b,c的范围将是您语言中无符号整数所允许的范围。数字结果将被截断为最后一个要打印的数字(所以没有round)。 这意味着,如果您的语言没有整数类型(仅浮点数),则可以通过将这些浮点数仅用作正整数来参与。本练习的线索是编写仅在[无符号]整数上使用+-* /%运算来找到浮点数中的数字的函数。 例子 print(1,2,1) 会打印 0.5 print(1,2,2) 会打印 0.50 print(13,7,27) 会打印 1.857142857142857142857142857 print(2,3,1) 会打印 0.6 print(4,5,7) 会打印 0.8000000 print(4,5,1) 会打印 0.8 print(9999,23,1) 会打印 434.7 print(12345613,2321,89) 如果您的语言具有32位未签名,将打印 5319.09220163722533390779836277466609220163722533390779836277466609220163722533390779836277466 以字节为单位的最短代码获胜。如果这看起来不清楚,我很抱歉。测试一些与建议不同的输入。

10
可见建筑物
此难题源自CodinGame SamSi的“城市之心”难题。 描述 您决定在n* n瓷砖城市中散步并转到中心瓷砖。所有建筑物都无限小,但是您拥有超强的视野,可以看到一切近在咫尺。 约束条件 n 总是很奇怪 您可以看到没有被其他建筑物直接遮挡的任何建筑物 任务 用标记每个可见的建筑物*。该建筑物是可见的,前提是它没有被完全相同的视线内的另一栋建筑物所阻挡。 换句话说,如果@是原点,则建筑物是可见的,前提是x坐标和y坐标互为质数。 输入和输出示例 输入: 7 输出: ** ** * * * * ******* *@* ******* * * * * ** ** *是一栋可见的建筑物, 是一栋无形的建筑物, @就是您所在的位置。 计分 请记住,这是code-golf,所以以字节数最少的答案为准。 var QUESTION_ID=91394,OVERRIDE_USER=59057;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return …

5
可视化差异金字塔
差异金字塔是一个金字塔,其中每个新对角线是最后一个对角线元素之间的差异的绝对值。例如,如果我们从数组开始 2 5 4 9 3 4 现在,我们将它们排列在对角线列中: 2 5 4 9 3 4 现在,我们填写下一个对角线。此数组的连续元素之间的绝对差异为: 3 1 5 6 1 这就是我们的下一个对角线。 2 3 5 1 4 5 9 6 3 1 4 重复直到金字塔被填满: 2 3 5 2 1 4 2 4 5 9 1 3 1 6 3 0 1 …

14
推导其指数生成函数为正切的序列
几乎每个函数都可以表示为具有无限项的多项式。 例如, e^x = 1 + x + x^2/2! + x^3/3! + x^4/4! + ... 例如, sin(x) = x - x^3/3! + x^5/5! - x^7/7! + ... n第-个项的系数形成一个序列,相应的函数称为生成函数该序列。 的系数 n第-项形成一个序列。 通常,n-th项的分母为n!。因此,我们将系数乘以n!得到另一个序列,该序列的指数生成函数将是原始函数。 例如,其指数生成函数为的序列e^x将为1,1,1,1,...。 例如,其指数生成函数为的序列sin(x)将为0,1,0,-1,0,1,0,-1,...。 任务 您的任务是找到指数生成函数为n的序列的第n个项。tan(x) 测试用例 n result 0 0 1 1 2 0 3 2 4 0 5 16 …

12
多维数据集距离数的稀有度
灵感来自这个 Numberphile进入 背景 整数n的立方距离数在此定义为一组整数,它们是给定x的x³距离。举一个简单的例子,使用和时,立方体距离数为。n=100x=2{92,108} 只需更改x即可将其扩展为更大的集合。使用x ∈ {1,2,3,4}和相同n=100,我们得到结果集{36,73,92,99,101,108,127,164}。 让我们来定义CD(N,X)的所有整数的集合n ± z³带z ∈ {1,2,3,...,x}。 现在我们可以集中讨论这些立方距离数字的一些特殊属性。在数字可以具有的许多特殊属性中,我们在此处感兴趣的两个属性是素数和素数除数。 对于上面的示例CD(100,4),请注意它们73, 101, 127都是素数。如果将它们从集合中删除,则剩下{36,92,99,108,164}。这些数字的所有主除数都是(按顺序){2,2,3,3,2,2,23,3,3,11,2,2,3,3,3,2,2,41},这意味着我们有5个不同的主除数{2,3,23,11,41}。因此,我们可以定义CD(100,4)具有ravenity 1中5。 这里的挑战是以最小的字节编写一个函数或程序,以输出给定输入的泛滥。 输入值 两个正整数n和x,采用任何方便的格式。 输出量 当用CD(n,x)计算时,一个整数,描述两个输入数字的奇异性。 规则 输入/输出可以通过任何合适的方法。 适用标准漏洞限制。 为了便于计算,您可以假设输入数据将使CD(n,x)在集合中仅具有正数(即,没有CD(n,x)会具有负数或零)。 该函数或程序应该能够处理输入数字,以便n + x³适合您语言的本机整数数据类型。例如,对于32位带符号整数类型,所有输入数字n + x³ < 2147483648都可以。 例子 n,x - output 2,1 - 0 (since CD(2,1)={1,3}, distinct prime divisors={}, ravenity=0) 5,1 - 2 100,4 …

5
离外部有多远?
取一个2D空间区域,该区域划分为以轴对齐的单位正方形元素,其中心以整数间隔对齐。如果一条边由两个元素共享,则称该边为内部,否则为外部边。 您的目标是找到从每个元素的中心开始(即traversal distance或distance简称为)到达外部边缘必须经过的最小数量的相邻元素。您只能穿过一条边缘(即没有切角/对角运动)。注意,“外部元素”(具有至少一个外部边缘的元素)被认为需要遍历0相邻元素才能到达外部边缘。 输入值 输入是一个非负整数对坐标的列表,表示所有元素中心的(x,y)。假定不存在重叠元素(即x / y对唯一标识一个元素)。您可能不假定有关元素输入顺序的任何信息。 欢迎您将输入的原点转换到任何位置(例如0,0或1,1,等等)。 您可以假定所有输入元素都已连接,或者换句话说,可以使用上述规则从任何一个元素移动到任何其他元素。注意,这并不意味着2D区域只是简单连接。里面可能有孔。 示例:以下为无效输入。 0,0 2,0 不需要错误检查。 输入可以来自任何来源(文件,stdio,函数参数等) 输出量 输出应该是标识每个元素的坐标列表,并遍历相应的整数距离以到达边缘。输出可以按所需的任何元素顺序进行(例如,您不必按与输入相同的顺序输出元素)。 输出可以是任何源(文件,stdio,函数返回值等) 任何与元素的坐标与其外部距离匹配的输出都可以,例如,所有这些都可以: x,y: distance ... [((x,y), distance), ...] [(x,y,distance), ...] 例子 文本示例输入的格式为x,y,每行一个元素;欢迎您将其重塑为方便的输入格式(请参阅输入格式规则)。 文本示例输出的格式为x,y: distance,每行一个元素;同样,欢迎您将其重塑为方便的输出格式(请参见输出格式规则)。 图形数字的左下边界为(0,0),内部数字表示到达外部边缘的预期最小距离。请注意,这些数字仅用于演示目的;您的程序不需要输出这些。 例子1 输入: 1,0 3,0 0,1 1,2 1,1 2,1 4,3 3,1 2,2 2,3 3,2 3,3 输出: 1,0: 0 3,0: 0 …

1
同色算术级数
范德瓦尔登定理说 对于任何给定的正整数r和k,都有一些数字N,如果这些整数{1, 2, ..., N}是有色的,每一个都具有一种r 不同的颜色,则k在算术级数中至少存在所有相同颜色的整数。最少的N是Van der Waerden数W(r, k)。 您的目标是给W(r, k)定正整数输入r和来计算范德瓦尔登数k。最少的字节数获胜。 请注意,此功能增长非常快,并且计算耗时。甚至W(4, 4)是未知数。您可能会假设您的代码在资源(时间,内存,堆栈深度等)无限制的理想计算机上运行。理论上,即使对于未知答案的值,您的代码也必须给出正确的答案。 不允许使用计算此功能的内置程序。 例 对于r = 2长度的颜色和渐变k = 3,存在8避免这种渐变的长度序列,即3相同颜色的等距元素: B R R B B R R B 但是,没有这样的长度9序列W(2, 3) == 9。例如, R B B R B R R B R ^ ^ ^ 包含所示的长度3相同颜色的算术级数。 测试用例 您可能只能测试小案例。 +-----+-----+-----+-----+-----+-----+------+ | | …

3
斐波那契的六进制
莱昂纳多·达·皮萨诺( Leonardo da Pisano)又名斐波那契( Fibonacci)在将印度-阿拉伯数字系统引入欧洲方面发挥了作用。在此之前,那里的数学家使用罗马数字以60为底数。 例如,两个的平方根可以近似为:一和二十四分之六十和五十一分之三千六百六十,写为:i xxiv li,其缩放比例取决于上下文。当时,“虚无”是已知的(即零),但在此数字系统中没有标准表示形式。 如果斐波那契忽略了他在旅途中遇到的这些新的十进制数字,他肯定会解决当前系统中的缺陷。这个改进的系统称为斐波那契(Fibonacci)的sexagesimals。 您的任务是编写一个程序,函数或代码片段,该片段采用ASCII或二进制格式的浮点数,并以60个基数罗马数字输出。输入可以是文件,控制台,命令行或函数参数,输出可以是文件或控制台,以最简单的为准。 输出可以是大写或小写,并且必须包括以下改进: 使用n或N表示空值,表示某个地点没有值,即 “零”(系统存在问题) 使用ë或ë以指示等对应于所述六十进制点(与系统的另一个问题) 使用中间的点·或星号*分隔罗马数字组(但系统还有另一个问题) 假设输入将是浮点数,尾数不大于lix·lix·lix·lix·lix。小于n·e·n·n·n·n·i的分数可以忽略。因此,如果输入具有这些限制,则最多可以输出十组带有一个e的罗马数字。 小于i的数字必须以n开头,以确保上下文清晰。 一些示例:input→ 输出 0→ n 1→ 我 60→ 我 0.1→ n·e·vi 3600→ i·n·n 10.5→ x·e·xxx 16777215→ i·xvii·xl·xx·xv 3.1415926536→ iii·e·viii·xxix·xliv·n·xlvii 输出必须避免在输出的尾数部分中不必要的前导n·,孤立的e或末尾的n。因此,例如,n·n·n·n·i,i·e和i·e·n·n·n·n·n是输入的不正确输出1。 输出中正负n·e·n·n·n·n·i的差在允许范围内且可以接受。 输入是您选择的语言中的任何合法浮点,因此只要输入不超出上述指定范围,就可以包含正或负指数。 最后,罗马数字内置插件是不允许的!

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->"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 

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.