Questions tagged «arithmetic»

与基本算术有关的挑战。

24
RATS序列
您的任务是生成RATS序列的第n个项,其中n是输入。RATS序列也称为反向先添加后排序序列。也可以在以下位置找到此序列:http : //oeis.org/A004000。 测试用例: 0 > 1 1 > 2 2 > 4 3 > 8 4 > 16 5 > 77 6 > 145 7 > 668 例如,5的输出为77,因为16 + 61 =77。此后,对77进行排序。 提交时间最短者获胜。这是我的第一个挑战,所以我希望这不是重复的东西。

27
三个输入整数的差
实现一个函数diff,将三个整数x,y和z作为输入。它应该返回是否从另一个中减去这些数字中的一个得出第三个数字。 Test cases: diff(5, 3, 2) yields True because 5 - 3 = 2 diff(2, 3, 5) yields True because 5 - 3 = 2 diff(2, 5, 3) yields True because 5 - 3 = 2 diff(-2, 3, 5) yields True because 3 - 5 is -2 diff(-5, -3, -2) …

3
救命!我的计算器坏了!(将整数表达式转换为计算器按键)
介绍 救命!我不小心将TI-84计算器掉到了窗外(不要问怎么做),它坏了。我明天要进行数学测试,唯一能找到的计算器就是这些按钮: 7 8 9 + 4 5 6 - 1 2 3 * 0 = / 我的数学测试是关于评估表达式的复习测试。我需要一个程序来接受诸如的表达式1+(5*4)/7,并将其转换为在备用计算器上求解所需的击键。(如果您想知道,这确实发生在我身上)。 挑战 鉴于含有非空输入串仅字符0-9,(,),+,-,*,和/,输出以空间分隔的字符串的键击(例如1 + 3 / 3 =)。输出末尾必须始终有一个等号。不允许出现标准漏洞。 例子: 输入:1+(5*4)/7,输出:5 * 4 / 7 + 1 = 输入:6*(2/3),输出:2 / 3 * 6 = 输入:(7-3)/2,输出:7 - 3 / 2 = 为了使这个挑战更容易: 您可能假定输入具有一系列与其关联的击键,不需要清除计算器(这1-(7*3)是无效的,因为它需要您查找7 * 3然后清除计算器才能进行1 …

7
哪些“朋友”角色确实是最好的朋友?
美国情景喜剧之友的六个主要演员均同意,在整个系列的整个过程中(至少在第二季之后),他们将获得相同的薪水。但这并不意味着他们都具有相同的播放时间,也不意味着它们在屏幕上彼此交互的时间相同。 在这个挑战中,您将编写一个程序来帮助确定哪些Friends朋友确实是最好的。 设定 考虑观看“ 朋友”的情节或场景,并准确记录每次相机拍摄期间谁在屏幕上显示多长时间。 我们将缩写每个字符的名称: C是钱德勒的 J是给乔伊的 M是给莫妮卡的 P是给菲比的 R是给瑞秋的 S是给罗斯的 然后,对于每个相机镜头(或角色每次进入/退出镜头),我们都会列出屏幕上的人物。例如: 504 CRS 200 J 345 MP 980 2000 CJMPRS 这就是说: 在504毫秒内,钱德勒,雷切尔和罗斯出现在屏幕上。 然后持续200毫秒,乔伊就呆了。 然后持续345毫秒,莫妮卡和菲比都在。 然后持续980毫秒,屏幕上没有显示6个主要角色。 然后两秒钟,所有的人都。 (这不是来自实际剪辑,而是由我组成的。) 请注意,以下内容是等效的: 504 CRS 1 J 199 J 345 MP 980 2000 CJMPRS 为了分析哪些字符组合具有最大的屏幕显示时间,我们查看了6个字符的所有64个可能子集,并总计了它们的屏幕显示时间。如果在拍摄镜头期间某个子集中的每个人都出现在屏幕上,即使其中的字符比该子集中的人物更多,该镜头拍摄的时间也会添加到该子集的总屏幕时间中。 空子集有一个例外-仅计算不包含6个主要角色的场景。 因此,以上示例的分析将是: 980 2504 C 2200 J 2345 …

30
在乘法表中对唯一数字进行排序
今天非常简单的挑战: 编写一个程序或函数,该程序或函数采用正整数N,并打印或返回出现在乘法表中的唯一数字的排序列表,该唯一表的行和列被乘数均在1到N之间(含1和N)。 该列表可以按升序(最小到最大)或降序(最大到最小)排序,并且可以任何合理的格式输出。 以字节为单位的最短代码胜出! 例 当N = 4时,乘法表如下所示: 1 2 3 4 ----------- 1| 1 2 3 4 | 2| 2 4 6 8 | 3| 3 6 9 12 | 4| 4 8 12 16 表格中的唯一编号为1, 2, 3, 4, 6, 8, 9, 12, 16。这些已经排序,所以 1, 2, 3, 4, 6, …

11
打印,递增,递减,别名-解释本领
Prindeal(明显的首席- DEE-AL)是一种新的深奥的编程语言,只有四个命令:PR INT,在 crement,德 crement,和人 IAS。尽管极简,但可以通过巧妙地组合四个命令在Prindeal中完成复杂的数学运算。 在此挑战代码中,您的任务是编写可以运行Prindeal代码的最短程序。 规范很长,但是我已经尽力使它更清晰了,我相信,如果您努力学习Prindeal,您会发现它非常优雅! 领主 预处理 在解释Prindeal程序之前,需要按以下顺序从其中删除这些内容: #行尾的符号后的所有内容,再加上#本身。(这些是评论。) 任意行上的尾随空格。 完全空行。 例如,Prindeal程序 p cat #The next line has 7 trailing spaces. p dog #p mouse 将被预处理成 p cat p dog 从这里开始,我们假设此预处理步骤已经完成。 变数 在显示变量的用法之前,我们需要快速定义变量。 变量(以及对变量的引用)是传递给Prindeal命令的参数的。变量始终是全局变量,因此无论变量在何处出现,其修改都会随处可见。 每个变量都包含一个非负的任意精度整数(0、1、2、3,...)。变量不需要预先初始化- 首次使用或调用变量时,它们始终以0开头。 变量名称可以是任何非空的字母数字和下划线,但不能以数字[a-zA-Z_][0-9a-zA-Z_]*输入正则表达式开头。他们是大小写敏感的,所以spiny_lumpsuck3r和Spiny_lumpsuck3r是不同的变量。 执行 Prindeal是命令式编程语言。当运行Prindeal程序时,其语句从上到下依次执行,然后该程序结束。 Prindeal程序中的每条非缩进行都是一条语句,该语句涉及单个命令的执行,该命令可以带或不带参数。 缩进行仅在别名命令之后出现。具体来说,在每条别名命令之后,恰好有三行缩进一个空格, 并被视为其中一部分。因此,别名语句实际上是四行。(它们可能是一行,而四行则更具可读性。) 非别名语句 除alias之外,Prindeal程序中的每个语句都具有以下形式: [command name] [argument …

16
将两个数字相乘而不使用任何数字
给出两个以10为底的正整数的字符串作为输入,例如"12345"和"42"。"518490"在这种情况下,您的任务是输出包含其产品的字符串。 所不同的是,您不得在代码中使用任何数字类型。No ints,floats,unsigned longs等,没有内置的复数类型或任意精度的整数,或沿这些线的任何内容。您可能没有使用这些类型的文字,也没有使用返回它们的任何函数,方法,运算符等。 您可以使用字符串,布尔值,数组或其他通常不用于表示数字的东西。(但是请注意,不调用数字类型就不可能索引到数组或获取数组的长度。)chars是允许的,但是您不能对它们执行任何算术或按位运算,也不能将其视为除表示字符串一部分的令牌。(char允许对s进行字典比较。) 您可能无法解决该限制。这包括(但不限于)在eval类型函数内使用数字类型,将隐式类型转换为数字类型,对支持它们的非数字类型使用数字或按位运算符,使用存储在容器类型内部的数字类型或调用函数或外部程序以字符串形式返回数值结果。(如果答案中出现其他解决方法,我保留添加到此列表的权利。)您必须仅使用非数字类型自己实现乘法。 输入和输出可以通过任何方便的方法进行,只要数据以字符串形式进入和退出您的代码即可。您可以假定两个输入参数中的每个参数仅包含ASCII字符,[0-9]并且不会以开头0。您的输出也不应该有前导零。 还有一件事:您的代码必须正确处理至少10个字符的输入,并且必须在一分钟之内在现代计算机上运行该范围内的所有输入。发布之前,请检查给定输入9999999999和时9999999999,程序99999999980000000001在不到一分钟的时间内输出。专门存在此限制是为了避免通过分配大小数组a*b然后对其进行迭代来起作用的答案,因此请记住,该形式的答案将不符合要求。 这是代码高尔夫球,因此最短的有效解决方案(以字节为单位)获胜。

18
自定义号码基础转换器
希望能够使用所需的任何格式将其拥有的任何数字快速转换为自己的数字基础的能力。 输入值 您的程序必须接受3个参数。 Number:要转换的字符串号 InputFormat:数字当前所在的基本字符串 OutputFormat:要将数字转换为的基本字符串。 输出量 您的程序必须将Number旧的基数InputFormat转换为新的基数OutputFormat 例子 ("1","0123456789","9876543210") = "8" ("985724","9876543210","0123456789ABCDEF") = "37C3" ("FF","0123456789ABCDEF","0123456789") = "255" ("FF","0123456789ABCDEF","01234567") = "377" ("18457184548971248772157", "0123456789","Aa0Bb1Cc2Dd3Ee4Ff5Gg6Hh7Ii8Jj9Kk,Ll.Mm[Nn]Oo@Pp#Qq}Rr{Ss-Tt+Uu=Vv_Ww!Xx%Yy*Zz") = ",sekYFg_fdXb" 额外 如果可以,新的base 77测试不是必需的道具 如果您使用的语言必须先转换为数字并且被锁定在32Bit以内,则可以跳过它。 因为这是一项附加测试。 所有示例都是由PHP 7.2使用bcmath扩展名使用以下代码生成的(vars mins,但代码已格式化)。可能会有一个更短的方法,这只是我针对需要使用此系统的系统提出的方法,很高兴看看是否有人可以提出一个较短的版本。 PHP 7.2(bcmath-扩展名)614字节 <?php function f($a, $b, $c) { $d= str_split($b,1); $e= str_split($c,1); $f= str_split($a,1); $g=strlen($b); $h=strlen($c); $k=strlen($a); …

16
原始勾股三元组
(相关) 甲毕达哥拉斯三重是一个列表(a, b, c),其满足等式一个2 + B 2 = C 2。 甲原始毕达哥拉斯三(PPT)为其中a,b和c是全部互质(即,三个元件之间的唯一的公约数是1)。例如,(3, 4, 5)直角三角形是著名的原始毕达哥拉斯三重奏。 挑战 给定输入n,输出n第PPT张。要么, 给定输入n,输出第一个nPPT。 有多种方法可以对这些PPT进行排序,以形成排列良好的列表,从而确定哪个是n第一个。您可以选择所需的任何顺序,只要您可以证明(非正式地)算法可以生成所有可能的唯一PPT。例如,您的代码不应同时输出两者,(3,4,5)并且(4,3,5)由于它们是同一三元组的重复,请不要同时输出。 同样,只要声明使用的是代码,代码是零索引还是单索引都是可以的。 例子 在下面的示例中,我使用单索引,输出nth PPT,然后按最小c,然后最小a,然后最小的顺序进行排序b。 n | output 1 | (3, 4, 5) 2 | (5, 12, 13) 5 | (20, 21, 29) 12| (48, 55, 73) 规则 输入和输出可以任何方便的格式给出。 在您提交的文件中,请说明您的条目是如何排序的,以及您的条目是0索引还是1索引。 您选择的订单无法创建重复项。 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 如果可能,请提供一个在线测试环境的链接,以便其他人可以尝试您的代码! 禁止出现标准漏洞。 …

13
帕斯卡的列总和
这里的大多数人都熟悉Pascal的Triangle。它由连续的行组成,其中每个元素是其两个左上和右上邻居的总和。这是第一5行(从Generate Pascal的三角形借用): 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 我们将采用Pascal的Triangle并对其进行一些求和(哈哈)。对于给定的输入n,输出nPascal三角形的第一行的列和。例如,对于input 5,输出将由 1 1 1 1 2 1 1 3 3 1 [+] 1 4 6 4 1 ---------------------- 1 1 5 4 9 4 5 1 1 因此输出将是[1, 1, 5, 4, 9, …

16
尽可能多地填写递增顺序
数字列表被称为单调递增(或不递减),因为每个元素都大于或等于它之前的元素。 例如, 1, 1, 2, 4, 5, 5, 5, 8, 10, 11, 14, 14单调增加。 给定正整数的单调递增列表,该整数具有任意数量的空白点,表示为 ?,用正整数填充空点,以使列表中存在尽可能多的唯一整数,但它保持单调递增。 可能有多种方法可以实现此目的。任何有效。 输出结果列表。 例如,如果输入是 ?, 1, ?, 1, 2, ?, 4, 5, 5, 5, ?, ?, ?, ?, 8, 10, 11, ?, 14, 14, ?, ? 确保没有空白点的列表将单调增加 1, 1, 2, 4, 5, 5, 5, 8, …

24
荷兰Burgerservicenummer(BSN)十一测试
介绍: 符合以下规则的荷兰BSN(BurgerServiceNummer)有效: 它仅包含数字。 长度应为8或9。 当A通过索引数字时I,以下总和的结果:(请9xA + 8xB + 7xC + 6xD + 5xE + 4xF + 3xG + 2xH + -1xI注意-1而不是1!)应该被11整除,并且不应该为0。 挑战: 输入:代表BSN的字符串或字符数组。 输出:甲truthy或falsey结果输入是否是有效的BSN。 挑战规则: 输入格式应为字符串或字符数组。不允许使用数字的整数数组或(可能是八进制)数字。(不过,您可以自己将其转换为数字的整数数组,但不能直接将其作为参数。) 尽管上面的输入有限制,但您可以假定所有测试用例都将包含一个或多个数字([0-9]+) 关于长度为8而不是9的BSN,荷兰维基百科指出:“ 对于11次测试和其他实际用途,添加前导零以使长度为9。 ”(来源) 一般规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能短的答案。 标准规则适用于您的答案,因此允许您使用STDIN / STDOUT,具有正确参数的函数/方法,完整程序。你的来电。 默认漏洞是禁止的。 如果可能,请为您的代码添加一个带有测试的链接。 另外,如有必要,请添加说明。 测试用例: // Truthy test cases: 111222333 123456782 232262536 010464554 10464554 44016773 …

16
简化平方根
给定一个正整数n,通过提取所有平方因子将平方根简化√n为形式a√b。输出的a,b应该是正整数,n = a^2 * b且整数应b尽可能小。 您可以输出a和b以任何顺序在任何合理的格式。您可能不会忽略1as的输出。 n=1..36as 的输出(a,b): 1 (1, 1) 2 (1, 2) 3 (1, 3) 4 (2, 1) 5 (1, 5) 6 (1, 6) 7 (1, 7) 8 (2, 2) 9 (3, 1) 10 (1, 10) 11 (1, 11) 12 (2, 3) 13 (1, 13) 14 (1, 14) …

28
计算超级对数
这应该是一个简单的挑战。 给定一个数字n >= 0,输出的超级对数(或log *,log-star或迭代对数,它们是等效的,因为n对于该挑战永远不会为负。)n。 这是四官能的两个反函数之一。另一个是超级根,这是一个相关的问题。 例子 Input Output 0 0 1 0 2 1 3 2 4 2 ... 15 2 16 3 ... 3814279 3 3814280 4 规则 您可能不需要支持小数。 您需要至少支持输入3814280 = ceiling(e^e^e)。 您可能不对值进行硬编码3814280。(理论上,您的程序必须支持更高的数字。)我希望实现一种算法。 最短的代码胜出。 相关OEIS
29 code-golf  math  code-golf  array-manipulation  sorting  code-golf  math  arithmetic  matrix  code-golf  string  kolmogorov-complexity  code-golf  string  code-golf  math  sequence  arithmetic  recursion  code-golf  math  ascii-art  sequence  code-golf  math  array-manipulation  code-golf  code-golf  kolmogorov-complexity  code-golf  string  code-golf  string  decision-problem  code-golf  array-manipulation  tips  javascript  json  code-golf  math  string  number  number-theory  code-golf  math  sequence  fibonacci  number  arithmetic  fastest-code  integer  code-golf  math  sequence  code-golf  string  file-system  tips  golfscript  code-golf  string  code-golf  string  natural-language  code-golf  string  file-system  code-golf  math  array-manipulation  code-challenge  image-processing  compression  code-golf  math  number  sequence  code-golf  math  combinatorics  regular-expression  code-golf  sequence  pi  code-golf  ascii-art  code-golf  string  array-manipulation  sorting  code-golf  string  graph-theory  code-golf  string  code-golf  string  ascii-art  code-challenge  compression  code-golf  code-golf  math  sequence  number-theory  code-golf  maze  graph-theory  code-golf  math  sequence 

3
整数复杂度
您的任务是编写一个程序,在输入n上按顺序输出从1到n的每个数字的最小表达式。以字节为单位的最短程序获胜。 最小表达式将1与加和乘相结合以得到给定的数字,并使用尽可能少的1。例如,用11个23表示23=((1+1+1)(1+1)+1)(1+1+1)+1+1,这是最小的。 要求: 程序必须将正自然数n作为输入。 输出必须采用以下格式: 20 = ((1+1+1)(1+1+1)+1)(1+1) 您的输出可能没有多余的括号,例如8 = ((1+1)(1+1))(1+1)。 乘法符号*是可选的。 空格是可选的。 您不必输出给定值的所有可能方程式:例如,您可以选择输出4=1+1+1+1或4=(1+1)(1+1)。您不必同时输出两者。 每种语言中最短的程序(以字节为单位)获胜。 1 = 1 2 = 1 + 1 3 = 1 + 1 + 1 4 = 1 + 1 + 1 + 1 5 = 1 + 1 + 1 + 1 + 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.