编程拼图和代码高尔夫

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

10
简化数组
输入项 可以包含数组或正,连续,升序整数的数组。数组内部可以有任意数量的数组,依此类推。没有数组将为空。 输出量 这个数组简化了 如何简化数组 我们将使用数组[1, [2, 3], [[4]], [[[5, 6], 7, [[[8]]]], 9]]作为示例。 首先,我们检查值的嵌套深度。以下是深度和这些深度处的数字: 0 1 1 2 3 9 2 4 7 3 5 6 5 8 我们通过获取原始数组中的数字,按照嵌套的深度对其进行分组,然后将组嵌套在其元素原始深度的深度来构造输出数组。按升序和升序排列数字。 因此,我们的输出是 [1, [2, 3, 9], [[4, 7]], [[[5, 6]]], [[[[[8]]]]]] 例子 [1, [2, 3], [[4]], [[[5, 6], 7, [[[8]]]], 9]] …

24
将大石头变成小石头
欢迎来到研磨机。 您的任务是通过研磨将大石头变成小石头。 输入一块大石头,n > 3 然后磨碎。 将岩石倒入研磨机继续研磨,直到所有岩石的大小达到极限2。 岩石总是磨成相等的一半。如果研磨的结果是奇数,则取结果-1。 继续打印每个研磨的输出。 例子 输入: 5 输出: 22 结果是两个大小为2的岩石 输入: 50 输出: 2424 //two rocks of size 24 12121212 //four rocks of size 12 66666666 //8 rocks of size 6 2222222222222222 结果是16个大小为2的岩石 输入: 30 输出: 1414 6666 22222222 结果是8个大小为2的岩石 这是代码高尔夫球,所以最短的代码获胜!玩得开心,祝你好运!

7
不幸的数字!
要知道的事情: 首先,幸运数字。 幸运数字生成如下: 取所有自然数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20... 然后,删除每个第二个数字。 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39... 现在,3很安全。 删除每第三个数字: 1, 3, 7, …

25
Quine Anagrams!(警察的线)
这是警察的话题。有关强盗的线索,请单击此处。 警察的任务 首先,用您选择的语言写一个藜。 接下来,打搅奎纳。确保做得好,因为强盗将试图对其进行解读并找到原始源代码!请注意,加扰的代码不需要工作。 在此主题上发布答案。包括语言,字节数和加扰的代码。 您的程序可能无法打印到STDERR。 这是警察提交的示例: Python,29个字节 nt _%=_r;_riinp;pr_='t _%%%_' 强盗任务 有关强盗的线索,请单击此处。 安全提交 如果发布一周后您的提交尚未被破解,则可以添加解决方案并指定它是安全的。如果您不这样做,您的提交可能仍会被破解。 计分 这是代码高尔夫球,因此安全提交且字节最少的用户将是本节的赢家。 排行榜 这是一个堆栈片段,用于生成此挑战的排行榜。为了使其正确显示,请按以下所示格式化您的提交: # Language Name, N bytes ... other stuff ... 如果您提交的内容遭到破解,请采用以下格式: # Language Name, N bytes, [Cracked!](link) ... other stuff ... 如果您提交的内容安全,则格式如下: # Language Name, N bytes, Safe! ... other stuff ... …

1
解决网格图
该七巧板是由七个形状制成的夹层拼图:五种不同大小的三角形,平行四边形和正方形。给定形状,目标是使用所有零件且不重叠来重新创建形状。显然,有无数种方法可以将这组零件排列在平面上。一个有趣的子集是 网格七巧板 我们可以得出“标准”七巧板方成由细分更大的方形网格成16个个小方格。网格七巧板只是由七巧板块组成的形状,因此,这些块的所有顶点都在网格点上。 这些是我们在此挑战中要考虑的七巧板难题,因为它们可能比更一般的难题更容易处理。 附带说明:1942年,中国数学家熊传雄和王付特拉证明了只有13个凸七巧板。他们首先表明,可以将问题简化为网格七巧板,然后使用一些组合和几何参数。这些都是这13个: 挑战 给定可解决的网格七巧板,将网格七巧板的解剖输出为七个七巧板。 IO 七巧板以黑白图像形式给出(形状为黑色,背景为白色),两边的倍数均为50px。网格的宽度正好为50px。网格线平行于图像的侧面。 编辑:图像可以接受为输入,并以任何方便的光栅图像格式(如PNG,TIFF,PBM等)作为输出返回,但是可以将其表示为二进制2d数组或字符串或矩阵。 输出应再次具有相同的大小,并应再次具有相同的形状,但每个部件具有不同的颜色,或者用白线分隔所有部件。值得注意的是,非矩形四边形可以翻转。 块边界上的像素不必完全与形状上的像素匹配,如果存在锯齿效果或其他模糊现象,也可以。 输入和输出示例: 例子: 可能的解决方案:

8
产生模数红斑
很酷的东西 以下玫瑰色可以帮助计算模7。 为此,您必须从0开始并顺时针旋转第一个数字给出的若干步。然后,对于每个连续的数字,跟随箭头,然后顺时针旋转该数字给出的步数。 这是您处理294号的方法: 您从圈子0开始。 您顺时针旋转第一个数字给定的步数(即2,最终为2)。 您跟随那里的箭头(最终到达6)。 您顺时针旋转第二个数字给出的步数(即9,最终为1)。 您跟随那里的箭头(最终到达3)。 您顺时针旋转第三个数字给定的步数(即4,最终为0)。 294 mod 7 = 0(意味着294是7的倍数)。 (如果您仍然听不到视频说明) 目标 弄清楚它是如何工作的(我知道,但我不会告诉你)。 创建一个程序,该程序使用一个带数字n的参数,并为生成一个玫瑰红mod n。 玫瑰色可以通过任何您想要的方式显示(ASCII,生成PNG,生成SVG等),只要它可以被8岁的孩子使用(所以没有规则列表,我想要一张图片)! 您可以使用海峡线,即使它比我在本示例中所做的不够清楚,但您 必须使用某种咬尾箭头清楚地指出指向自己的数字。 测试用例 (我只给出数字之间的链接,一旦您的程序成功生成了它们,请随时编辑我的问题) 模式2: 0 -> 0 1 -> 0 模式3: 0 -> 0 1 -> 1 2 -> 2 模组4: 0 -> 0 1 -> 2 2 …

24
多种语言的Anagrams强盗的线
这是强盗的线程这个挑战 警察将选择一个OEIS序列,并用两种不同的语言编写两个完整的程序,当通过STDIN给出n时,该序列将生成序列中的第n个项目。这两个程序必须互为字母,这意味着每个程序都可以从对方的字母重新排列。 他们将提供OEIS编号,源代码以及所使用的一种语言的名称。 您必须找到原始警察提交的字谜的字谜,该字谜以与警察使用的语言不同的语言运行。要破解答案,您必须只找到能产生该序列并且是原文的字谜的任何语言和程序,而不一定是警察在考虑的答案。 您可以按字符代码输出,也可以在解决方案中包含STDERR,但前提是警察已表明他们的隐藏解决方案可以这样做。十进制输出到STDOUT始终是有效的破解。 因此,激励警察使其尽可能地难以使用其符号列表来找到完成任务的任何语言。 计分 裂缝最多的人将是本节的获胜者。每个解决方案的仅第一个裂缝将计入一个人的分数。 排行榜 非常感谢参与此挑战的每一个人。 这是目前的排行榜 Place User Score ----------------------------- 1 Adnan 3 1 Kritixi Lithos 3 1 Emigna 3 1 milk 3 5 Steven H. 2 5 Wheat Wizard 2 5 jimmy23013 2 8 ETH Productions 1 8 Dennis 1 8 alleks 1 8 …

15
运算符ASCII艺术
挑战 从下面的列表中给定一个ASCII运算符,并给它一个数字n,使用该运算符作为字符,画出该运算符的ASCII表示形式,该运算符的线段长度为n。 输入项 列表中的ASCII字符= + - x /和n其中的整数n >= 1。(我使用x代替*和/代替÷,但您可以使用其中任何一个,以较容易的一个为准)。对于+和x,您只需要处理奇数即可避免对齐问题。 输出量 由长度为n的字符组成的运算符的ASCII绘图。水平部分的字符之间应有空格,以抵消垂直/水平距离的差异。 规则 这是代码高尔夫球,因此以字节为单位的最短代码获胜。禁止出现标准漏洞。 例子 输入: + 3 + + + + + 输入: = 4 = = = = = = = = 输入: = 10 = = = = = = = = = = = = = …

30
逐行导出$ PATH变量
受到AskUbuntu上这个问题的启发。 您的工作非常简单。获取PATH环境变量(echo $PATH)并将其导出,以使每个条目(由:字符分隔)都位于其自己的行上。 例如,如果PATH为/bin:/usr/bin:/usr/local/bin,则程序应输出: /bin /usr/bin /usr/local/bin 您的程序可能不会返回前导换行符,但可能会返回单个尾随换行符。您无需检查PATH是否正确或目录是否存在。您的程序不应输入任何内容,这意味着您的程序负责获取PATH本身。您可以放心地假设PATH中的对象不包含:或换行符。但是,空间是公平的游戏。 在上述问题的答案中提供了参考实现。 规则 (显然)这是代码高尔夫球,因此最短的答案将赢得宝贵的绿色对勾。 接受的答案将经过测试以确保它是合法的。 Windows和* nix条目均被接受。 但是,如果您未明确指定Windows,我将尝试在Linux中运行它并失败。(如果很明显(嗨,Batch!),则无需显式指定。) 每个答案只有一个解决方案。如果您同时拥有Windows和* nix版本,我将计算较短的版本。 如果两个答案的长度相同,我将优先考虑总票数较高的一个。如果他们的投票总数相同,我将计算较大的一票。如果发布的时间相同,我将选择执行速度更快的时间。如果它们执行的时间相同,我不知道。 排行榜 显示代码段 var QUESTION_ID=96334,OVERRIDE_USER=15422;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 r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i; body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px} …
22 code-golf  string 

30
画一个字母派对帽
您的任务是打印以下确切文本: z yz xyz wxyz vwxyz uvwxyz tuvwxyz stuvwxyz rstuvwxyz qrstuvwxyz pqrstuvwxyz opqrstuvwxyz nopqrstuvwxyz mnopqrstuvwxyz lmnopqrstuvwxyz klmnopqrstuvwxyz jklmnopqrstuvwxyz ijklmnopqrstuvwxyz hijklmnopqrstuvwxyz ghijklmnopqrstuvwxyz fghijklmnopqrstuvwxyz efghijklmnopqrstuvwxyz defghijklmnopqrstuvwxyz cdefghijklmnopqrstuvwxyz bcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz 大小写无所谓。 请记住,这是code-golf,所以字节数最少的代码将获胜。

30
邻居总数
这应该是一个相当简单的挑战。 对于数字数组,生成一个数组,其中对于每个元素,所有相邻元素都添加到自身,然后返回该数组的总和。 这是在输入数组上发生的转换 [1,2,3,4,5] [1,2,3,4,5] => [1+2, 2+1+3, 3+2+4, 4+3+5, 5+4] => [3,6,9,12,9] => 39 0 => neighbours of item 0, including item 0 [1,2] => 1 + 2 => 3 1 [1,2,3] => 1 + 2 + 3 => 6 2 [2,3,4] => 2 + 3 + 4 => …
22 code-golf 

10
将字母滚动成螺旋形
编写一个程序或函数,如果给出n,将打印一个螺旋n字符,该螺旋字符由拉丁字母组成,并ABCDEFGHIJKLMNOPQRSTUVWXYZ根据需要重复。此螺旋应仅向前穿过字母。 与字母螺旋有关,尽管螺旋向前和向后贯穿字母,并且螺旋是恒定的。 测试用例 4 AB DC 40 UVWXYZ TGHIJA NSFABKB MREDCLC LQPONMD KJIHGFE 0 10 GHIJ FAB EDC 1000 UVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ TGHIJKLMNOPQRSTUVWXYZABCDEFGHIJA SFABCDEFGHIJKLMNOPQRSTUVWXYZABKB REZCDEFGHIJKLMNOPQRSTUVWXYZABCLC QDYBMNOPQRSTUVWXYZABCDEFGHIJCDMD PCXALEFGHIJKLMNOPQRSTUVWXYZKDENE OBWZKDEFGHIJKLMNOPQRSTUVWXALEFOF NAVYJCDMNOPQRSTUVWXYZABCDYBMFGPG MZUXIBCLCDEFGHIJKLMNOPQREZCNGHQH LYTWHABKBABCDEFGHIJKLMNSFADOHIRI KXSVGZAJAZGHIJKLMNOPQROTGBEPIJSJ JWRUFYZIZYFUVWXYZABCDSPUHCFQJKTK IVQTEXYHYXETQRSTUVWXETQVIDGRKLUL HUPSDWXGXWDSPUVWXYZYFURWJEHSLMVM GTORCVWFWVCROTGHIJAZGVSXKFITMNWN FSNQBUVEVUBQNSFABKBAHWTYLGJUNOXO ERMPATUDUTAPMREDCLCBIXUZMHKVOPYP DQLOZSTCTSZOLQPONMDCJYVANILWPQZQ CPKNYRSBSRYNKJIHGFEDKZWBOJMXQRAR BOJMXQRARQXMLKJIHGFELAXCPKNYRSBS ANILWPQZQPWVUTSRQPONMBYDQLOZSTCT ZMHKVOPYPONMLKJIHGFEDCZERMPATUDU YLGJUNOXONMLKJIHGFEDCBAFSNQBUVEV XKFITMNWVUTSRQPONMLKJIHGTORCVWFW WJEHSLMLKJIHGFEDCBAZYXWVUPSDWXGX VIDGRKJIHGFEDCBAZYXWVUTSRQTEXYHY UHCFQPONMLKJIHGFEDCBAZYXWVUFYZIZ TGBEDCBAZYXWVUTSRQPONMLKJIHGZAJA SFAZYXWVUTSRQPONMLKJIHGFEDCBABKB REDCBAZYXWVUTSRQPONMLKJIHGFEDCLC QPONMLKJIHGFEDCBAZYXWVUTSRQPONMD …
22 code-golf  string 

19
帮助:外星人程序员只能说ASCII
设置场景: 这是一个平均的下午,在忙碌了一天之后,您会通过参加自己喜欢的消遣来放松:回答有关PPCG的许多令人着迷的问题。今天对您而言不是好日子;那些该死的Pyth程序员不断获得最佳答案,这正在杀死您的氛围。突然,您发现一个新问题已发布!你下定决心;这次不是CJammers。奇怪的是,您开始打字,产生了一系列字符。最终产品将成为辉煌的BrainFuck循环的胎儿。您键入并键入。快点!还快!您太专心了,甚至没有注意到屏幕上的灯光开始闪烁。突然,显示器发出绿色光,桌面上印有外星人般的符号。使用无可挑剔的技能,您cat ~/Desktop/aliensymbol并得到一堆数字,一条消息!作为您精明的PPCG程序员,您会注意到它看起来像ASCII。无论您是什么,您都可以print(chr(i) for i in file)解密消息。您首先想到的是:“我需要与社区分享!”。 ... 谁会想到的?最早接触外星人的人将是PPCG谦虚的程序员。为什么是我们?也许是因为我们是人类智慧的缩影。也许是因为BrainFuck与我们使用外语差不多。尽管如此,外星人-他们是超智能的生活形式-想要测试他们是否应该将人类归类为聪明人。为了检验我们的智力,外星人要求我们向他们发送一些计算机程序,以证明我们在技术上得到了培养。问题是,他们唯一能理解的人类语言是数字ASCII! 帮助人类向那些生物展示真正的智力阿尔法。我们需要向他们发送一个脚本,该脚本会将基于文本的源代码转换为数字ASCII版本。不幸的是,由于我们的技术不发达(感谢奥巴马),我们必须发送尽可能小的翻译程序。他们选择联系PPCG的好事! 挑战: 挑战的前提很简单:您将编写一个程序,该程序将使用任何程序的源代码(或与此相关的任何常规文本文件),并在每行下方输出带有ASCII转换的空格分隔版本。也就是说,给定一个文本文件的输入,您需要输出该文件的每一行,然后输出一行,该行包含其上方一行中每个字符的ASCII表示(每个数字与其所表示的字符对齐)。 一个例子将大大阐明这一点。以臭名昭著的源代码hello world作为输入: #include <stdio.h> int main() { printf("hello, world\n"); return 0; } 您的程序应输出: # i n c l u d e < s t d i o . h > 35 105 110 99 108 117 100 101 …

26
紧密的词
介绍 根据Rand Al'Thor在《 Puzzling SE》中的帖子,紧密结合的单词是包含三个字母连续字母(任意顺序)的任何单词。 像教育,雾角和歌舞表演之类的词都被认为是紧密结合的词,而学习,克拉克森和表演等词则不是紧密结合的词。 挑战 面临的挑战是对一个程序进行代码处理,使其能够将单个单词作为输入(假设所有目的和目的都为小写),并返回列出所有连续字母集(如果有的话)的输出(如果有的话)。是紧密词,如果不是紧密词,则输出为空。 例子 Input: education Output: cde Input: foghorn Output: fgh Input: cabaret Output: abc Input: hijacking Output: ghi, hij, ijk Input: pneumonia Output: mno, nop Input: klaxon Output: <<no output>> Input: perform Output: <<no output>> Input: learning Output: <<no output>> 规则 尽管将输入假定为单个小写单词,而将输出假定为小写,但是输出的性质将根据您选择的编码语言而有所不同。请选择最适合挑战性质的输出形式,无论是STDOUT,文件输出,数组等。 因为这是代码高尔夫,所以肯定会有最少的字节数。 …
22 code-golf  string 

14
黄金周三
黄金周三 您的任务是计算在特定年份的每月黄金时段的星期三的数量。例如,7-13-16是黄金周三。为了保持一致性,请对所有日期使用公历。 输入项 您的程序/功能的输入将是一年(例如2016),并且很灵活。年将是一个介于1912和2233之间的整数。 输出量 输出也很灵活,应为黄金周三的数量(例如18)。 计分 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 输入- >输出 -------------------- 1912 - > 19 1914 - > 16 1984 - > 17 1996 - > 19 2063 - > 19 2150 - > 16 2199 - > 18 2233- > 18

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.