编程拼图和代码高尔夫

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

29
Bitflip和求反
给定一个整数,请创建一个表达式,该表达式0使用一元求反-和按位补码~(~n= -n-1)生成,并将运算符从右向左应用。 ... -3 = ~-~-~0 -2 = ~-~0 -1 = ~0 0 = 0 1 = -~0 2 = -~-~0 3 = -~-~-~0 ... 您的表达式必须是尽可能地短,这意味着没有冗余部分~~,--,-0,或00。将表达式输出或打印为字符串或字符序列。 显示代码段 var QUESTION_ID=92598,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/92598/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 …

28
Esolang评论模板生成器
该网站上的许多人都使用深奥的语言,并且由于这些语言不常见且难以理解,因此他们经常以某种格式编写说明。例如,如果代码是 abcdefghijklmnop 这些语言#用于注释,他们会写一个这样的解释: a #Explanation of what 'a' does bc #Bc d #d e #Explanation of e fgh #foobar ij #hello world k #etc. l #so on mn #and op #so forth 我也经常这样做,但是每次这样做,我都觉得创建文本的布局确实令人讨厌且费时。因此,我希望您为我创建一个“ Esolang-Comment-Template-Generator”。例如,如果我们忽略注释,则先前的代码具有以下模板: a # bc # d # e # fgh # ij # k # l # …

30
StringgnirtSStringgnirtSStringgnirtS
这对您来说是一个相对简单的挑战。 给定长度为N的字符串,向前输出该字符串,然后向后输出,然后向前,然后向后输出……等等。N次。例如,如果您输入的是 Hello! 您应该输出: Hello!!olleHHello!!olleHHello!!olleH 您也可以选择输出一个尾随换行符。 您的提交可以是完整程序,也可以是函数,并且您可以采用任何合理的格式进行输入和输出。例如,您可以从STDIN / STDOUT中获取IO,从函数中获取参数,并从文件中获取返回值,等等。您可以放心地假设输入字符串将不会为空,并且仅包含可打印的ASCII。您必须在一行上输出新字符串。因此,例如,如果最后一个示例的输出是 Hello! !olleH Hello! !olleH Hello! !olleH 这不是有效的解决方案! 这里是更多测试用例: Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: PPCGGCPPPPCGGCPP Input: 42 Output: 4224 排行榜 由于这是一个代码高尔夫挑战,因此禁止了标准漏洞,以字节为单位的最短答案胜出!但是,这也是在任何特定语言中答案最短的竞赛。尽管Java答案不太可能会击败perl或某些打高尔夫球语言的答案,但拥有最短的Java答案仍然令人印象深刻。因此,您可以使用此页首横幅查看 所有语言中最短的答案,以及 每种语言的最短答案。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N …
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

26
Sheffle tho vawols ureund!
给定的输入串,输出该字符串与所有元音a,e,i,o和u在随机彼此之间交换。 例如,在字符串中this is a test,有4个元音:[i, i, a, e]。这些元音的有效改组可能会[a, i, e, i]产生输出thas is e tist。 关于改组 如果我们认为相等的元音是不同的,则所有改组的可能性均相等。对于上面的示例,这24种混洗是可能的: [i 1,i 2,a,e] [i 1,i 2,e,a] [i 1,a,i 2,e] [i 1,a,e,i 2 ] [i 1,e,i 2,a] [i 1,e,a,i 2 ] [i 2,i 1,a,e] [i 2,i 1,e,a] [i 2,a,i 1,e] [i 2,a,e,i 1 ] [i …

4
动物园冒名顶替者
您想开设一个新的动物园。太神奇了 但是,作为您的贱民,您只想负担得起三字母的动物(每个人都知道动物的成本与其名称的长度成正比)。您的梦想就是让人们为看电影而付费elephant。但是突然之间,您有了一个绝妙的主意。如果您只是将动物正确地放置在笔中,则可以创建elephant!的视觉错觉。这是您的新“大象化合物”的俯视图: elk eel pig hog ant -------- (fence) ^ | viewing direction 哈哈,那些轻信的游客! 是的,这就是感知的原理。 挑战 给定一个仅由小写英文字母组成的非空词,请确定是否可以通过重叠以下30个三字母动物词来形成该词: ant ape asp ass bat bee boa cat cod cow dab dog eel elk emu fly fox gnu hog ide jay kea kob koi olm owl pig rat ray yak 是的,有30多个,但这是一个不错的整数。 您可以选择接收此列表作为输入(任何未经处理的合理列表或字符串格式)。您可能会想要这样做,除非读取和处理此输入列表比使用您选择的语言对它们进行硬编码和压缩要贵得多。请注意,即使您将列表作为输入,也可以假设它始终是此列表,因此,如果您的代码依赖于传递的列表,该列表长30个元素且不包含带有的单词z,那就很好。 每个单词可以多次使用。动物不能被割断,只能被其他动物部分隐藏。所以,ox是不是可能的字符串,即使我们有fox。 …

30
斐波那契反转!
介绍 我们都知道并喜欢我们的斐波那契数列,并且已经在这里看到了无数挑战。但是,我们仍然缺少一个非常简单的案例,该答案将提供:反斐波那契!因此,鉴于F_n您的工作就是寻找n。 规格 输入项 您的输入将是一个非负整数,保证是斐波那契数列的一部分。 输出量 输出也必须是非负整数。 该怎么办? 引言已经说过:给定斐波那契数,输出其索引。斐波那契编号在此定义为F(0)=0, F(1)=1, F(n)=F(n-1)+F(n-2),您将获得F(n)且必须返回n。 潜在的极端案例 0是有效的输入和输出。 如果给定“ 1”作为输入,则可以根据需要输出“ 1”或“ 2”。 您可能总是假设您的输入实际上是斐波那契数。 您可以假定输入可表示为32位带符号整数。 谁赢? 这是代码高尔夫球,因此最短的答案以字节为单位! 标准规则当然适用。 测试用例 0 -> 0 2 -> 3 3 -> 4 5 -> 5 8 -> 6 13 -> 7 1836311903 -> 46

30
打印从1到10的数字
这可能是一个非常简单的挑战,但令我惊讶的是它尚未在代码高尔夫球上完成: 以升序打印从1到10(含1和10)的所有整数到标准输出。 您的输出格式可以是您的语言支持的任何格式。这包括任意的分隔符(逗号,分号,换行符,这些字符的组合等,但没有数字)以及前缀和后缀(如[...])。但是,您可能不会输出1到10以外的任何其他数字。您的程序可能不会接受任何输入。不允许出现标准漏洞。 这是代码高尔夫球,因此最短答案以字节为单位! 排行榜 显示代码段 var QUESTION_ID=86075,OVERRIDE_USER=42570;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} <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody …

30
反转辅音
程序应以字符串作为输入,并在保持元音顺序的同时反转其辅音。所有字母都是小写,因此您不必担心大小写。示例如下。 输入:a test case。 这里的辅音是t,s,t,c,s。它们应该以相反的顺序出现,即,s,c,t,s,t然后将其插入到字符串中到预先反转的字符所处的相同位置:a sect sate。 输入:well-done。输出:nedl-lowe。 输入:reverse the consonants。输出:setenne sne cohtosarvr。 这就是代码高尔夫,最短的解决方案获胜。 Y 无论元音是什么,都不应将其视为元音。 任何内容以及数字,标点,引号和其他符号(@#$%^&*(){}[]\|/<>~-_+=`)都可能会出现在输入中。
42 code-golf  string 

18
酒店房间编号
给定以ASCII艺术形式输入的“旅馆”并标有单个房间,请根据某些规则输出房间号。 这是ASCII酒店的示例: ## ## ##### ## ##### ###### ## ##### ###### ## ##### ###### ## 以下是有关ASCII酒店的更多信息: 每个“建筑物”都由一个矩形的#字符#表示,其中每个字符 代表一个“房间”。 以上酒店由三栋建筑组成。每个建筑物都由两列空格隔开,最低的“楼层”将始终位于最后一行。 每个建筑物在每个楼层上始终具有1-9个“地板”(行)和1-9个“房间”的任何位置。也将永远有1-9座建筑物。 客房编号如下:[building #][floor #][room on floor #]。例如,让我们在上图中标记一些房间: ## ## ##### ## ##### ####$# ## ##%## ###### ## ##### ###### #@ 标有的%房间是123房间(1、2楼,3楼的房间)。同样,标有的房间$是房间235,@是的房间312。 建筑物,楼层和“第n个房间在楼层”始终为1索引。 输入将包括一个ASCII酒店,其中一个房间由星号(*)代替。这是您必须为其输出房间号的房间。输入必须作为单个字符串,但是您可以使用逗号作为换行符,而不是换行符(以防您选择的语言不能采用多行输入,或者采用单行输入时较短)。您可以选择要求以逗号/换行符结尾。您也可以用尾随空格填充线条,以使输入成为完整的矩形。 由于这是code-golf,因此以字节为单位的最短代码为准。 测试用例(包含在单个代码块中,以节省垂直空间): Input: * Output: 111 Input: # …

2
牛头怪的家装
牛头怪的家装 克里特岛迷宫很容易绘制。只需从对称形状开始(此处为红色)。让我们将这些行的所有端点称为“节点”。然后开始绘制拱形(黑色):第一个总是从顶部中间节点开始,并连接到右侧它旁边的节点,然后连接最接近前一个拱形的两个节点。重复此过程,直到所有节点都被覆盖。 现在,我们可以概括这个概念:通过添加更多L形状,我们可以轻松生成新的初始图案。我列举了以下初始形状: 最左侧的图案将产生克里特岛的迷宫度0。下一个将创建1级的克里特岛迷宫(原始的)。 任务 给定一个非负整数n,您的程序应输出克里特式迷宫度的ascii表示,n如以下示例所示。尾随空格/换行符无关紧要。您必须简短说明代码的工作方式。 例子 原始克里特岛拉比利斯(1度)的输出如下: +-----------------------------+ | +-------------------------+ | | | +---------------------+ | | | | | +-----------------+ | | | | | | | +-------------+ | | | | | | | | | +---------+ | | | | | | | | | | | …

30
实际上是字母的数字
给定一个非负整数输入,写一个程序转换的数量为十六进制并返回,如果数字的十六进制形式仅包含字符的truthy值A通过F否则一个falsey值。 测试用例 10 ==> True (A in hexadecimal) 100 ==> False (64 in hexadecimal) 161 ==> False (A1 in hexadecimal) 11259375 ==> True (ABCDEF in hexadecimal) 0 ==> False (0 in hexadecimal) 奖励:如果您的程序为上述挑战而打印,数字的十六进制版本仅包含数字并且十六进制数字包含至少一个数字和至少一个字母,则为-40字节。Only lettersOnly numbers0-9Mix 这是代码高尔夫。适用标准规则。以字节为单位的最短代码获胜。允许使用功能或完整程序。

30
是潘格姆吗?
编写一个函数或程序,该函数或程序将一个字符串作为输入,如果该字符串是一个连字符(一个字母序列,包含英文字母中的每个字母中的至少一个字母),则输出一个真值,否则输出一个假值。 大小写字母应忽略不计;如果字符串是abcdefghijklmnopqrstuvwXYZ,则该函数仍应返回真实值。请注意,字符串中可以包含其他任何字符,因此123abcdefghijklm NOPQRSTUVWXYZ321将返回真实值。空输入应返回假值。 测试用例 AbCdEfGhIjKlMnOpQrStUvWxYz ==> True ACEGIKMOQSUWY BDFHJLNPRTVXZ ==> True public static void main(String[] args) ==> False The quick brown fox jumped over the lazy dogs. BOING BOING BOING ==> True 这是代码高尔夫。适用标准规则。以字节为单位的最短代码获胜。

11
醉酒主教
在公共密钥密码术中,公共密钥指纹是用于标识较长公共密钥的一小段字节序列。 特别是在SSH中,它们可以用来验证服务器是否实际上是我希望与之通信的服务器,并且不受中间人攻击的攻击。 它们通常表示为十六进制数字字符串,因此将其与我期望的指纹进行比较可能相当无聊且乏味: 37:e4:6a:2d:48:38:1a:0a:f3:72:6d:d9:17:6b:bd:5e 为了使操作更简单,OpenSSH引入了一种将指纹可视化为ASCII艺术的方法,如下所示: +-----------------+ | | | | | . | | . o | |o . o . S + | |.+ + = . B . | |o + + o B o E | | o . + . o | | .o | +-----------------+ …

16
使用xkcd的公式来近似世界人口
在XKCD 1047,兰德尔罗列出“稍微错”什锦数量和数字的具有不同精确度和复杂度的近似,诸如升的在一加仑的数量非常接近3 + π / 4。在漫画的中间,他进行了一段间歇:一种根据给定年份估算世界(和美国)人口的方法。 (摘自xkcd: Randall Munroe的近似值) 您的任务是编写一个实现这些公式的程序,以近似当前的世界和美国人口,方法如下。 世界人口 取当年的最后两位数字。 减去自2005年卡特里娜飓风以来的of年数(包括当年)。为此,任何可被4整除的年份都被视为a年。 在两个数字之间添加一个小数点(与除以10相同)。 加6。这使数十亿人受益。 美国人口 取当年的最后两位数字。 减10。 乘以3。 加10。 开头加3(对于此挑战,某些数字将为负,因此加300)。不知何故,我没有注意到仅连接是行不通的,因为我用来生成结果的程序仅增加了300。 这使成千上万人受益。 细节 这个公式“应该保持十年或两年不变”,但是从理论上讲,您必须能够处理任何2000年至2039年(含)。在某些情况下,自卡特里娜飓风以来的the年将为负值或零值。 您可以自由地以任何方式简化公式,只要所有输出与下面的输出匹配即可。 对于年份,请根据计算机的时钟使用年份。它必须在明年和本世纪的任何其他年份工作,因此您不能简单地对2015年进行硬编码。为方便起见,您可能希望包括一种将年份指定为变量或输入以测试其他年份的方法。 输出应为近似的世界人口(十亿人),后跟一些定界符(例如空格或逗号),然后是美国人口(以百万计)。您也可以编写一个返回或打印字符串或数字或字符串数​​组的函数。 这是代码高尔夫,因此以字节为单位的最短代码获胜。Tiebreaker是最早的帖子。 测试用例 这是所有可能年份的列表,其后是两个输出。 Year World U.S. 2000 6.1 280 2001 6.2 283 2002 6.3 286 2003 6.4 289 2004 6.4 292 2005 6.5 …

11
让我们演奏陶笛
众所周知,《塞尔达传说》系列是有史以来最好的游戏系列之一。为此,让我们在ocarina上播放一些歌曲。 挑战: 编写一个程序,给定一首歌曲,将特定歌曲的乐谱输出到stdout。 输入: 您必须输出乐谱的歌曲将由唯一的三个字符组合给出,如下所示: zel - Zelda's Lullaby sas - Saria's Song eps - Epona's Song sos - Sun's Song sot - Song of Time sst - Song of Storms 奖励歌曲,每首-7%: mof - Minuet of Forest bof - Bolero of Fire sow - Serenade of Water nos - Nocturne …

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.