编程拼图和代码高尔夫

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

10
您是用户:创建需求
我的老板*不理解为什么她的程序员会对更改程序要求的用户产生负面反应。帮助她了解!在每个答案上,创建一个新要求。然后,使用新的编程语言编写可解决该要求和所有先前要求的程序/功能。 例子 用户1发布第一个答案。他指定程序必须输出“ Hello,World”。他用Java创建了一个程序,输出“ Hello,World”。 用户2发布第二个答案。她指定程序必须接受输入n并输出第n 个质数,直到语言的最大数量。她用C ++创建了一个程序,该程序接受输入n并输出第n 个素数并输出“ Hello,World”。她无法用Java创建程序。 用户3发布第三个答案。他指定程序源不能包含文本“ Hello”。他在Python中创建了一个函数,该函数接受输入n并输出第n 个素数和“ Hello,World”。而未在其来源中使用文本“ Hello”。他无法用Java或C ++创建程序。 答案格式 #Answer # - <language name> [version, if pertinent] Requirement: <rule>. <code> [explanations, encoding, TIO link, etc.] 回答规则 答案必须遵循上述格式或类似格式。 答案可以是程序或函数。 答案必须满足直到当前答案的所有要求。 同一用户不能连续发布两个答案。 如果两个答案发布的编号相同,则应删除稍后发布的答案。 除非您搞砸了并且没有其他答案,否则不要编辑您的要求。 如果您的答案不符合您的规则和所有其他规则,则该答案无效。在其他人发布下一个答案之前,尝试解决此问题。 如果在任一版本中创建的程序或函数在另一版本中的行为不同,则同一语言的不同版本仅算作不同语言。 答案可能不接受任何不需要的输入,并且可能不输出除了必需的空格以外不需要的任何内容。但是,尽管在后台程序必须满足所有“隐藏”(来自用户)的要求,但它可以执行您想要执行的其他任何操作,尤其是在必须满足执行时间要求的情况下。 需求规则 该需求只能指定一个需求。该要求可以是有条件的,并且如果此要求需要输入和/或输出,则可以将其包括在内。 该需求可能不会删除或修改先前的需求,也不会与之冲突,但可以扩展一个需求(指定哪个)。 如果需求限制了来源(stricted-source),或者需要来源中的文本,则它只能删除单个字符串(例如0,Hello),或者只需要单个字符。 该要求不能要求源小于100字节,不能要求特定的编码,或者不能排除大多数通用语言。 该要求可能不会强制源遵循受限源中指定的模式以外的其他模式(例如,以特定字符开始每行,或将(@Conor)散列为特定值)。 这是答案链,因此所有答案都基于先前的答案。我和其他人可能会尝试保留所有要求的清单。要按顺序查看答案,可以按最旧的排序。要查看最新答案,请按最旧答案排序,然后导航到列表末尾。 …

20
将输入转换为方向
挑战 以<n1>, <n2>number可以为-1、0或1 的形式给定输入,返回相应的基本方向。正数在x轴上向东移动,y轴上向南移动,负数在x轴上向西移动,y轴上向北移动。 输出必须在形式South East,North East,North。区分大小写。 如果输入为0,0,则程序必须返回That goes nowhere, silly!。 样本输入/输出: 1, 1 -> South East 0, 1 -> South 1, -1 -> North East 0, 0 -> That goes nowhere, silly! 这是代码高尔夫球,最短的答案以字节为单位。

5
翻译迷失
如果您不熟悉这种格式,这是一个警察和强盗,请单击标记以转到Wiki。这个问题不会有强盗的线索。 警察 作为警察的任务是从“ 整数序列在线百科”中选择两个序列,并编写一个程序以一个序列的第n个元素为输入并输出第二个序列的第n个元素。然后,您将做出包含代码的答案,并省略所选的序列。强盗将尝试找到您选择的序列,如果一个人设法找到了您要记住的序列或您的程序必须将其他序列标记为“ 破解”。如果强盗通过裂缝告知您您认为无效,则可以出示不是裂缝的证据。否则,您必须对其进行标记。 根据7天内未破解的常见答案,可以标记为安全。一名警察可能会通过揭示他们想出的顺序来将其答案标记为安全。一旦安全,答案将不再被破解。 目的是使程序的字节数最小化,同时保持其完整性。 例 以下Python代码将A000290的第n个元素(平方数)转换为A000217(三角形数): lambda x:sum(range(0,int(x**.5+1))) 规定和要求 如果选择的序列尚未被证明是有限的,则必须输出所有可能存在的术语,而不仅仅是OEIS页面上列出的术语 作为以前的规则的例外,没有无限精度整数的语言不必输出或输入超出其范围的数字。 输入序列的大小一定不能证明小于输出序列的大小。 您的输入序列不得包含任何重复元素(否则该任务几乎是不可能的) OEIS默认情况下在其页面上包含一个索引(“ OFFSET”标头之后的第一个数字),如果您选择另一个索引,则这是您对n的偏移量(n等于序列中第一个元素的索引)。你的答案。 如果您选择的偏移量不同于OEIS上列出的偏移量,则仍必须将输入序列中的所有元素映射到输出序列中的相应元素。 如果您的程序收到的输入不在输入序列中,则它可能会做任何希望的事情(未定义的行为)。但是,仍然输出整数可能符合您的最大利益。 故意使您的代码难以运行,这很不精打细算,无论是通过花费大量时间来执行代码还是通过非自由语言选择。虽然我将强制执行后者,但我不能客观地强制执行前者。但是,为了好玩,我恳请您不要尝试使用前者,因为对于那些计算机较弱的人来说,挑战尤其困难。 强盗 作为强盗,您的任务是选择完整,不安全的答案,并找到它们之间的对应顺序。如果找到解决方案,则可以使用有效的解决方案(不一定是警察的预期解决方案),在适当的答案上注释序列。 强盗不必担心验证两个特定的序列是否为解决方案,如果匹配OEIS上的所有条目,则应发布解决方案。如果这不是警察考虑的顺序,则警察可能会提供证明它是不正确的证据,或者如果找不到他们,则将其标记为破裂。

20
可视化嵌套数组
您将获得一个嵌套数组。您的程序必须可视化数组。 但是..如何? 例如,假设我们有一个嵌套数组,例如 [["1","2"],[["1","2"],"3"],"4",[[[["5"]]]],"6"]。 此嵌套数组可以显示为: ->1 ->2 -->1 -->2 ->3 >4 ---->5 >6 例子 Input 1: ["Atom",["Proton",["Up Quark", "Up Quark", "Down Quark"], "Neutron", ["Up Quark", "Down Quark", "Down Quark"], "Electron"]] Output 1: >Atom ->Proton -->Up Quark -->Up Quark -->Down Quark ->Neutron -->Up Quark -->Down Quark -->Down Quark ->Electron Input 2: …

13
更改代码,更改顺序:强盗
这是警察和强盗的挑战。有关警察的信息,请转到此处。 这个挑战涉及警察选择的两个OEIS序列-S 1, S 2-以及对这些序列进行打高尔夫球和模糊处理的程度。 警察正在构建产生S 1的代码A,并给出一个数字X,他们声称这是创建产生S的B的最佳Levenshtein距离(以字符为单位) 2。 强盗的挑战 要破解特定警察的提交内容,强盗必须提供与该答案产生S 2(n)且Y字符从A变为(带有)的相同语言(和版本)的程序C。强盗不一定需要找到完全相同的东西Y <= X与警察(秘密地)产生 B代码。强盗的陈述必须遵循与警察的陈述相同的0索引或1索引。 如果您能解决此问题,请在解决方案中发布答案,并链接到警察的答案,然后在警察的答案上留下评论(链接回您的答案)。 每个警察的答案只能破解一次,当然,您也不能破解自己的答案。如果警察的答案在被破解之前或之后被证明是无效的,则不计入强盗的分数。 获胜和得分 抢劫犯会(X - Y)*5 + 5根据他们的每个得分进行得分,总分最高的抢劫犯会获胜。 进一步规则 您不得使用任何内置函数进行散列,加密或随机数生成(即使您将随机数生成器植入固定值)。 允许使用任何程序或函数,但代码不得为摘要,并且不得假定为REPL环境。 您可以采用任何方便的格式输入并提供输出。两个序列的输入/输出方法必须相同。 Levenshtein距离这一挑战的权威计算器就是这个 Planet Calc上的计算器。 除了作为一个CNR的挑战,这是代码高尔夫球因此所有往常一样打高尔夫球规则。

10
Windows错误框更上一层楼
您知道那些Windows盒子只能做一件事吗? 让我们将其带入一个新的高度! 挑战 创建一个带有按钮的对话框,该按钮可随您的光标移动到任何地方! 眼镜 不可输入。可能输出到STDOUT或STDERR。您必须使用一个按钮打开一个窗口(不需要文本,但是文本可能包含在窗口标题,对话框或按钮中)。该按钮必须是可单击的,并且必须始终位于光标下方,以便您只能单击它。单击后,它可以做任何您想做的事,但是请不要使它崩溃,因为我将对此进行测试...只要不按下按钮,对话框就必须保持打开状态,但是它不需要关闭按钮时关闭。 你可以做的假设 您可以假定光标将停留在绘图画布中。 您可以假定窗口将保持焦点,但是只要不按下按钮,就不能使窗口失去焦点。 伪代码示例 这是一些示例伪代码: Open Dialog Box Add Button to Dialog Box at position X, Y WHILE True: SET Dialog Box to CursorX - X, CursorY - Y 无法为该挑战提供测试用例 这是一个代码高尔夫球挑战赛,因此3月14日(Pi Day)最短的有效提交将获胜!
15 code-golf 

5
查找具有最小均值2.0的子矩阵
您会得到一个n×m的整数矩阵,其中n,m> 3。您的任务是找到平均值最低的3×3子矩阵,然后输出该值。 规则和说明: 整数将为非负数 可选的输入和输出格式 输出必须精确到至少2个十进制小数点(如果不是整数) 子矩阵可以由任意列和行组成 测试用例: 1 0 4 0 1 0 1 0 4 0 1 0 4 3 4 3 4 3 1 0 4 0 1 0 Minimum mean: 0 (We have chosen columns 2,4,6 and rows 1,2,4 (1-indexed) ----------------------------- 4 8 9 7 5 …
15 code-golf  math  matrix 

6
你有一天连胜!
编写一个程序,跟踪其运行的连续天数。 白天在午夜(运行该程序的计算机的本地时间)重置。 如果一天中没有运行该程序,则将计数器重置为零。 每次运行该程序时,如果这是该天第一次运行该程序,则计数器应增加一天。这意味着程序第一次运行时,应该说:“您有1天的连胜!” 程序的输出格式为: You have a [streak_length] day streak! 您可以选择在外部存储数据或修改源代码。 这是代码高尔夫球,因此以字节为单位的最短代码胜出!
15 code-golf  date 

10
找到战争游戏的结果
找到战争游戏的结果 当我上小学时,有一场“石头剪刀布”式的游戏,我们在集会期间,等我们的老师,在课间休息时会玩。我们称之为“战争”。然而,经过一些搜索,事实证明这是“ Shotgun Game”(根据WikiHow)的简单得多的变体。由于规则略有不同,因此我将其称为“战争”: 2个人坐在彼此对面。游戏的目的是“杀死”另一位玩家。每回合,您可以玩以下3个动作之一: 重新装填:您有一杆枪可以一次射击。必须先重新加载它,然后才能每次射击。在已经拥有弹药的情况下重新加载是合法的,但不会执行任何操作。用两只手轻敲您的太阳穴即可象征重新装填。每个玩家从0弹药开始。 警卫:唯一安全的举动。如果您在守卫时被枪杀,则不会死。双臂交叉在胸前象征着警卫。 火:开枪。要成功射击,您必须自上次射击以来已重新加载。如果您的对手正在加注,您将获胜。如果他们也开火,而且你们俩都有弹药,那就平局了。如果他们在守卫,您就浪费了弹药。虽然没有弹药射击是合法的举动,但它却无能为力,使您像重新装弹一样容易受伤。指向其他玩家象征着射击。 玩法与RPS相似,在于每个玩家同时放弃选择(我们在回合之间两次敲击双腿以保持节奏,但这对挑战并不重要)。 挑战: 您的任务是找到战争游戏的结局。它可以是功能或完整程序。 输入值 每个玩家选择的回合选项将由一个字符/字符串表示: r:重新加载 g:守卫 f:着火 输入将是成对列表,带分隔符/不带分隔符的字符串或沿这些行的其他任何内容。 Python中的示例输入可以为[("r", "g"), ("f", "r")],这意味着在第一回合中第一位玩家重新装弹,第二位玩家守卫。在第二个回合中,第一个玩家射击,而第二个玩家重新加载。玩家一赢得这场比赛。同样的输入可以选择性地为代表"r g f r","rgfr","rg fr" "rg-fr"... 您可以假设以下内容: 输入内容将与您选择的格式匹配,并且仅包含有效字符。 有人会在100转内死亡。 但是,您不能假设某人死亡时转弯结束。 输出量 一个值,指示谁(或谁先赢*)。您可以选择每种方案的输出内容,但必须考虑以下因素: 玩家1获胜 玩家2获胜 他们互相残杀(平局) 每个结果必须具有地区值,并且对于每种情况都必须始终相同。 例如:您可以1在玩家1获胜2时,玩家2获胜时以及0平局时输出。然后,您必须在玩家1获胜时,玩家2获胜时以及平局时始终输出。120 它可以返回或打印到标准输出。尾随空格很好。 显然,导致平局的唯一情况是两名球员都开火,并且双方都有弹药。 *由于在此挑战中,某人死亡后回合可能会继续,因此最终可能会有1个以上的玩家获胜。您需要根据输入查找谁先赢。 测试用例(假设1P1获胜,2P2获胜以及0平局): "rg fr" => 1 (P1 shot P2 while they …
15 code-golf  game 

7
给我编织一个ASCII袜子
介绍 长话短说:几天前,我不小心开始编织袜子,平针的漂亮逻辑结构使我想到:我们为什么不只用ASCII编织袜子? 输入值 输入在该范围内整数N,偶数[2,30]。 输出量 显然,输出是袜子。 结构体 由于我们将仅使用平针,因此仅v用于向下针和>向右针。让我用以下示例说明完整结构N=8: vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvv>>> vvvvvv>>>>>> vvvvv>>>>>>>>> vvvv>>>>>>>>>>>> vvvv>>>>>>>>>>>>>>>>>>>>>>>> vvvv>>>>>>>>>>>>>>>>>>>>>>>>>> vvvv>>>>>>>>>>>>>>>>>>>>>>>>>> vvvv>>>>>>>>>>>>>>>>>>>>>>>> 第一块是上部。它具有宽度N和高度N*1.5 之后,脚跟开始。您v从右侧每行减去一个,直到N/2宽度等于。然后添加下面N/2宽度的行N/2以完成向下编织。请注意,它给出的N/2 + 1行的总宽度为N/2 第一部分: vvvvvvvv //begin with width N vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv vvvvvvvv // …

5
播放Pi的声音
是的,您没看错标题。播放pi的声音。 更具体地说,对于前1000个pi中的每个数字,将其映射到音符,然后将产生的旋律输出到文件中。 基本上,每个数字都变成C大调音阶(基本上是正常音阶)上的音符。所以1圈到中间C,2圈到D4,3圈到E4,9圈到D5,依此类推。 规则 每个音符的长度应恰好为0.5秒。 旋律应包含pi的前1000位,包括开头的3。 1到7代表中间C到B4,8是C5,9是D5,0是E5 允许所有受良好支持的文件格式,只要它们是在此挑战之前创建的即可。 文件中的任何位置(包括开始和结束)都可能没有暂停。 乐器演奏没关系。只要可以轻易听到正确的声音,它就可以是钢琴,正弦波,或者其他任何东西。 除文件外,它不接受任何输入,不产生任何输出。禁止从其他文件读取。 禁止出现标准漏洞。 示例数学代码: (*please forgive me for this horrible, horrible mess of code*) digits = RealDigits[Pi, 10, 1000][[1]] /. {0 -> 10}; weights = {0, 2, 4, 5, 7, 9, 11, 12, 14, 16}; melody = {}; For[i = 1, …

5
十六进制转储您的源代码
在进行代码搜寻时,有时需要使用十六进制转储代码,通常是因为您使用了无法打印的字符。那么,为什么不编写一个十六进制转储本身的程序呢? 挑战 面临的挑战是,在没有任何输入的情况下,以以下格式输出源代码的十六进制转储: 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 0020: 00 00 00 00 00 00 00 00 00 00 …
15 code-golf  quine 

3
找到最短的哥伦布尺子
哥伦布尺子是非负整数的集合,因此集合中没有两对整数间隔相同。 例如,[0, 1, 4, 6]是Golomb标尺,因为此集合中两个整数之间的所有距离都是唯一的: 0, 1 -> distance 1 0, 4 -> distance 4 0, 6 -> distance 6 1, 4 -> distance 3 1, 6 -> distance 5 4, 6 -> distance 2 为了简化此挑战(并且翻译很简单),我们强加了Golomb标尺始终包含数字0(前面的示例中这样做)。 由于该集合的长度4,因此我们说这是一个有序 的Golomb标尺4。此集合(或元素,因为0总是在集合中)中的最大距离是6,因此我们说这是长度的哥伦布尺 6。 你的任务 找到哥伦布统治者为了 50给100有小(含)的长度,你可以找到。您发现的标尺不一定是最佳的(请参见下文)。 最优性 N如果没有其他N长度较小的Golomb直尺,则称Golomb直尺是最优的。 最佳Golomb直尺的订单少于28个,但随着订单的增加,找到和证明最优性变得越来越困难。 因此,不能期望您找到介于50和之间的任何订单的最佳Golomb标尺100(甚至更不可能期望您可以证明它们是最佳的)。 程序的执行没有时间限制。 基准线 下面的列表是使用天真的搜索策略评估的Golomb尺规从50到100(按顺序)的长度列表(感谢@PeterTaylor获得此列表): [4850 …

5
卷尺字符串
动机:有时您需要知道字符串中的位置。您希望能够查看字符串的任何部分,并尽可能准确地知道您的位置。 挑战:编写程序以输出给定长度的卷尺字符串。一个卷尺字符串自我介绍它的长度那么远尽可能多地沿着它自己的长度。 规则: 您的程序必须使用一个正整数参数,表示卷尺字符串的总长度 对于输出的数字每个连续的字符串,这些数字必须如实申报输出的长度为止- 包容! 长度从字符串的开头到每个数字的结尾进行测量 字符串中应包含尽可能多的长度数字 避免歧义。分隔符/分隔符可用于避免数字并置,即12说十二个不是一,二。 字符串必须始终准确地报告其末尾的总长度,且没有结尾的分隔符 您可能需要多个分隔符以保持长度准确,例如,这是一个长度为4的卷尺示例: 1--4 非说明性/详尽的示例: 卷尺长度为1的卷尺 1 长度为2的卷尺字符串: -2 卷尺长度为3的卷尺 1-3 卷尺长度为4的卷尺:1--4或-2-4(两个报告长度都应尽可能长,即两次,并以正确的总长度结尾) 卷尺长度为10的卷尺: 1-3-5-7-10 卷尺长度为11的卷尺:1-3-5-7--11或1-3-5--8-11或1-3--6-8-11或1--4-6-8-11或-2-4-6-8-11(所有长度都尽可能长,并以总字符串长度结尾)
15 code-golf  string 

25
该程序将找到下一个素数
介绍: 您不小心用了一个有趣的设备破坏了时间流,该设备原来是一台时间机器。结果,您被推到了遥远的未来。您意识到计算,处理能力和计算机总体上已经发生了巨大的发展,确切地说,它是无限的。因此,您可以抢购一台具有无限内存和处理能力的计算机。您不知道它如何具有无限的内存和无限的处理能力,但是您只接受它并回到现在。 挑战: 您听说发现当前最大黄金的人2^74,207,281 − 1获得了$ 100.000的报酬。您决定制作一个程序来查找下一个素数,因为您想取回在计算机上花费的钱。您可以制作一个通过输入数字并通过暴力破解或任何其他方法找到下一个质数的数字。 说明: 您有一台假设的机器,具有无限的存储和处理能力。您的程序一定不能受到限制(例如:C#的int可以存储从-2,147,483,648到2,147,483,647),那么您的程序必须能够存储并且可以使用任意数量的任何大小的文件。您拥有无限的资源,因此如果允许,则不必担心是否会耗尽内存。 I / O示例: 输入:当前发现的最大质数,具有22,338,618位数字。 输出:正好是下一个素数 显然,您不必证明它可以工作,因为在物理机上进行计算将花费大量时间。但是,如果将程序转移到具有无限处理能力/内存的虚拟机上,它应该立即进行计算。 找到下一个质数并检查数字是否为质数是两件完全不同的事情
15 code-golf  math  primes 

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.