Questions tagged «math»

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

3
超音波多米诺瓷砖
任务 编写一个程序,从STDIN或作为命令行参数读取三个整数m,n,打印出所有可能的矩形为m×n且由2×1和1×2 Domino组成的平铺,最后打印有效平铺的数量。 单个平铺的多米诺骨牌必须用两个破折号(-)表示2×1,用两个竖线(|)表示1×2的多米诺骨牌。每个平铺(包括最后一个平铺)都必须紧跟换行符。 出于评分目的,您还必须接受来自STDIN的标志或作为命令行参数的标志,该标志使您的程序仅打印有效拼贴的数量,而不打印拼贴本身。 您的程序不得超过1024个字节。它必须适用于所有输入,使得m×n≤64。 (灵感来自于打印所有4x6矩形的多米诺骨牌。) 例 $ sdt 4 2 ---- ---- ||-- ||-- |--| |--| --|| --|| |||| |||| 5 $ sdt 4 2 scoring 5 计分 您的分数取决于设置了标志的输入8 8的程序执行时间。 为了使此代码成为最快的代码,而不是最快的计算机挑战,我将在自己的计算机上运行所有提交的文件(英特尔酷睿i7-3770、16 GiB PC3-12800 RAM)以确定官方成绩。 请留下有关如何编译和/或执行代码的详细说明。如果您需要使用特定版本的语言的编译器/解释器,请对此声明。 如果发生以下情况,我保留不对提交内容进行评分的权利: 我的操作系统(Fedora 21,64位)没有免费的(如在啤酒中)编译器/解释器。 尽管我们竭尽全力,但是您的代码无法正常工作和/或在我的计算机上产生不正确的输出。 编译或执行需要一个多小时。 您的代码或唯一可用的编译器/解释器包含对的系统调用rm -rf ~或同样令人讨厌的东西。 排行榜 我对所有提交进行了重新评分,以10,000次迭代进行编译,并以100至10,000次迭代执行(取决于代码的速度),并在循环中运行编译和执行(取决于代码的速度)并计算平均值。 结果是: User Compiler …

1
坏消息,有人
在《 Futurama》情节中,剧组的Benda囚犯成员相互交换尸体,但要注意的是,没有一对尸体可以交换思想。 挑战 编写一个程序或函数,该程序或函数接受已经发生的有效的身心交换,并输出一组合法的交换,这些交换将使每个头脑返回其原始身体。这些身心集合的标识符必须是不包含换行符的字符串。您最多可以添加两个(没有明显名字的)人,他们之前没有与输入组的交换。(证明您最多只需要2个其他实体),但是,您必须添加解决问题所需的最少人数。 输入和输出可以采用任何清楚的形式,但是,任何其他信息都不能存储在其中。您可能会认为它始终有效。这是代码高尔夫,所以获胜者是字节最少的提交。 例子 [('A','B'),('C','D')] -> [('A','C'),('B','D'),('A','D'),('B','C')] ['A','B'] -> ['C','D','A','C','B','D','A','D','B','C'] [('A','B'),('C','D'),('A','C'),('A','D')] -> [('B', 'E'), ('A', 'E'), ('C', 'B'), ('C', 'E')] "A\nB\nC\nD\n" -> "A\nC\nB\nD\nA\nD\nB\nC\n" 节目中的一个: [("Amy","Hubert"),("Bender","Amy"),("Hubert","Turanga"),("Amy","Wash Bucket"),("Wash Bucket","Nikolai"),("Phillip","John"),("Hermes","Turanga")] 演出的解决方案,如下所示,是无效的: [("Clyde","Phillip"),("Ethan","John"),("Clyde","John"),("Ethan",Phillip"),("Clyde","Hubert"),("Ethan","Wash Bucket"),("Clyde","Leela"),("Ethan","Nikolai"),("Clyde","Hermes"),("Ethan","Bender"),("Clyde","Amy"),("Ethan","Hubert"),("Clyde","Wash Bucket")] 这是无效的,因为Ery和Clyde是不必要的,因为Fry Phillip,Zoidberg John和Hermes Hermes 很少使用该机器。下面提供了针对这种情况的有效解决方案: [("Philip","Hubert"),("John","Wash Bucket"),("Philip","Turanga"),("John","Nikolai"),("Philip","Hermes"),("John","Bender"),("Philip","Amy"),("John","Hubert"),("Philip","Wash Bucket")] 请注意,对于任何有效输入,显然都有许多可能的答案。任何有效。
10 code-golf  math 

10
验证魔术广场
甲幻方是与侧N组成的不同的正整数1,2的编号的正方形阵列,...,ñ ²布置成使得所述的总和Ñ号码以任何水平,垂直,或主对角线行总是相同的数字,称为魔术常数。 您的程序必须通过std-in输入一个数字,该数字指定正方形的边长,然后指定正方形中的数字。没有号码可多次使用,没有数量大于ň可以使用²,和所有的数字必须大于0,程序必须确定数量的该组合是否是幻方。
10 code-golf  math 

4
字谜代码
让我们再试一次。 竞赛的目的是制作两段彼此相同的字母(彼此必须包含不同顺序的相同字节)的代码,它们将执行以下任务: 必须测试输入的数字是happy还是prime,并测试数字是否是数字(例如,7必须输出happy prime和4必须输出sad non-prime)。 另一个必须以字为单位输出其代码大小(以字节为单位)(输出60字节的程序,输出sixty39字节的程序thirty-nine)。 如果规则需要任何澄清,请随时告诉我。 这是一场代码高尔夫比赛,因此最短的程序将获胜!

10
计算数字的超级根
在数学中,四位运算是幂运算后的下一个超算子,并且定义为迭代幂运算。 另外(一个成功ñ次) 乘法(一个加入到本身,Ñ次) 幂(一乘以本身,Ñ次) 滴定(一次取幂,n次) 四元数的逆关系称为超根和超对数。你的任务是写,鉴于A和B,打印出B中的程序ND A的阶超根 例如: 如果A = 65,536和B = 4则打印2 如果A = 7,625,597,484,987和B = 3则打印3 A和B是正整数,结果必须是小数点后5位数精度的浮点数。结果属于真实域。 注意,超级根可能有许多解决方案。
10 code-golf  math 

5
生成Skolem序列
Skolem序列 甲斯科伦序列是序列2n号,其中每个数字i之间1和n恰好出现两次,两次出现之间的距离i是准确i的步骤。以下是Skolem序列的一些示例: 1 1 1 1 4 2 3 2 4 3 16 13 15 12 14 4 7 3 11 4 3 9 10 7 13 12 16 15 14 11 9 8 10 2 6 2 5 1 1 8 6 5 以下序列不是 Skolem序列: 1 2 1 2 …

3
罗塞塔石碑挑战:画一个盒子
Rosetta Stone挑战赛的目标是用尽可能多的语言编写解决方案。炫耀您的编程多语言! 挑战 您面临的挑战是要实现一种程序,该程序将以尽可能多的编程语言输入数字列表并输出数据的箱形图。箱形图将显示数据中的四分位数和离群值,甚至具有比例。您可以使用您的语言具有的任何标准库函数,因为这主要是语言展示。 什么是“箱形图”? 一个箱形图的图表数据的一种方式。箱形图具有一些基本功能。第一个特征是一个盒子,盒子的任一侧位于数据的第一和第三四分位数处。在箱形图的中心下方有一条线,给出了中位数。在箱形图的两端,都有“晶须”帮助显示数据的方差。晶须从盒子延伸到数据集中的最低和最高点,不包括异常值。离群值绘制为单个点。 首先,取数据的中位数。然后,取所有严格小于中位数的数据点,并计算该集合的中位数,使其成为第一个四分位数(Q1)。取所有严格大于中位数的数据点,然后计算该集合的中位数成为第三个四分位数(Q3)。找到的值R = 1.5*(Q3 - Q1)。减去Q1 - R这个的任何数字都是离群值。任何大于Q3 + R异常值的数字。取所有不是异常值的数据点的集合,该集合的最小值和最大值确定两个晶须的末端。 输入值 输入将以数字开头n=。然后会有n数字,每行一个。所有数字都是0到63之间的整数,包括0和63。 n=8 29 1 22 18 12 16 16 22 输出量 输出将是箱形图的再现。绘制图的一种可能方法是将其绘制为ASCII。您可以用ASCII以外的其他方式来绘制箱形图,但是主要的要求是绘制足够大的图形,以便可以分辨出重要特征的确切位置。箱形图应有一个比例尺,由大约5-10个等间距的数字组成。这是上述数据的一个示例图: +--+----+ | | | X +-+ | +------+ | | | +--+----+ 0 0 1 1 2 2 3 0 5 0 …

3
计算电阻(书呆子狙击)
下午好,高尔夫球手, 我们今天的挑战是受XKCD漫画356和370启发的。我们将编写一个程序来计算一组电阻的电阻。预先警告说,这几乎足以应付代码挑战,但是我认为以高尔夫格式编写稍微复杂一些的程序是有一定道理的。最少的字符获胜。 计算电阻取决于以下两个公式: 如果电阻是串联的,则电阻是每个电阻的电阻之和 如果电阻是并联的,则电阻是每个电阻的电阻之和的倒数。 所以-例如: 您面临的挑战是,以最少的字符数来计算一组最多64个电阻器的电阻。对于复杂性,尤其是输入规则,我深表歉意。我试图以每种语言都可以使用的方式定义它们。 每个电阻将连接到2个或更多其他电阻。 保证输入有效,只有一个入口和一个出口点,它们将连接 网络将是串并联的,以防止需要比所展示的更多的数学运算 输入将通过文件,参数或标准输入,这取决于您的语言。 输入将由一系列换行符或正斜杠分隔的语句组成,这些语句由电阻的电阻的整数组成,并且用空格分隔电阻的一侧所连接的电阻的ID。 第一个电阻器的ID将为1,对于每个后续电阻器递增1。 开始将始终具有0的ID 最终电阻将始终具有0欧姆的电阻,并且仅在其线路中定义了连接 例如: 可以表示为 3 0 6 1 1 0 5 0 0 2 3 4 输出可以是stdout或文件。它可以通过以下方式之一表示: 一个数字,至少要保留2个小数位,后跟换行符 由整数(分子),正斜杠和另一个整数(分母)组成的分数,后跟换行符。分数不必为最低形式-例如4/4或10/8是可接受的。分数必须在1/100之内。完全准确没有任何好处-这是为了使没有定点或浮点运算的语言能够竞争而提供的拐杖。 我希望能涵盖所有问题。祝好运!

6
打印音乐片段中的间隔大小
背景 在西方音乐中,每个音符都有一个分配的名称。在每个八度音程中,按以下顺序排列十二个唯一音符:“ CC#/ Db DD#/ Eb EFF#/ Gb GG#/ Ab AA#/ Bb B C”,其中最后一个C比第一个高八度。 为了区分不同八度音符之间的区别,在音符名称的末尾附加了一个数字(此挑战仅限于一个数字)。因此,C5是比C4高八度的音符。Bb6高于B5。 一个重要的事实是,B5和C6是彼此相邻的音符,而C0和B9是最低和最高音符。 在任何两个音符之间,存在一个距离,即它们之间的半音数量。Bb4是B4之下的一个半音,它本身是C5之下的一个半音。一个八度音阶中有十二个半音,因此Bb4与A#3的距离为12,因为它比A#3高八度音阶(请注意,单个音符最多可以具有两个名称)。 挑战 您面临的挑战是编写尽可能最短的程序,该程序可以从STDIN中获取音符列表,并将间隔更改列表打印到STDOUT。 输入内容将是音符的空格分隔列表。每个音符将由一个大写字母AG,一个可选的b或#符号以及一个数字组成。您将不必处理E#/ Fb或B#/ Cb。输入示例: C4 D4 E4 F4 G4 A4 B4 C5 C4 输出将是一个用空格分隔的整数列表,这些整数表示每个连续音符之间的距离,并始终以+或-作为前缀,以显示该音符相对于前一个音符是升还是降。输出的数字总是比输入的音符少一个。上述输入的示例输出: +2 +2 +1 +2 +2 +2 +1 -12 其他一些示例输入: E5 D#5 E5 B4 E5 F#5 E5 B4 C0 …

13
列表操作
受到这个问题的启发。 给定一个包含数字的列表,打印: 列表中数字的总和与乘积 平均值和中位数 列表中每个词之间的差异(例如[1,2,3] -> [1,1]: 1+1=2, 2+1=3) 列表,升序排列 列表的最小值和最大值 列表的标准偏差 以供参考: 标准偏差 其中μ是平均平均值,x i是i列表中的第th项,是列表N的长度。 最短的代码获胜。祝好运!

5
第n个具有n个不同素数的数
创建计算A073329的最短函数,程序或表达式,即a(n)是具有n个不同素数的第n个数。输入是要返回的序列中元素的数量。。我不关心整数精度。我只想要算法。对于不支持任意大整数的语言,我们只是假装它们支持。0 < n 您可以通过上面提供的OEIS链接找到测试用例。 更新: 让我明确指出,您需要从程序,函数或表达式返回整数序列。换句话说,f(x)应该计算从1到的a(n)所有值。给定为8,您的函数应以数组或其他适当的数据结构形式返回。nxx2, 10, 60, 420, 4290, 53130, 903210, 17687670
10 code-golf  math 

3
飞机导航
您的任务是为当地飞机交付公司计划一条飞行路线。您需要将飞机从A点路由到B点。您只是无法从A点出发,将飞机指向B点,然后再走,因为盛行的风将使您偏离航向。相反,您需要考虑风向,找出应该指向飞机的方向,以便飞机直接飞向B。 输入 7个浮点数,编码为A_x,A_y,B_x,B_y,S,W_x,W_y。这些是起点和终点的坐标,飞机的空速以及沿x轴和y轴的风强度(风吹向的方向,而不是吹向的方向)。 输出 您应打印以度为单位的角度(从x轴正方向逆时针旋转),该角度应指向平面以直线到达B。GROUNDED如果风很大以至于无法旅行,请打印。 您可以四舍五入到最接近的程度,并可以使用任何您想要的方法(向上/向下/最近/ ...)进行。 例子 输入 0 0 10 0 100 0 -50 0 0 10 0 50 -55 0 3.3 9.1 -2.7 1.1 95.0 8.8 1.7 输出 30 GROUNDED 229 最短的代码获胜。
10 code-golf  math 

5
计算从素因数得出的整数序列
创建执行以下操作的函数,表达式或程序: 取任意数量的素数因子并求和。例如,28的素数是2 2 7,总和为11。 将结果乘以给定数素数的数量。例如,28有3个素因,总和为11。11 * 3为33。 递归地重复该过程,存储结果列表(以原始编号开头),直到列表中已经包含一个编号。暂停而不添加该最终编号,以便该列表不包含重复项。28的级数是28 33,因为33再次导致28。 计算结果列表中的元素。对于28,答案为2。 这是的结果0<n<=10,因此您可以检查算法。 2 1 1 10 1 11 1 9 5 10 (正如balpha所指出的higley(1),从列表1 0中得到的答案是2。由于我用J编写的原始算法中的错误,我原来只有1。) 由于我是自负的SOB,并且尚未在OEIS上找到它,因此至少在本轮代码测试期间,我们称其为“ Higley序列”。作为额外的奖励,发现前两个n具有最低的higley(n)地方n是不是素数和n>1。(我认为只有两个,但是我无法证明。) 这是标准代码高尔夫球,因此,通常击键次数最少,但是我想请您用其他语言推荐更聪明的答案,即使它们很冗长。
10 code-golf  math 

13
数字积
对于给定的正整数N,编写一个完整的程序以查找最小自然数M,以使M的数字乘积等于N。N小于1,000,000,000。如果不存在M,则打印-1。在任何情况下,您的代码都不应超过10秒。 Sample Inputs 1 3 15 10 123456789 32 432 1296 Sample Outputs 1 3 35 25 -1 48 689 2899
10 code-golf  math 

4
多项式长除法
实现多项式长除法,该算法将两个多项式相除并获得商和余数: (12x ^ 3-5x ^ 2 + 3x-1)/(x ^ 2-5)= 12x-5 R 63x-26 在程序中,您将多项式表示为数组,常数项位于尾部。例如,x ^ 5-3x ^ 4 + 2x ^ 2-x +1将变为[1,-3,0,2,-1,1]。 您将要编写的长除法函数将返回两个值:商和余数。您不需要处理数值不精确和算术错误。不要使用数学库来完成工作,但是,您可以使函数能够处理符号值。最短的代码获胜。 例: div([12, -5, 3, -1], [1, 0, -5]) == ([12, -5], [63, -26])

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.