编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

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。

2
给我看一些烟花!
以任何方式和顺序给予 尺寸(按您想要的顺序) 概率(您想要的任何格式) 迭代次数(您可以选择是否计算初始状态) 做一个如下: 动画,或 输出的每个步骤,或 返回状态列表 这些尺寸的空间充满了天空。 对于每次迭代: 每个天空角色都有给定的概率 * 八字环绕的任何*变 \ | / - - / | \,如果他们不成为明星,但是, 如果字符在2 *s的范围内,则将其设置为X 例 7×22天空(仅出于清晰起见,请勿输出该帧) ┌──────────────────────┐ │ │ │ │ │ │ │ │ │ │ │ │ │ │ └──────────────────────┘ 可能以1%的概率成为 ┌──────────────────────┐ │ * │ │ │ │ │ …

3
MacGyver的第二个工具箱
在这个问题中,每个答案都会有一个“工具箱”,可用于构造程序/功能。该工具箱将由两部分组成: 编程语言列表 有效字符列表 您必须仅使用工具箱中的字符以提供的一种语言编写有效的程序/功能。您的程序/功能应输出此问题上已经存在的答案的数量。 写下并发布答案后,将从您的工具箱中删除您使用的语言和字符,并随机添加1种新语言和8个新字符作为下一个答案的工具箱。 规则 每个答案将: 输出有效答案的数量 包含工具箱中针对该答案提供的字符的子集。(允许重复) 使用提供的工具箱中的一种语言 下一个工具箱将由此 python程序确定。要生成下一个工具箱,请使用剩余的语言和字符以及最后一个答案的帖子ID。 这里的语言列表是发布本文时在线尝试的所有可用语言。字符的字符代码为0-127。 您可以编写完整的程序或函数作为答案。由于REPL是不同的语言,因此将不允许使用它们。(使用每种语言的TIO版本) 如果语言使用特殊编码,则字符应解释为字节(从ASCII解码并用零填充)。 启动工具箱将从这个问题发布ID(128464)中被随机分配,将有7种语言可以启动,我将免费添加字符echoprint0和ascii 0-31以使人们开始使用。 您可能不会连续回答两次 计分 每次有人回答时,他们的回答都会得到一些分数。目标是获得尽可能多的分数。对于使用语言X的答案,您将获得与工具箱中未使用语言X一样多的回合。例如,第一个回答的人将获得1分,因为该语言刚刚添加到工具箱中。不一定会有终点,我也不会接受任何答案。 运动 这是一场比赛,但是我鼓励您在保持胜利的同时把乐趣置于胜利之上(如果我可以使胜利标准成为“有乐趣”的话)。一些不好玩的事情: 故意使用字符,您无需阻碍未来的答案。 尝试使用post id系统,以使将来的工具箱更难使用。 尝试使用post id系统,以使将来的工具箱更易于使用。 我无法阻止任何人这样做,但是我会否定我怀疑正在这样做的任何答案。 更积极的一点是,这里有一些体育活动值得鼓励: 在聊天中与其他用户进行协调。 保存字符以使用更严格或更严格的语言 这是这里发现的挑战的第二次迭代。它改善了第一个问题。这是讨论这些问题的元数据。

11
生成美国车牌
给出以下输入之一: AK,AR,AS,AZ,CA,CT,DC,FL,GA,IL,IN,IA,KS,KY,LA,MD,MI,MN,MS,NV,NH,NJ,NM,NY,NC,ND,MP,OH,OK,OR,PA,PR,RI,SC,TN,TX,UT,VT,VA,WA,WI (带引号) "AK","AR","AS","AZ","CA","CT","DC","FL","GA","IL","IN","IA","KS","KY","LA","MD","MI","MN","MS","NV","NH","NJ","NM","NY","NC","ND","MP","OH","OK","OR","PA","PR","RI","SC","TN","TX","UT","VT","VA","WA","WI" 生成并输出与输入匹配的格式的(均匀)随机车牌。如果有多种(逗号分隔)格式,请使用(均匀)随机格式: AK, IA, MS, MP, VT: AAA 000 AS: 0000 AZ, GA, WA: AAA0000 AR, KS, KY, LA, ND, OR: 000 AAA CA: 0AAA000 CT: AA-00000 DC: AA-0000 FL: AAA A00 IL: AA 00000 IN: 000A,000AA,000AAA,AAA000 MD: 0AA0000 MI: AAA 0000,0AA A00,AAA 000 MN: 000-AAA NV: …

2
赶上那些羊!
您是农夫,您的羊群逃脱了!不好了! 将围栏围起来,围住那些绵羊。作为预算有限的农民,您希望使用尽可能少的围栏。不过对您来说幸运的是,它们不是世界上最聪明的绵羊,在逃脱后也不会打扰他们。 任务 给定一个坐标列表,输出容纳绵羊所需的最少数量的围栏段。 规则 如果绵羊不能走动,则将其包含在内(围栏无孔)。 您不必将所有的绵羊都放在一个围栏中-可以有多个相互独立的围栏区域。 栅栏段沿基本方向定向。 每个座标元组代表一只绵羊。 输入必须为正整数对x>0&y>0,但可以根据您的语言正确设置格式。 即:{{1,1},{2,1},{3,7}, .. }或[1,2],[2,1],[3,7], .. 围栏区域内的空白处还可以。 您不能假定坐标以任何特定顺序输入。 例如,一只绵羊需要4完全围栏。 测试用例 [1,1] 4 [1,1],[1,2],[2,2] 8 [2,1],[3,1],[2,3],[1,1],[1,3],[3,2],[1,2],[3,3] 12 [1,1],[1,2],[2,2],[3,7],[4,9],[4,10],[4,11],[5,10] 22 [1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,9] 36 [1,1],[2,2],[3,3],[4,4],[6,6],[7,7],[8,8],[9,9] 32 [2,1],[8,3],[8,4] 10 笔记 您可以假设输入坐标有效。 理论上,您的算法应适用于任何较大的整数坐标(最高为您的语言支持的最大值)。 完整的程序或功能答案都可以。 这是代码高尔夫球,因此最短答案以字节为单位!
16 code-golf 

10
旋转计算器
介绍: 让我们看一下Windows中的标准计算器: 对于这一挑战,我们将仅查看以下按钮,而忽略其他所有内容: 7 8 9 / 4 5 6 * 1 2 3 - 0 0 . + 挑战: 输入: 您将收到两个输入: 一种是表示以90度为增量的旋转 另一个是代表旋转计算器上按下的按钮的坐标列表。 基于第一个输入,我们将上述布局以90度为增量顺时针旋转。因此,如果输入为0 degrees,则保持原样;但是如果输入为270 degrees,则它将顺时针旋转3次(或逆时针旋转1次)。这是四个可能的布局: Default / 0 degrees: 7 8 9 / 4 5 6 * 1 2 3 - 0 0 . + 90 degrees clockwise: …


23
这是Hardy-Ramanujan-Number-ish Harshad号码吗?
背景 1729是哈迪-拉曼纽(Hardy-Ramanujan)数字。当S. Ramanujan(被广泛认为是印度最伟大的数学家1)在GH Hardy在医院探望他时,发现了它的惊人特性。用哈代自己的话说: 我记得他在普特尼生病时曾经去看他。我曾骑过1729号出租车,并说这个电话对我来说似乎是个呆板的,我希望这不是一个不利的预兆。他回答说:“不,这是一个非常有趣的数字;它是最小的数字,可以用两种不同的方式表示为两个立方体的和。” 除此之外,它还有许多其他令人惊奇的特性。一个这样的属性是它是一个Harshad数,即其数字的总和(1 + 7 + 2 + 9 = 19)是其中的一个因素。那也很特别。正如藤原昌彦(Mahahiko Fujiwara)所显示的,1729是一个正整数,当将其数字相加时,会产生一个总和,再乘以其反转,便得出原始数字: 1 + 7 + 2 + 9 = 19 19×91 = 1729 具有这种性质的正整数,是我定义为哈迪- Ramanujan- ISH哈沙德数,这个职位的目的。(可能会有一个技术术语,但是除非它是A110921的成员,否则我找不到它) 任务 给定一个正整数n作为输入,输出基于所述输入是否truthy或falsey值n是一个哈迪- Ramanujan- ISH哈沙德数。如果是,请输出真实值。否则,输出falsey。 请注意,只有四个哈迪- Ramanujan- ISH哈沙德数存在(1,81,1458和1729),你可以写代码检查与他们对等。但是我认为那不会很有趣。 输入值 您的程序应采用正整数(换句话说,是自然数)。除了假定它存在于变量中之外,它可以采用任何方式使用。允许从模态窗口,输入框,命令行,文件等读取。也可以将输入作为函数参数。 输出量 您的程序应输出一个真或假值。它们不必保持一致。您的程序可以以任何方式输出,除非将输出写入变量。允许写入屏幕,命令行,文件等。return也允许带有功能的输出。 附加规则 您一定不能使用内置函数来完成任务(我想知道任何语言都将具有内置函数,但是Mathematica ...) 适用标准漏洞。 测试用例 Input Output 1 Truthy …

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.