编程拼图和代码高尔夫

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

30
鸭,鸭,约瑟夫斯
给定一个整数数组: 从第一个数字开始 向前跳转n个位置,其中n是当前位置的值 删除当前位置,使下一个位置成为当前位置。 转到第2步,直到剩下一个数字为止 打印该号码 规则 数组环绕(数组中最后一个数字之后的下一个数字是第一个数字)。 零将自身删除(很明显)。 不允许输入负数。 测试用例 [1] => 1 [1,2] => 1 [1,2,3] => 3 [1,2,2] => 1 [1,2,3,4] => 1 [6,2,3,4] => 4 [1,2,3,4,5] => 5 [0,1] => 1 [0,0,2,0,0] => 0 分步示例 [1,4,2,3,5] ^ start from the first position ^ jump 1 position …

30
我是斐波那契数吗?
你的任务: 编写程序或函数以检查输入的数字是否为斐波那契数字。 斐波那契数是斐波那契序列中包含的数字。 斐波那契数列定义为: F(n) = F(n - 1) + F(n - 2) 有了种子F(0) = 0和F(1) = 1。 输入: 0到1,000,000,000之间的非负整数,可以是也可以不是斐波那契数。 输出: 真/假值,指示输入是否为斐波那契数。 例子: 0-->truthy 1-->truthy 2-->truthy 12-->falsy 得分: 这是代码高尔夫球,最低字节数获胜。

30
第三次魅力
您的任务(如果希望接受)是编写一个输出正整数(大于0)的程序。如果源代码重复,则输出必须保持不变。棘手的部分是,如果源代码键入了三次(三倍?),输出将乘以3。 规则 您必须构建一个完整的程序。也就是说,您的输出必须打印到STDOUT。 初始源必须至少为1个字节长。 两个整数都必须以10为底(禁止以其他任何底数或以科学计数法输出)。 您的程序不得接受输入(或具有未使用的空输入)。 允许输出带有尾随/前导空格的整数。 仅当位数一致时才允许前导零,例如:001-001-003或004-004-012 您可能不会在源副本之间使用换行符。 这是代码高尔夫球,因此每种语言中最短的(原始)代码胜出! 默认漏洞适用。 例 假设您的源代码为,Abc并且其对应的输出为4。如果我AbcAbc改为编写并运行它,则输出必须仍然是4。但是,如果我编写AbcAbcAbc并运行它,则输出必须为12。 无耻地被盗源于Xcoder先生的挑战

30
再见残酷的世界!
背景 高尔夫球手您好!我想学习所有的编程语言!但是我的注意力范围很短...复制所有Hello World示例变得很无聊...但是我喜欢火!^ w ^ 挑战 所以这是计划!我希望所有人都编写最小的代码,这些代码将进行编译,打印Goodbye Cruel World!然后崩溃。或者,作为额外的扭曲挑战,打印Hello World!并崩溃Goodbye Cruel World! 规则 您的分数将是使用的总字符数。答案必须是一个完整的可执行程序。 您的程序必须打印Goodbye Cruel World!输出,然后崩溃(意外错误)。 要获得高分,必须打印Hello World!输出,但错误消息还必须包含Goodbye Cruel World!。如果您完成了奖金挑战,则可以将分数除以2。(如果要领取奖金,请在分数末尾加一个!!)。 只要仍然输出标准输出,并且仍然输出标准错误,顺序就没有关系。只要两者都不能阻止对方发生。 输出必须包含上述内容;"不应出现在输出中。 输出应包含指定的字符串,且不包含其他任何内容。 崩溃报告可以包含任何内容,但要获得红利,以下正则表达式应匹配/Goodbye Cruel World!/mi(aka,包含,忽略大小写/周围的文字) 字符串Hello World!和Goodbye Cruel World!不区分大小写,否则应与上面完全一样。 如果该语言能够崩溃(它不能更改其退出代码),则需要崩溃。否则,请使用该语言的标准“错误报告”(即STDERR)。 我可以使Python 3崩溃,因此我提供了一个示例 Python 3答案!现在,让所有人放纵世界!^ W ^ 显示代码段 var QUESTION_ID=125282,OVERRIDE_USER=0;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/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 getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var …

27
检查计算机是否连接到互联网
编写一个程序,根据脚本是否可以访问互联网,产生一个“ Truthy / Falsey”输出。您可以自行决定尝试连接到任何现有站点(请勿使用正常运行时间仅占10%的阴暗站点-尝试将年正常运行时间保持在80%以上)。如果网站关闭,你的程序就不会有工作。 它必须是独立程序或函数。您可以使用标准库之外的库来实现此目的。禁止出现标准漏洞。这是代码高尔夫,因此字节数最短的代码获胜。 伪代码示例: function a: try: connect to internet return 1 catch error: return 0 这是我的第一篇关于代码高尔夫的文章,因此,如果这以任何方式违反任何规则或被骗,请提醒我。 编辑:由于许多建议,我已经删除了UTF-8字节数限制

30
打印奥斯卡最佳图片奖得主
这项挑战是向2017年奥斯卡最佳影片奖得主La La Land Moonlight致敬! 您的挑战是打印文本 啦啦土地 暂停一秒钟,然后将文本更改为显示 啦啦地月光原始文本(La La Land)必须带有删除线。这可以通过清除屏幕,在原始文本上绘图或通过任何其他巧妙的解决方案来实现。 这是一个代码高尔夫球,因此最低字节获胜。适用标准代码高尔夫球规则。

30
无限磁盘I / O的最短代码
(只需在Google Chrome:D中打开50个标签(开个玩笑,不,您不能)) 无限磁盘I / O任何语言的最短代码,C#示例: using System.IO; namespace FileApp { static class Program { public static void Main() { do { File.WriteAllText("a", "a"); File.Delete("a"); } while (true); } } } 但是,您不能只填满整个磁盘,因为磁盘最终将停止并且是有限的。 而且你不能只阅读,无限写作必定会发生。(它必须在足够的运行时间后杀死我的SSD。) 破解!:)
49 code-golf 

30
最短的程序,连续分配内存
编写一个程序,该程序可以永久运行,并在运行时间越长的时候就在堆上分配越来越多的内存,至少要等到达到操作系统对可分配内存量的限制为止。 许多内核实际上不会保留分配给您的内存,除非您将其用于某些事物,所以如果您的程序是C语言或其他低级语言,则必须确保在每个页面上都写一些东西。如果您使用的是解释语言,则可能不必担心这一点。 最短的代码胜出。
49 code-golf 

9
以xkcd表示法读取日期
在关于ISO 8601标准日期格式的 xkcd中, Randall用一种颇为奇怪的替代表示法偷偷摸摸: 大数字是以当前顺序显示在当前日期中的所有数字,小数字是该数字出现的基于1的索引。因此,以上示例表示2013-02-27。 让我们为这种日期定义一个ASCII表示形式。第一行包含索引1到4。第二行包含“大”数字。第三行包含索引5到8。如果在一个插槽中有多个索引,则它们从最小到最大依次列出。如果m单个插槽中最多有索引(即,在同一数字上,并且在同一行中),则每一列应为m+1字符宽度且左对齐: 2 3 1 4 0 1 2 3 7 5 67 8 另请参见伴随挑战,以获得相反的转化。 挑战 给定xkcd格式的日期,请输出相应的ISO 8601日期(YYYY-MM-DD)。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 您可以假设输入的是介于0000和之间的任何有效日期9999。 输入中将没有任何前导空格,但是您可以假定这些行用空格填充到一个矩形,该矩形最多包含一个尾随空格。 适用标准代码高尔夫球规则。 测试用例 2 3 1 4 0 1 2 3 7 5 67 8 2013-02-27 2 3 1 4 0 1 2 4 5 5 …

30
输出字母,字母或仅一个字符
挑战很简单: 编写一个接受输入的函数或程序,x如果x是小写字母的一部分,则输出小写字母;如果x是大写字母的一部分,则输出大写字母,并输出x不属于大写字母的一部分。 规则: 输入可以是函数参数或来自STDIN 输入将是从32到126(空格到波浪号)的任何可打印ASCII字符。 输入的内容可以在引号'x'或内"x",但请记住'和"是有效的输入,应予以支持。 输入的内容可以是字母中的任何字母,即您不能假定它是a或A。 输出应仅是字母之一或单个符号,但结尾的换行符可以。 字母表中的字母不应由空格,逗号或其他任何字符分隔。 一些例子: F ABCDEFGHIJKLMNOPQRSTUVWXYZ z abcdefghijklmnopqrstuvwxyz " " <- Input: Space <- Output: Space 以字节为单位的最短代码获胜。 可选,但不胜感激:如果您的语言有在线口译员,请同时发布链接,以便其他人可以轻松对其进行测试。 排行榜 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: ## Perl, 43 + 2 (-p flag) = 45 …

5
这是一个自我参考的问题
百乐的自指配方(从维基百科复制) Tupper的自指代公式是Jeff Tupper定义的公式,当在平面中非常特定的位置以二维方式绘制图形时,可以对其进行“编程”以直观地再现公式本身。它在各种数学和计算机科学课程中用作绘图公式的练习。 楼层功能在哪里 。 我们k是以下543位数字: 960939379918958884971672962127852754715004339660129306651505519271702802395266424689642842174350718121267153782770623355993237280874144307891325963941337723487857735749823926629715517173716995165232890538221612403238855866184013235585136048828693337902491454229288667081096184496091705183454067827731551705405381627380967602565625016981482083418783163849115590225610003652351370343874461848378737238198224849863465033159410054974700593138339226497249461751545728366702369745461014655997933798537483143786841806593422227898388722980000748404719 如果一个图的点的集合(x, y)中0 <= x < 106,并k <= y < k + 17满足上面给出的不平等,结果图如下所示(请注意,在该地块的轴已经发生了逆转,否则画面出来倒): 所以呢? 关于此公式的有趣之处在于,它可以用于绘制任何可能的黑白106x17图像。现在,从头到尾的搜索实际上非常繁琐,因此有一种方法可以计算出图像出现的k值。这个过程非常简单: 从图像第一列的底部像素开始。 如果像素为白色,则k值将附加一个0。如果是黑色,请附加1。 向上移动列,重复步骤2。 一旦到达该列的末尾,请按照相同的过程移至下一列并从底部开始。 分析完每个像素后,将此二进制字符串转换为十进制,然后乘以17得到k值。 我的工作是什么? 您的工作是创建一个可以拍摄任何106x17图像并输出其相应k值的程序。您可以进行以下假设: 所有图片均为106x17 所有图像将仅包含黑色(#000000)或白色(#FFFFFF)像素,中间没有任何像素。 也有一些规则: 输出只是k值。它必须具有适当的基数,但可以是任何格式。 必须从PNG或PPM读取图像。 没有标准漏洞。 测试影像 [ ]应该产生〜1.4946x10 542 [ ]应该产生〜7.2355x10 159 [ ]应产生2 1801 * 17 [ ]应该产生(2 1802 -1)* …

13
耶!藏宝图!
介绍 “是的!我们有个小伙子自称是“程序员”,在地图上隐藏了我们的藏宝!但是“写得很机智”这个奇怪的数字“ n个字母!”“ E5,N2,E3”……甚至还能做什么? “疯狂!!甚至没能画出合适的藏宝图,没用的克汀丁。给我们修理吧!我们会赠予您一部分宝藏!” 挑战说明 一群海盗在阅读藏宝图时遇到了麻烦。您可以编写一个程序将其转换为更多盗版形式吗? 作为输入,您将收到原始的藏宝图。这是一个用逗号分隔的字符串的列表,每个字符串包括一个字母部分(告诉海盗他们需要走的方向)和一个数字部分(告诉海盗在这个方向上要走多少步)。例如,以下藏宝图: E2,N4,E5,S2,W1,S3 意思是“向东走两步,向北走四步,向东走五步,向南走两步,向西走一步,然后向南走三步。” 作为输出,就会输出地图图形形式,用文字>,^,v,和<为指针。这是上述输入的输出: >>>>>v ^ v ^ v< ^ v >>^ X 请注意,我们已将南面的最后一步替换为X。这是因为最后一步是宝藏在哪里,众所周知,海盗的宝藏地图上必须有一个X,否则他们将不知道如何阅读。 顺便说一下,地图永远不会交叉,因此您不必担心重叠问题。另外,允许在输出末尾添加尾随新行。 样本输入和输出 S5,W2 v v v v v X< N1,E1,S1,E1,N1,E1,S2 >v>v ^>^X N1 X N6,E6,S6,W5,N5,E4,S4,W3,N3,E2,S2,W1,N2 >>>>>>v ^>>>>vv ^^>>vvv ^^^Xvvv ^^^^<vv ^^^<<<v ^^<<<<< E21,S2 >>>>>>>>>>>>>>>>>>>>>v X N12,E11,S12,W2,N4 >>>>>>>>>>>v ^ v …

6
您的车只向右转!
介绍 您有被困在障碍道上的失控汽车中的不幸。除了损坏的转向系统外,汽车的所有功能均无响应。它可以直行,也可以向右转。可以引导汽车安全吗? 机械学 您的汽车从8x8地图的左上角开始,并试图在右下角实现安全。赛车的方向(最初是向右)以90度为增量进行测量。汽车可以执行以下两项操作之一: 向前开一个方块,或者 顺时针旋转90度,然后向前驱动一个方块 请注意,汽车无法足够急转弯以在单个广场上执行180度转弯。 一些广场是障碍。如果汽车进入障碍物广场,它将坠毁。假定8x8航道之外的所有物体都是障碍物,因此驶离航道等同于坠毁。 右下角的正方形是安全正方形,它使汽车能够逃脱障碍物路线。假定起始正方形和安全正方形不是障碍。 任务 您必须编写一个程序或函数,以8x8数组(矩阵,列表列表等)为输入,表示障碍物路线。程序返回或打印一个布尔值或类似的真值。如果汽车有可能在不撞车的情况下到达安全广场(即,如果地图可解决),则输出为True,否则为False。 计分 标准代码高尔夫规则-获胜者是字节最少的代码。 奖金: 如果对于一张可解决的地图,您的代码输出了一系列有效的驾驶员输入来引导汽车驶入安全广场,请从得分中减去10个百分点。示例输出格式可能是SRSSR(指示“直”,“右”,“直”,“直”,“右”)。该输出将替代标准True输出。 如果对于无法解决的地图,代码的输出区分不可避免的崩溃情况和可能永远绕过障碍物路线的情况,请从分数中减去10个百分点。Crash如果无法避免发生碰撞,或者Stuck汽车永远卡在障碍物路线中,则可能是示例输出。这些输出将替代False无法解决的地图的标准输出。 例 如果给程序一个8x8数组,例如: [[0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 1, 0], [1, 1, 0, 0, 0, 0, 0, 0], [0, 1, 0, 1, 0, 0, 0, 0], …

13
“反驳”费马的最后定理
用您选择的语言编写一个程序,该程序似乎可以成功找到Fermat的Last Theorem的反例。也就是说,找到整数a,b,c > 0和n > 2使得a n + b n = c n。 当然,除非安德鲁·威尔斯(Andrew Wiles)的证明有缺陷,否则您无法真正做到。我的意思是假的,依靠 整数溢出 浮点舍入误差 未定义的行为 具有加法,求幂或等式的异常定义的数据类型 编译器/解释器错误 或类似的规定。 你可以硬编码部分或全部变量a,b,c,或n,或做循环寻找他们喜欢的for a = 1 to MAX。 这不是代码高尔夫;这是寻找聪明而精妙的解决方案的竞赛。

30
输出当前时间
挑战 您必须通过以下任何一种方式连续输出当前时间(直到被中断取消),每秒一次。 它必须为24小时或AM / PM格式。 如果是前者,则必须用冒号隔开(即15:47:36)。 如果是后者,则必须用冒号隔开,并紧跟AM / PM(即3:47:36 PM) 它可能是从互联网上提取的。 可能是系统时间。 它必须输出支持您选择的文本的任何自然可访问的输出形式。 输出中可能除了时间之外还包含其他信息,但是您必须保证每秒仅输出一次时间。 连续输出必须相隔一秒-如果您选择等待输出之间的秒数变化,那很好。如果您在每个输出之间等待一秒钟,那将是完全可以接受的,尽管最终会失去准确性。 由于这是一个目录,因此可以竞争之后创建的语言。请注意,必须有一个解释器,以便可以测试提交。允许(甚至鼓励)自己为以前未实现的语言编写此解释器。除此之外,必须遵守所有代码高尔夫球的标准规则。大多数语言的提交都将以适当的预先存在的编码(通常为UTF-8)以字节计分。 目录 这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: ## Perl, 43 + 2 (-p flag) = 45 bytes 您还可以将语言名称设置为链接,然后该链接将显示在代码段中: ## [><>](http://esolangs.org/wiki/Fish), 121 bytes 显示代码段 var …
49 code-golf  date 

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.