编程拼图和代码高尔夫

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

30
我是一个自我号码吗?
一个自号(也称为哥伦比亚或Devlali号)是一个自然数,x其中的公式n + <digit sum of n> = x对任何自然数无解n。例如,21不是一个自数,n = 15结果为15 + 1 + 5 = 21。另一方面,20 是一个自己的数字,因为n找不到满足这种相等性的数字。 由于此定义引用数字总和,因此它取决于基数。出于此挑战的目的,我们将仅考虑基数为10的自身编号,即OEIS 中的序列A003052。二进制(A010061)和以100为基数(A283002)的自编号也经过计算。 挑战 给定一个正整数x作为输入,如果x以10为底的自数,则输出一个真值,否则输出一个假值。为了澄清真实值和虚假值,请参阅此主题的meta文章。 您可以编写完整的程序或函数,并且可以在任何常用通道上提供输入和输出。当然,标准漏洞是被禁止的。 这是代码高尔夫球,因此答案越短(以字节为单位)越好! 测试用例 真相: 1 3 5 7 9 20 31 86 154 525 虚假: 2 4 6 8 10 15 21 50 100 500 沙盒链接 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 …

30
二进制斐波那契
挑战 您需要生成一个程序或函数,该程序或函数需要一个正整数N,以二进制形式计算斐波那契数列的前N个项,将其连接为单个二进制数,将该数字转换回十进制,然后将十进制输出为整数。 例如 1 -> [0] -> 0 to decimal outputs 0 3 -> [0, 1, 1] -> 011 to decimal outputs 3 4 -> [0, 1, 1, 10] -> 01110 to decimal outputs 14 您无需输出->,只需输出数字(例如,如果用户输入4,则仅输出14)。箭头仅用于帮助解释程序必须执行的操作。 测试用例 1 -> 0 2 -> 1 3 -> 3 4 -> 14 5 …

30
可分割条纹
我们可以定义整除条纹k一批n通过寻找最小的非负整数,k这样n+k是不是整除k+1。 挑战 用您选择的语言编写输出或返回输入的可分割条纹的程序或函数。 例子: n=13: 13 is divisible by 1 14 is divisible by 2 15 is divisible by 3 16 is divisible by 4 17 is not divisible by 5 的多样性条纹13为4 n=120: 120 is divisible by 1 121 is not divisible by 2 的多样性条纹120为1 测试用例: n DS 2 1 …

22
构造龙卷风
根据我的说法,龙卷风看起来像这样: ######## ####### ###### ##### #### ### ## # 此龙卷风以width开头n,在下一行中,根据输入,从左侧或右侧删除一个字符。 输入值 输入将是任何两个唯一值的列表(一个由两个唯一字符组成的字符串也可以),以及一个可选的正整数(表示起始宽度)的列表。如果未采用可选的整数,则起始宽度比列表的长度大1。让起始宽度为n。 如何制作龙卷风 在我的示例中,我选择了包含1s和0s的列表,尽管您可以选择任意两个不同的常量值,或者任意两个不同的常量字符的字符串。 第一行将由n非空白字符组成(您可以选择任何一致的字符;我选择#示例)。 然后,对于列表中的每个数字,如果数字为0,则删除左字符并创建一个新行;如果是1,请删除正确的字符并创建新行。 因此,以上龙卷风是的输出8, [1, 0, 0, 0, 1, 0, 0]。 输出量 输出可以是字符串列表,字符列表或多行字符串。允许在每行末尾添加空白,并在末尾添加换行符。 测试用例 这些测试用例包括起始宽度和的使用列表1, 0。 5, [1,0,0,1] ##### #### ### ## # 10, [1,0,0,1,0,1,0,0,1] ########## ######### ######## ####### ###### ##### #### ### ## # 7, [1,1,1,1,1,1] …

4
一条链上的狗
我从阁楼的窗户向外望去,到邻居家的院子里。他们的狗被拴在院子中央的一个柱子上。狗在院子里跑来跑去,但总是在链的尽头,所以它最终在泥土中留下了痕迹。通常,这条轨道是完美的圆形,但是我的邻居的院子里还有其他一些杆子,狗的链子就被抓住了。每次狗链碰到一根杆时,狗都会绕着新的杆旋转,而无论链的长度如何,半径都会保持不变。由于极,狗和链条的宽度均为零(我的邻居是数学家),因此链条可以无限地绕杆子缠绕,而圆半径不会缩短。如果链条在其路径中,则狗也可以通过链条(但不能穿过项圈)。观察了一段时间后,我决定编写一些代码来模拟邻居的狗。该代码将获取狗被拴在其上的中心杆的位置,邻居院子中其他杆的位置,链的长度以及狗的起始位置,并输出一个图,以指示狗已经把草磨破的小路。您可以假定以下各项的任何组合都是常数(因此不将其作为输入): 狗拴在一起的电线杆的位置 链长 狗的起始位置 太阳正在升起,所以被窗户照亮的阁楼地板上的空间正在缩小,给我的编写代码的空间越来越少。请尽量减少代码的字节数,以便我有足够的空间在阁楼上草拟该代码。 测试用例 在这里,我假设那只狗从链条所在的极点(红点)向南3个单位开始0,0。为了清楚起见,我已经在极点处指示了点,您无需在输出中包括它们。 Poles at 1,2 -1,2 Poles at 0,.5 Poles at 0,1 1,1 -2,1 -1,-.5 Poles at 0,1 1,1

18
统一标识符
介绍 根据定义,唯一标识符应该是唯一的。具有多个相同的标识符会导致检索意外数据。但是,由于数据是同时从多个来源到达的,因此很难确保唯一性。编写一个函数以统一标识符列表。 这可能是我写的最糟糕的拼图绒毛,但您明白了。 要求 给定一个零个或多个正整数的列表,请对每个数字从头到尾应用以下规则: 如果数字是同类数字中的第一个,请保留该数字。 如果以前遇到过该数字,请用在整个输入列表或任何现有输出中未找到的最低正整数替换它。 对于解决方案: 解决方案可以是程序或功能。 输入可以是字符串,数组,作为参数传递的输入或键盘输入。 输出可以是字符串,数组或打印到屏幕上。 输出列表中的所有数字都是唯一的。 假设条件 输入列表是干净的。它仅包含正整数。 正整数的范围是1到2 31 -1。 程序变量的可用内存少于256 MB。(基本上,不允许使用2,147,483,648个元素的数组。) 测试用例 Input: empty Output: empty Input: 5 Output: 5 Input: 1, 4, 2, 5, 3, 6 Output: 1, 4, 2, 5, 3, 6 Input: 3, 3, 3, 3, 3, 3 Output: …

30
无限打印芝诺的二分悖论(1 /(2 ^ n))
维基百科:芝诺的二分法悖论 无限数量的数学家走进酒吧。第一个点啤酒。第二个人点半杯啤酒。第三个人点了四分之一的啤酒。酒保阻止了他们,倒了两杯啤酒,然后说:“你们都是白痴。” Reddit 在程序运行期间,请打印以下系列,每个项目的分母每次都乘以2: 1 + 1/2 + 1/4 + 1/8 + 1/16 + 1/32 + ... 随着n接近无穷大,该序列的总和也趋近2。 规则 不,您可能无法打印2。 您可能不会将其打印1/1为第一项。 您可以根据需要删除空格1+1/2+...或添加空格1 + 1 / 2 + ...。 由于流行的需求,您可以使用换行符代替空格作为分隔符。 您可以将附加.的加一个常数0s到分母如果需要的话。 “无限”表示没有不必要的延迟,并且尽可能地受当前(可变)系统规范的限制,但不受您当前语言的限制。 有标准漏洞。 这是代码高尔夫球,因此最短答案以字节为单位。

30
制作一个尖尖的盒子
给定两个正整数W和H,输出一个ASCII艺术框,其边框由斜杠(/和\)组成,顶部和底部边缘带有W“尖峰”,而左侧和右侧边缘则带有H“尖峰”。盒子的内部充满了空间。 一个“尖峰”就是两个斜线一起形成一个箭头形状: /\ \/ / \ \ / 因此,输出W = 4, H = 3将是 /\/\/\/\ \ / / \ \ / / \ \/\/\/\/ 因为顶部有4个尖峰,向上有4个尖峰,底部有4个尖峰,左侧有3个尖峰,右侧有3个尖峰。 以下是一些其他输入/输出对: W H [spiky slash box] 1 1 /\ \/ 1 2 /\ \/ /\ \/ 2 1 /\/\ \/\/ 2 2 /\/\ \ / …

24
以ASCII格式绘制HyperNeutrino的苯六邻体图标
为了庆祝HyperNeutrino追随Xcoder 先生,收回他的帐户和代表。 抱歉,为了获得可旋转性而旋转图片。 确切地打印或输出此ASCII艺术作品。您可能有尾随空格和/或尾随换行符。 _______________ / \ / / \ \ / / \ \ / / \ \ / / \ \ / / \ \ \ / \ / \ / \ / \ _____________ / \_______________/ 这描绘了苯分子的两个共振结构之一 相关:同心六边形,星号填充六边形 排行榜: 显示代码段 var QUESTION_ID=128104,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/128104/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function …

7
最长的多米诺骨牌链
挑战说明 多米诺骨牌(Dominos)是一款带有两个值的图块-左边是一个值,右边是一个值,例如[2|4]或[4|5]。如果两个图块包含公共值,则可以将它们连接在一起。上面的两个图块可以像这样连接: [2|4][4|5] 我们将n连接的瓦片序列称为长度为n 的链。当然,地砖可以旋转,所以瓦片[1|2],[1|3]并且[5|3]可被重新安排到一个链[2|1][1|3][3|5]长度为3的。 给定整数对列表,请确定可以使用这些图块形成的最长链的长度。如果列表为空,则正确答案为0(请注意,您始终可以1从非空的图块列表中形成一个长度链)。 样本输入/输出 [(0, -1), (1, -1), (0, 3), (3, 0), (3, 1), (-2, -1), (0, -1), (2, -2), (-1, 2), (3, -3)] -> 10 ([-1|0][0|-1][-1|2][2|-2][-2|-1][-1|1][1|3][3|0][0|3][3|-3]) [(17, -7), (4, -9), (12, -3), (-17, -17), (14, -10), (-6, 17), (-16, 5), (-3, -16), (-16, 19), (12, -8)] …

26
第一行和第一列的总和,然后第二行和第二列的总和……等等
以包含正整数的非空矩阵/数字数组作为输入。按此顺序返回第一行和第一列的总和,然后返回第二行和第二列的总和,直到没有更多行或列为止。 假设输入为: 2 10 10 2 4 9 7 7 2 9 1 7 6 2 4 7 1 4 8 9 然后输出应为: 45, 33, 16, 17 因为:2+9+1+7+10+10+2+4=45, 7+7+1+7+2+9=33, 6+4+2+4=16, 8+9=17。 测试用例: 测试用例采用以下格式: Input --- Output 5 --- 5 .......... 1 4 ---- 5 .......... 7 2 --- 9 .......... …
31 code-golf  math  matrix 

6
你迷路了吗?
您的任务是实现整数序列A130826: 一个Ñ是最小的正整数,使得一个ñ - N的是整个多3和的约数的数量的两倍(一个ñ - N)/ 3给出了Ñ 个术语在由弗拉菲乌斯产生的序列的第一个差异约瑟夫斯筛。 迷路了吗?好吧,这实际上很容易。 所述flavius约瑟夫筛定义如下的整数序列。 从正整数序列开始,设置k = 2。 除去每ķ 个序列的整数,开始与ķ 个。 递增k并返回到步骤2。 f n是永不删除的第n 个整数(1索引)。 如果-像往常一样- σ 0(k)的表示整数的正除数的数ķ,我们可以定义一个Ñ为最小的正整数,使得2σ 0((一个ñ - N)/ 3)= F n + 1个 -f n。 挑战 写一个程序或函数,它接受一个正整数Ñ作为输入,并打印或返回一个ñ。 适用标准代码高尔夫球规则。愿最短的代码获胜! 工作的例子 如果我们删除正整数的第二个元素,则剩下 1 3 5 7 9 11 13 15 17 19 21 23 …

30
坚持答案
在运行时,不断提示输入一行,直到用户输入了某些内容(空换行符除外),即不只是按Enter或OK。既不需要也不禁止输出或结果。 伪代码1 myform = new form("GUI") myform.mytxt = new editfield("") myform.ok = new button("OK") repeat waitfor(myform.ok,"click") until myform.mytxt.content <> "" 伪代码2 LET TEXT = "" WHILE TEXT = "" DO TEXT = PROMPT("") ENDWHILE 例子1 程序运行并立即弹出一个带有单个文本字段和一个OK按钮的表单。 用户单击OK按钮。 没发生什么事。 用户将“ hello world”粘贴到文本字段中,然后单击OK按钮。 程序终止。 例子2 调用该函数,并立即显示空白行和闪烁的光标。 用户按Enter。 光标向下移动一行。 用户按Enter。 光标向下移动一行。 用户按PPCGEnter 功能返回。
31 code-golf 

30
使您的语言*大部分*不可用(强盗的线程)
受到此评论的启发... 感谢用户Step Hen,Wheat-Wizard和Dennis帮助我在发布挑战之前确定了挑战的规格! 这是强盗的线索!有关警察的线索,请转到此处 在这个挑战中,您需要运行一些代码来使您的语言不再满足我们成为编程语言的条件。在这一挑战中,这意味着要做到这一点,以便不再能使用该语言... 进行数字输入和输出 将两个数字相加 测试某个数字是否为质数。 这是一个警察与强盗的挑战,其中有两个不同的挑战,其目标是两个不同:警察将尝试编写一些使该语言几乎不可用的代码,并且强盗将尝试找到允许警察使用的隐藏变通方法恢复他们的语言。 警察将编写两个代码段: 一种使其语言几乎无法使用的方法,例如,通过删除用于进行输入/输出和数字运算的内置函数。此代码是不是允许崩溃或退出。应该可以在此代码段的末尾添加代码,并且该代码将得到评估。和 一小段代码,将两个数字作为输入,将它们加在一起,然后输出它们的和。即使运行第一个代码段后,该代码段也必须仍然能够正常运行。当两个代码片段组合在一起时,它们必须形成一个将两个数字相加的完整程序,或者定义一个将两个数字相加的函数。此代码段可能依赖于晦涩的行为,并且很难找到。 警察还将选择任何标准的输入和输出方法。但是,他们必须准确显示他们正在使用哪种格式(输入和输出)。要破解他们的答案,您必须遵循相同的输入/输出格式,否则您的破解就不算在内。 警察的答案将永远揭示 第一个摘要(显然不是第二个)。 语言(包括次要版本,因为大多数提交可能都依赖于奇怪的情况) IO格式,包括功能或完整程序。强盗必须使用相同的格式才能有效破解。 任何奇怪的情况下,他们的答案才能起作用。例如,仅在linux上运行,或者需要Internet连接。 作为强盗,您必须查看其中一个警察提交的内容,然后尝试对其进行破解。您可以编写任何可以用作代码段2的有效代码段(在使该语言几乎不可用之后将两个数字加在一起)来破解它。但这不是必须是相同的片段,警察最初编写。破解答案后,将代码发布为该线程的答案,并发布指向您答案的链接,作为对警察答案的评论。然后,该帖子将被编辑以指示已被破解。 这是一个例子。对于第一个代码段,您可能会看到以下python 3程序作为警察的答案: Python 3 print=None 从STDIN接收输入并输出到STDOUT 有效的第二个片段可能是 import sys a,b=int(input()),int(input()) sys.stdout.write(a+b) 这是有效的,因为它将两个数字作为输入,并且即使您将两个摘要合并在一起也可以输出它们的总和,例如 print=None import sys a,b=int(input()),int(input()) sys.stdout.write(a+b) 这是对他们答案的有效破解。 如果警察的答案整整一个星期没有变化,他们可以在第二个片段中进行编辑,并指出他们的答案现在是安全的。一旦安全起见,就不能再尝试破解了。如果他们不安全地编辑它,则可以继续尝试对其进行破解,直到他们这样做为止。 强盗线索的胜利者是破解最多答案的用户,而决胜局是他们达到N条裂缝的时间。(例如,如果两个不同的用户各自有5个裂纹,则第5个裂纹首先发布的用户就是获胜者。)经过足够的时间后,我将以最高票数接受获胜者的回答。 玩得开心! 规则澄清 第一个代码段必须正确运行而不需要任何输入。它可能会输出您喜欢的任何内容,并且该输出将被忽略。只要代码段完成后,第二个代码段就可以正确运行。 为了使您的答案有效,实际上必须执行第二个代码段。这意味着答案像 import sys sys.exit() 无效,因为它不会破坏语言。它只是退出。 安全后,您的得分就是两个代码段的字节数。 这可以回溯到“ 请揭示工作答案所需的任何奇怪的情况 …

13
费马小姐失踪
费马的最后一个定理说,a^n + b^n = c^n对于任何一个方程,都没有正整数解n>2。1994年,安德鲁·威尔斯(Andrew Wiles)证明了这一点。 但是,有许多“差点错过”几乎满足了双色子方程,但却错过了一个。精确地,它们都大于1,并且是的整数解a^3 + b^3 = c^3 + 1(顺序是等式两边的值,按升序排列)。 将给您任务n,以打印出n此序列的第一个值。 以下是序列的前几个值: 1729, 1092728, 3375001, 15438250, 121287376, 401947273, 3680797185, 6352182209, 7856862273, 12422690497, 73244501505, 145697644729, 179406144001, 648787169394, 938601300672, 985966166178, 1594232306569, 2898516861513, 9635042700640, 10119744747001, 31599452533376, 49108313528001, 50194406979073, 57507986235800, 58515008947768, 65753372717929, 71395901759126, 107741456072705, 194890060205353, 206173690790977, 251072400480057, 404682117722064, 498168062719418, 586607471154432, 588522607645609, …

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.