Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

24
对串联三角形的行求和
考虑下面的三角形。 1个 23 456 7891 01112 131415 1617181 92021222 324252627 2829303132 33343536373 839404142434 4454647484950 51525354555657 585960616263646 5666768697071727 37475767778798081 您可能已经注意到,第一行的长度为1,此后的每一行都比前一行长1位,并且它包含连接的正整数的数字。 您将得到一个整数ñ。您的任务是找到位于上述三角形的第N行上的数字的总和。 规则 您可以选择0或1索引。请在您的答案中指定。 默认漏洞适用。 您可以采用任何标准均值和任何合理格式来接受输入并提供输出。 这是OEIS A066548,此序列是三角形本身(除了我们不删除前导零)。 这是code-golf,所以以字节为单位(每种语言)的最短代码获胜。打高尔夫球吧! 测试用例 Input | Output 0 | 1 1 | 5 2 | 15 3 | 25 4 | 5 5 | 15 6 …

15
被1000003整除?容易,只需将最后一位乘以300001然后加!
给定一个P大于的质数10,您的程序或函数必须弄清楚其除数规则x,定义为具有最小绝对值的整数,当将其与质数的最后一位相乘并加到其余的原始数时,该整数将产生原始质数的倍数主要。 例 给定输入31,最后一个数字为1,其余数字为3。因此,您的程序必须找到x具有最小绝对值的整数,该整数应1*x + 3是的倍数31。在这种情况下,x=-3可以正常工作,因此程序或函数将返回-3。 给定输入1000003,最后一个数字为3,其余数字为100000。这样您的程序就会找到,x=300001因为3*300001+100000 = 1000003它是的倍数1000003。 数学背景 的值x可以用作除数检验。如果一个数字可N被整除P,则将x的最后一位数字N与的余数相加N将得到Pif和only N的可被P第一个整数整除的倍数。 因为P=11,我们得到x=-1,它等于以下公知的除数规则11:一个数字可通过11交替改变其数字的位数来除以11。 规则 输出可以采用任何清楚地编码输出的符号和值的形式。 输入素数将在10到2 ^ 30之间。 如果输入不是素数或不在范围内,则无需处理。 如果x和-x均为有效输出,则不需要处理(不应发生)。 允许使用蛮力,但希望有更多创造性的解决方案。 这是代码高尔夫球,因此每种语言中最短的代码胜出!不要让打高尔夫球的语言的答案妨碍您发布其他语言的信息。 测试用例 Input Output 11 -1 13 4 17 -5 19 2 23 7 29 3 31 -3 37 -11 41 -4 43 13 47 -14 53 16 59 6 …

14
带领带的马里奥赛车得分
我在为该网站提出另一个挑战时遇到了这个问题。在这项挑战中,我使用“ Mario Kart 8 Scoring ”。玩家在第k位获得的积分数量由此1索引数组表示:[15,12,10,9,8,7,6,5,4,3,2,1]。因此,第一名获得15分,第二名获得12分,依此类推。 像这样分配点很容易,但是棘手的部分是如何处理领带的。我要做的是给每个并列玩家平均每个并列位置的得分。例如,如果只有第1名和第2名并列,则两个玩家都将获得(15 + 12)/ 2 = 13.5分。(注意:允许四舍五入到最接近的整数,因此13或14都可以接受。)然后,第3-12位获得其位置的正常点数。 挑战 给定12个非负整数分数,这些分数递减排序,输出每个玩家获得的积分数。您也可以将点列表[15,12,10,9,...]作为输入。请注意,每个玩家获得的积分数并不取决于分数的实际值,而是取决于它们与其他分数的比较方式。 测试用例 [21,21,15,14,12,9,6,5,4,3,2,1] => [ 14,14,10,9,8,7,6,5,4,3,2, 1] [20,15,15,15,10,9,8,7,6,5,4,3] => [15,10,10,10,8,7,6,5,4,3,2, 1] 说明:(12 + 10 + 9)/ 3 = 10.3333 [1,1,1,1,1,1,1,1,1,1,1,1,1] => [ 7,7,7,7,7,7,7,7,7,7,7,7, 7 ] 说明:(15 + 12 + 10 + 9 + 8 + 7 + …

11
求反正切之和的正切
背景 可以证明,对于任何整数k >= 0,f(k) = tan(atan(0) + atan(1) + atan(2) + ... + atan(k))都是有理数。 目标 编写一个完整的程序或函数,如果给定k >= 0,f(k)则将其输出为单个减少的分数(分子和分母为互质数)。 测试用例 前几个值是 f(0) = (0,1) f(1) = (1,1) f(2) = (-3,1) f(3) = (0,1) f(4) = (4,1) f(5) = (-9,19) f(6) = (105,73) 规则 禁止出现标准漏洞。 输入和输出可以采用任何方便的格式。您可以将其输出f(k)为字符串numerator/denominator,两个整数的元组,分数或有理对象等。如果输出字符串,则仅提供两个整数,即输出3/2而不是1 1/2。 这是代码高尔夫球,最短的答案(以字节为单位)获胜。

7
我的PPCG ID是什么?
挑战 输入PPCG成员的名称,然后输出其PPCG ID号。如果该用户不存在,则可能会报告错误或返回任何非正数。如果有多个使用此名称的成员,则可以选择仅输出一个ID或全部输出。 测试用例 “ musicman523”-> 69054 “丹尼斯”-> 12012 “ xnor”-> 20260 “泄漏修女”-> 48934 “ fəˈnɛtɪk”-> 64505 “约格·赫尔瑟曼”-> 59107 “社区”-> -1 “任何不存在的用户”-> 0 “ Alex”-> 69198(这是一种可能的结果) “泄漏N”-> 0 “豪尔赫”-> 3716

20
枚举单元符号
因此,我们都希望熟悉Spreadsheet“ A1”单元格表示法。 它只是该单元格在网格中的位置的字母数字表示。字母表示单元格的列位置,数字表示行。 “字母”部分可以包含26个英文字母中的1个或多个字母,所有字母必须为大写字母。这些通过使用26-adic双射数来映射为数字。“数字”部分可以由任何非零的正整数组成。 挑战在于,编写一个程序,以任何字符串的形式给出任何单元格的A1表示,可以输出一个字符串,该字符串包含以数字表示的列位置,然后是空格,然后是行号。 下面的示例输入/输出: A1 >>1 1 B10 >>2 10 AC4 >>29 4 AAC753 >>705 753 F123 >>6 123 GL93 >>194 93 这是我面临的第一个挑战,因此,该标准相对简单且可能很差。 编辑:字符串必须是字母,后跟数字,并且获胜标准是最短的代码长度(如果可以的话) 编辑:与此有关,但是用不同的起始索引进行了反向处理。有人可能会争辩说,这一事实使链接之谜变得更加有趣。

6
双缝实验
懒惰的物理学家有工作要做双狭缝实验。但是,它们很懒惰,不会麻烦自己设置所有设备,因此将模拟效果。他们无法编程,因此需要一些帮助。由于它们很懒,因此您的程序应尽可能短。 给定一个奇数正整数n(n >= 1和n % 2 == 1),执行仿真。 怎么运行的 您将以一块空的画布开始,每帧都有一个单独的光线穿过缝隙并降落在画布上。粒子将以最大概率着陆: n = 1: +-----+ | | | 1/2 | | | +-----+ n = 3: +-----+ +-----+ +-----+ | | | | | | | 1/4 | | 1/2 | | 1/4 | | | | | | | +-----+ …

10
风险之战:崩溃
给定两个用于在Risk中进行战斗的掷骰子清单,您的程序或功能必须输出每个玩家损失的部队数量。 背景 您不必阅读本手册,因为它只是背景知识。跳至“任务”子标题,继续保持原样。 在风险游戏中,一个玩家可以攻击另一位玩家(实际上,这是获胜的必要条件)。战斗的结果取决于掷骰子。每次战斗都是连续进行的子战,每个玩家可能会损失最多2的军队。 在一个子战中,防御者和攻击者各自掷出几个骰子,其骰子数量可能根据与该挑战无关的情况而变化。将攻击者的最高价值的骰子与防御者的最高价值的骰子进行比较。如果攻击者的死亡人数高于防御者的死亡人数,则防御者将输掉一件。否则,攻击者将丢失一件。 然后,如果两个玩家都至少有两个骰子,则比较两个玩家中第二高价值的骰子。同样,如果攻击者的死率高于防御者的死率,则防御者将输掉一件。否则,攻击者将丢失一件。 (防御者赢得平局。如果防御者和攻击者都掷出a 4,则攻击者将输掉一块。) 在Wikipedia文章的子战斗中,攻击者的骰子为红色,而防御者的骰子为白色。攻击者的最高骰子是4,防御者的最高骰子是3。由于攻击者更高,因此防御者输了一块。第二高的是3攻击者和2防御者。由于攻击者再次处于较高位置,因此防御者输了另外一块。因此,在此子战斗中,攻击者没有损失,防御者也没有损失2。 请注意,不比较第三高的片段。这是因为后卫在一个子战中最多有两个骰子,因此没有第三高的骰子可供比较。 任务 给定攻击者和防御者的未分类骰子掷骰(整数在1到6之间,包括1到6),以任何方便的形式输出每个玩家损失的军队数量。输出可以采用任何方便的形式,只要它具有指示五种可能性的不同输出即可。您必须指出问题中有哪些不同的输出。 输出确定如下:以def=0和开头atk=0。如果攻击者的掷骰子列表的最大值大于防御者的掷骰子列表的最大值,则增加def。否则,增加atk。 如果两个骰子列表的长度都至少为2,则:如果攻击者的骰子列表的第二个最大值大于列表的第二个最大值,则递增def,否则递增atk。 最后,程序或函数必须为以下5种输出可能性中的每一种输出唯一的标识符: ╔═══╦═══╗ ║atk║def║ ╠═══╬═══╣ ║ 1 ║ 0 ║ ║ 0 ║ 1 ║ ║ 2 ║ 0 ║ ║ 1 ║ 1 ║ ║ 0 ║ 2 ║ ╚═══╩═══╝ 例 防御者:[3, 2] 攻击者:[2, 4, 1] …

9
制作无限链
让我们定义一类功能。这些函数将从正整数映射到正整数,并且必须满足以下要求: 该函数必须是双射的,这意味着每个值都映射到一个值,并被一个值恰好映射到。 您必须能够通过重复应用该函数或其反函数来从任何正整数到任何其他正整数。 现在,编写一些代码,在其输入上执行该类中的任何一个功能。 这是一个代码问题,因此答案将以字节计分,字节越少越好。
16 code-golf  math  number 

7
多少个分区仅包含完美正方形?
给定一个非负整数或一列数字,请通过将可能有前导零的平方数级联来确定以几种方式形成数字。 例子 input -> output # explanation 164 -> 2 # [16, 4], [1, 64] 101 -> 2 # [1, 01], [1, 0, 1] 100 -> 3 # [100], [1, 00], [1, 0, 0] 1 -> 1 # [1] 0 -> 1 # [0] 164900 -> 9 # [1, 64, …

11
2D分区累计总和
挑战 给定的矩阵中号与[R行和C ^列和两个布尔列表V长度的ř和ħ长度的Ç,计算所述划分累积的垂直和水平的和。 规则 r和c大于或等于1 H和V以真实值开头 M中的值在您语言的合理数值范围内。 分区和求和从左上角开始。 穿过 给定M: ┌──────────────┐ │ 1 2 3 4 5│ │ 6 7 8 9 10│ │11 12 13 14 15│ │16 17 18 19 20│ └──────────────┘ 高:1 0 1 0 0 V:1 1 0 1 将M分为几列,以H的每个真实值开始一个新的组 ┌─────┬────────┐ │ 1 2│ 3 4 …

30
“你好,世界!”(警察的话)
这是警察的话题。强盗的线程是这里。 您的挑战是编写一个程序或函数,该程序或函数使用特定的输入来打印确切的字符串Hello, World!和换行符。大写字母,空格和标点符号必须准确。 输入可以通过标准输入,文件或命令行/函数自变量获取。输出可以通过返回值,写入文件或标准输出来给出。 您的程序必须Hello, World!至少打印一次输入。当您的程序输入错误时(即,不能打印的输入)Hello, World!),它可以执行您喜欢的任何操作-崩溃,打印随机废话,调用Chuck Norris等。 您不得使用哈希算法或任何类似的方法来遮盖所需的输入。 提交最好在TIO上可运行且可破解。允许在TIO上无法运行或破解的提交,但请提供下载/运行它们的说明。 一个星期后,这项挑战将在以后的警察提交中关闭。获胜者是发布它一周后未破解的最短代码(“它”是代码,而不是挑战)。获奖者将在两周后被接受。 自发布以来已过了一周,请标记您的答案为安全并显示输入(以表示> ! spoiler quote)。如果强盗破坏了您的提交(在本周结束之前),请将其标记为已破坏,并显示停止输入(中的> ! spoiler quote)。 寻找完整的作品? fetch("https://api.stackexchange.com/2.2/questions/137742/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!i.body_markdown.toLowerCase().includes("cracked")).map(x=>{const matched = /^ ?##? ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, lang: matched[1] || matched[2], owner: x.owner}}).filter(Boolean).forEach(ans=>{var tr = document.createElement("tr");var add = (lang, link)=>{var …

4
改造一个原始世界
这项挑战基于Helka Homba的 “ 编程原始世界 ”问题。从这个问题出发,原始程序的定义是: 让我们将原始程序定义为本身没有任何错误,但是如果您通过删除任何连续的N个字符的子字符串来修改它会出错的程序,其中1 <= N < program length。 例如,三个字符的Python 2程序 `8` 是一个原始程序(谢谢Sp),因为删除长度为1的子字符串所导致的所有程序都会产生错误(实际上是语法错误,但是任何类型的错误都可以): 8` `` `8 并且由于删除长度为2的子字符串而产生的所有程序也会导致错误: ` ` 例如,如果`8曾经是一个没有错误的程序,那么`8`它将不会是原始的,因为所有删除子字符串的结果都必须出错。 笔记: 编译器警告不算作错误。 错误的子程序可以接受输入或给出输出,或执行其他任何操作,只要它们最终会出错就可以。 您的任务是创建一个长度不为零的程序,该程序准确地打印其自身的源代码,并遵循适当的规则,并且原始。 每种语言的最短答案(以字节为单位)获胜。

20
查找序列化整数
任务 编写一个将(作为输入)正整数的程序。然后,它将从开始计数0,将每个整数附加到String,仅在的长度String小于输入值时才继续。 甲序列整数被定义为具有最大值属于完全形成的整数String。通过“完全形成”,该整数应没有丢失的数字(如果满足的长度约束,则将出现此数字String)。 程序的输出应为其相应的正输入的序列化整数。 规则 这是代码高尔夫球,所以最短的答案(以字节为单位)获胜! 输入将始终为正。 输出必须是以10为底的整数(十进制)。 该程序必须为0索引。 输入示例| 输出量 5 | 4 (0 1 2 3 4 - Length of 5) 11 | 9 (0 1 2 3 4 5 6 7 8 9 1 - Length of 11) 12 | 10 (0 1 2 3 4 5 …

2
输出每个字段大小的原始元素
甲本原元素的有限域的是该领域的乘法群的生成元。换句话说,如果alphain F(q)是in的q−1第1个单位根,则in 被称为基本元素F(q)。这意味着可以将所有非零元素F(q)写成alpha^i某个(正)整数i。 该字段的所有元素F_{2^k}最多可以写为度为多项式,k-1系数为1或0。为了完成此操作,您的代码还需要输出一个不可约的次数多项式,k该多项式定义了您正在使用的字段。 任务是编写代码,该代码按顺序输出F_{2^k}您选择的原始元素k = 1 .. 32。 您的输出必须简单地k以您喜欢的任何格式列出原始元素的系数,然后在另一行上单独列出k+1不可约多项式的元素。k如果可能,请为每个值分开输出。 您的代码可能需要很长的时间,但是在提交答案之前,必须先运行它才能完成。 您不得使用任何内置函数或库函数来返回有限域的原始元素或测试元素是否为原始。 一个例子 因为k = 1唯一的原始元素是1。 因为k = 2我们有 F_4。这4个元素是,{0, 1, x, x + 1}因此有两个基本元素x和x + 1。所以代码可以输出 1 1 1 1 1 例如作为系数,其中第二行是不可约多项式,在这种情况下,该多项式x^2+x+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.