Questions tagged «math»

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

6
精确传输Pi ...
继Pi的蒙特卡洛估计器之后,这一挑战是为常数Pi生成最短的代码。除了此处,您的代码必须永远输出pi的连续数字。 这是代码高尔夫,因此最短的提交(以字节为单位)获胜,只是它必须在合理的PC上在不到10秒的时间内输出前10,000位数字,并且永远不能终止。 Pi或Trig函数不能使用任何内置函数。 删除了对代码大小的硬限制。
11 code-golf  math  pi 

3
解决2x2特征系统
对于那些具有线性代数背景的人来说,挑战就这么简单:确定给定复数2x2矩阵的特征值和特征向量。您可能会跳过I / O详细信息等的挑战。对于那些需要对本征系统进行一些复习的人,请继续阅读。 背景 矩阵A的特征方程定义为 det| A - λI | = 0 其中λ是复数(标量)参数,I是单位矩阵,det | ... | 是决定因素。左侧求值为λ的多项式,即特征多项式,在2x2矩阵的情况下,该多项式是二次的。这个特征方程的解决方案是特征值的甲,我们将表示为λ 1和λ 2。 现在,特征向量 v 我的一个满足 A vi = λi vi 对于每一个λ 我,这给你两个方程的两个未知数的系统(的成分v 我),它可以很容易地解决。您会注意到系统实际上是未指定的,特征向量的大小不是由等式确定的。通常,我们将希望对特征向量进行归一化,即√(| x | 2 + | y | 2)= 1,其中x和y是向量分量,| x |。2是X乘以其复共轭。 注意,特征值可以是简并的,即,λ 1 =λ 2。在这种情况下,您可能无法满足具有两个线性独立特征向量的单一方程组。 挑战 给定具有复杂元素的2x2矩阵,请确定其两个(可能相同)特征值和每个特征值的归一化特征向量。结果数字必须精确到至少3个(十进制)有效数字。您可以假定任何矩阵元素的实部和虚部都在[-1,1]范围内。 您可以编写函数或程序,通过STDIN,命令行参数,提示或函数参数进行输入。您可以将结果输出到STDOUT,对话框或作为函数返回值。 您可以使用任何方便(但明确)的字符串或列表格式进行输入和输出。您还可以在成对的浮点数或复杂类型之间进行选择,以表示各个数字。 您不得使用内置函数来求解本征系统(如Mathematica …

10
斐波那契多米诺骨牌
有经典的组合的结果,一个办法瓦数2*n由带1*2多米诺骨牌是第n 个 Fibonacci数。您的目标是打印给定的所有拼贴n,并用虚线和垂直线绘制,例如以下8个拼贴n=5: |———— |———— ——|—— ——|—— |||—— |||—— ————| ————| ||——| ||——| |——|| |——|| ——||| ——||| ||||| ||||| 您将提供一个程序或命名函数n作为输入并打印所需的输出。最少的字节数获胜。 输入值 通过STDIN或功能输入n之间的数字1(10含)。 输出量 打印2*n水平绘制的每个可能的多米诺骨牌瓷砖。平铺可以以任何顺序进行,但每个平铺应恰好出现一次。它们必须用空白行分隔。 垂直多米诺骨牌由两个垂直条(|)组成,水平多米诺骨牌由两个破折号(—)组成。您可以使用连字符(-)代替破折号以保持ASCII。 只要打印输出看起来相同,您就可以对空格进行任何操作。

6
给定r和n,找到x的前n个数字,其中x的第一个数字移动到最后一个给出x / r = y
目的 给定输入r并n找到第一个n自然数,x这样,如果我们将第一个数字旋转到最后一位,就可以得到x/r。 您可以假设2 <= r <= 9和1 <= n <= 65535。 您可以编写一个程序,该程序从stdin或命令行参数获取输入。或者您可以编写一个以r和n作为参数的函数。但是,输出应为stdout。输出应为每个值的一行x,格式为x/r=y,按递增顺序x。 您的解决方案必须能够在一台合理的台式计算机上在一分钟内处理所有有效案件。 测试用例 输入:4 5 输出: 102564/4=25641 205128/4=51282 307692/4=76923 410256/4=102564 512820/4=128205 输入:5 1 输出:714285/5=142857 这是代码高尔夫球,因此最少字节获胜。从现在开始(2014-09-19)4周将接受获奖答案。 这个问题的功劳归我的同事,他允许我在这里发布这个问题:)

2
X大于3,且X和Y之间至少相差2
我试图打败一些C ++。是否可以使这种情况更短? X > 3 & X - Y > 1 (当然,除了删除空白。) 所以,X至少4,但X >= Y + 2。 X和Y是[0,5]间隔中的整数。 我试图找到一些按位公式,但失败了。
11 code-golf  number  tips  c++  code-golf  popularity-contest  obfuscation  code-golf  c  code-golf  board-game  hexagonal-grid  code-golf  game  grid  code-golf  number  permutations  popularity-contest  math  graphical-output  number-theory  king-of-the-hill  code-challenge  compression  code-challenge  fastest-code  code-golf  math  ascii-art  animation  code-golf  popularity-contest  generation  counting  fastest-code  fastest-code  popularity-contest  image-processing  king-of-the-hill  code-golf  conversion  binary-tree  code-golf  math  number  rational-numbers  division  code-golf  restricted-source  hashing  atomic-code-golf  logic-gates  code-golf  function  code-challenge  puzzle-solver  ai-player  test-battery  popularity-contest  music  compression  code-golf  number  stack  atomic-code-golf  logic-gates  ascii-art  popularity-contest  code-golf  date  grid  code-challenge  game  code-golf  parsing  code-golf  math  geometry  sequence  popularity-contest  code-trolling  code-golf  string  restricted-source  code-golf  quine  king-of-the-hill  code-golf  math  code-golf  simulation  code-golf  ascii-art  code-challenge  sorting  optimization 

5
欧拉前线9
欧拉计划(Project Euler)是另一个有趣的编程挑战网站,可以进行比赛(好玩)。早期的问题起初很温和,但随后的困难却激增至最初的一百多个左右。前几个问题在查找素数,倍数和因数之间具有一些共性,因此可能会有一些有趣的代码微重用的机会可以使用。 因此,编写一个无需先验知识即可解决前9个问题中的任何一个的程序。 用户通过调用时的参数或运行时的标准输入,由用户选择ASCII(1到9)(包括ASCII)从1到9。(您可以计算所有答案,但只能显示一个。) 正确答案必须使用ASCII以10为底的新行打印。 程序应在不到一分钟的时间内执行(建议使用PE)。 通过“无先验知识”,我的意思是你的代码必须获得答案,而无需外部资源‡。像这样的程序将被认为是无效的(不过,如果我没有打错,还是正确的): print[233168,4613732,6857,906609,232792560,25164150,104743,40824,31875000][input()-1] ‡对于问题8(涉及1000位数字),您可以从外部文件中读取该数字,只需指定其存储方式(例如,二进制,文本,标头,导入的模块)和/或将其包含在您的答案中(不计入主程序的长度)。 分数按字节计。 2周后,字节计数的领导者获得了15个Unicorn Points™奖励。
11 code-golf  math 

23
仅使用加法和减法计算所有x的平方
目标是计算所有平方,直到x加减乘。 规则: 该代码必须是一个函数,该函数使用要生成的平方总数,并返回包含所有这些平方的数组。 您不能使用字符串,结构,乘法,除法或内置函数来计算平方。 您只能使用数组,整数(整数),加法,减法。禁止其他运算符! 这是一个代码问题,因此以字节为单位的最短代码胜出!
11 code-golf  math  number 

2
实施超级优化器进行添加
任务是编写可为位和找到小的逻辑公式的代码。 总体挑战是您的代码要找到最小的命题逻辑公式,以检查y二进制0/1变量的总和是否等于某个值x。让我们将变量称为x1,x2,x3,x4等。您的表达式应等于和。也就是说,当且仅当和等于x时,逻辑公式才应为真。 这是一个幼稚的方法。假设y = 15且x =5。选择所有3003种不同的方式来选择5个变量,并为每个变量创建一个新子句,其中包含这些变量的AND和其余变量的否定AND。您最终得到3003个子句,每个子句的长度恰好为15,总费用为45054。 例如,您的答案应该是可以粘贴到python中的那种逻辑表达式,以便我可以对其进行测试。如果两个人得到相同大小的表达式,则运行速度最快的代码将获胜。 您可以在解决方案中引入新变量。因此,在这种情况下,您的逻辑公式由y个二进制变量,x和一些新变量组成。当且仅当y变量的总和等于x时,整个公式才是可满足的。 首先,有些人可能想从y = 5变量加到x = 2开始。天真的方法将产生50的成本。 该代码应将两个值y和x作为输入,并输出公式及其大小作为输出。解决方案的成本只是其输出中变量的原始计数。所以(a or b) and (!a or c) 算作4只允许运营商and,or和not。 更新事实证明,至少在理论上,当x = 1时,有一个聪明的方法可以解决这个问题。

6
仅使用* 3和/ 2运算将1转换为任何正整数
通过从1开始并应用一系列操作可获得任何正整数,每个操作要么是“乘以3”,要么是“除以2,则舍弃任何余数”。 示例(用f表示* 3,用g表示/ 2): 4 = 1 *3 *3 /2 = 1 ffg 6 = 1 ffggf = 1 fffgg 21 = 1 fffgfgfgggf 编写一个具有以下行为的程序: 输入:通过stdin或硬编码的任何正整数。(如果是硬编码,则输入数字将从程序长度中排除。) 输出:一串f和g的字符串<input> = 1 <string>(例如示例中)。这样的反序字符串也是可以接受的。注意:输出仅包含f和g,或者为空。 当输入41时,获胜者是程序加输出字节最少的条目。

9
在Stern-Brocot树中找到分数的位置
所述的Stern-Brocot树是级分的二进制树,其中每个级分是通过将两个级分在上面的水平相邻它的分子和分母获取。 它以“端点分数” 开头0/1并1/0作为“端点分数”生成,然后通过将这些分数的分子和分母加在一起,在每个连续的分数对之间放置一个分数进行迭代,如下所示: 0. 0/1 1/0 1. 0/1 1/1 1/0 2. 0/1 1/2 1/1 2/1 1/0 3. 0/1 1/3 1/2 2/3 1/1 3/2 2/1 3/1 1/0 4. 0/1 1/4 1/3 2/5 1/2 3/5 2/3 3/4 1/1 4/3 3/2 5/3 2/1 5/2 3/1 4/1 1/0 在船尾-Brocot树(的每次迭代n次迭代),有2^n + 1该序列中的元素,这是我们可以从归于一小部分0/2^n到2^n/2^n。每次新迭代都只是在每对连续分数之间插入一个分数“ halfway”。 这使得Stern-Brocot树在正有理数与0到1之间的二进制分数之间是一对一的映射,从而也证明了这两个集合具有相同的基数。 您的任务是编写一个程序或函数,给定最低有理数的分子和分母,确定与该分数在Stern-Brocot树中的位置相对应的二进制分数。 …

1
通过使用给定的数字和算术运算符列表生成数字
系统会为您提供数字列表L = [17, 5, 9, 17, 59, 14],一包运算符O = {+:7, -:3, *:5, /:1}和一个数字N = 569。 任务 输出一个方程式,该方程式L的左侧使用所有数字,而右侧使用仅数字N。如果不可能,则输出False。解决方案示例: 59*(17-5)-9*17+14 = 569 局限和澄清 您不能连接数字([13,37]不能用作1337) 只会出现自然数和零L。 顺序L无关紧要。 您必须使用中的所有数字L。 只有运营商+,-,*,/会出现O。 O可以拥有比您所需更多的运算符,但至少|L|-1运算符 您最多可以多次使用每个运算符,直到的值O。 其中的所有四个运算O都是标准的数学运算;特别/是具有精确分数的正态除法。 点数 点越少越好 代码的每个字符都给你一点 您必须提供易于阅读的非公开版本。 背景 一个类似的问题,有人问堆栈溢出。我认为这可能是一个有趣的代码高尔夫挑战。 计算复杂度 就像彼得·泰勒(Peter Taylor)在评论中说的那样,您可以使用以下方法求解子集和: 您有一个子集总和的实例(因此,有一组S和一个整数x) L:= S + [0,...,0](| S |乘以零),N:= x,O:= {+:| S | -1,*:| …

22
查找投票的C因子
在此挑战中,您将通过找出一个称为C因子的数字来确定给定其他投票的情况下投票的争议性。你问什么是C因子? 好吧,假设您在一次选举中获得了多张选票。我们将使用1和0接受挑战的缘故代表在选举中两个不同的候选人。这是我们的示例选举中的十票: 0110111011 现在,假设我们想找到候选人的任何投票的C因子0。我们可以使用以下功能来做到这一点: f(o,v)=abs(o−mean(v))f(o,v)=abs(o−mean(v)) f(o,v) = abs(o-mean(v)) 在fff,o是我们要确定其C因子v的投票,并且是一组投票。因此,使用我们的函数,获取候选人的任何投票的C因子0: f(0,[0,1,1,0,1,1,1,0,1,1])=0.7f(0,[0,1,1,0,1,1,1,0,1,1])=0.7 f(0, [0,1,1,0,1,1,1,0,1,1]) = 0.7 较低的C因数表明,该投票与其他投票相比没有争议。因此,对候选人的投票0与对其他候选人的投票相比,与其他投票的区别更大1。相比之下,候选1票的C因子为0.30.30.3,因此争议较少,因为它更像其他票。 挑战 给定投票结果,编写函数f(o,v)f(o,v)f(o,v)确定投票的C因子。ov o必须是0或的整数1。 v 必须是包含零和一的任意长度的数组(或类似的容器类型,取决于语言规范)。 给定功能参数的情况下,该函数应使用上面的公式或修改的方法将结果C因子返回或打印到控制台。 祝好运!最少的字节数获胜(五天内选择获胜者)。

6
哪个真正大的数字更大?
对于喜欢更具挑战性难题的人来说,这个问题很棘手(特别是比哪个更大更难?)。 输入值 整数a1,a2,a3,a4,a5,b1,b2,b3,b4,b5均在1到10的范围内。 输出量 True if a1^(a2^(a3^(a4^a5))) > b1^(b2^(b3^(b4^b5))) and False otherwise. ^是这个问题的幂。 规则 这是代码高尔夫球。对于TIO上的任何有效输入,您的代码必须在10秒内正确终止。如果您的语言不在TIO上,则代码应在计算机上在10秒内完成。 您可以输出True或True,False和False。 测试用例 回想一下,根据指数规则,a1 ^(a2 ^(a3 ^(a4 ^ a5)))== a1 ^ a2 ^ a3 ^ a4 ^ a5。 10^10^10^10^10 > 10^10^10^10^9 1^2^3^4^5 < 5^4^3^2^1 2^2^2^2^3 > 10^4^3^2^2 6^7^8^9^10 is not bigger than 6^7^8^9^10 10^6^4^2^2 < 10^6^2^4^2 …

10
在任何基础上进行Fizzbuzz
挑战 输入: 2到62(含)之间的整数bbb。 输出: 使用任何合理的数字表示形式,从111到以b为底的5000105000105000_{10}的等值数。bbb 然而: 如果该数量是由整除⌊b÷2+1⌋⌊b÷2+1⌋\lfloor b÷2+1\rfloor(四舍五入,例如基体7将是7/2 = 3.5,3.5 + 1 = 4.5,四舍五入到4),则输出'嘶嘶声',而不是数。 如果该数量是由整除⌈b÷3+3⌉⌈b÷3+3⌉\lceil b÷3+3\rceil(四舍五入,例如11/3 = 3.666,3.666 + 3 = 6.666,四舍五入到7),则输出'巴兹'。 您可能会猜到,如果您的电话号码可被两者整除,则输出“ Fizzbuzz”。 例子 使用[0-9],[AZ]和[az]作为数字 (为了使示例简短,我仅包括前10个值-通常每个序列中有4990个以上的项目) 输入: 10(因此“ Fizz” = 6,“ Buzz” = 7) 输出: 1,2,3,4,4,嘶嘶声,嗡嗡声,8,9,10 输入: 2(因此'Fizz'= 2和'Buzz'= 4) 输出: 1,Fizz,11,Fizzbuzz,101,Fizz,111,Fizzbuzz,1001,Fizz (我已包含以下内容的前50个值,以更好地展示它们的工作原理) 输入: 55(因此'Fizz'= 2810281028_{10} = s55s55s_{55}和'Buzz'= 2210221022_{10} …
10 code-golf  math  binary 

22
列表本身的n次的笛卡尔积
当给定一个值列表和一个正整数时n,您的代码应输出该列表的笛卡尔乘积及其n时间。 例如,使用伪代码,您的函数可能类似于: for x1 in list: for x2 in list: for x3 in list: ... for xn in list: print x1, x2, x3, ... , xn 例: repeated_cart([1,2,3], 3) 1 1 1 1 1 2 1 1 3 1 2 1 1 2 2 1 2 3 1 3 1 …

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.