编程拼图和代码高尔夫

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

30
比较两个数字
挑战 鉴于两个整数A,并B作为输入,你必须写一个程序,如果输出A>B,A==B或A<B。 整数将在您的语言支持的任何合理范围内,包括至少256个值。 您的程序可以是完整程序,也可以是函数,可以通过STDIN或函数参数进行输入。 产出 如果A>B输出 A is greater than B 如果A==B输出 A is equal to B 如果A<B输出 A is less than B 在其中替换A和B为其整数值。 获奖 以字节为单位的最短程序获胜。 排行榜 var QUESTION_ID=55693,OVERRIDE_USER=8478;function answersUrl(e){return"http://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"http://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 …
25 code-golf  number 

19
评估Dotty字符串
编写一个程序,接收仅包含字符.和的奇数长度的字符串:。借助最初为空的堆栈,从该字符串生成一个数字,如下所示: 对于字符串中的每个字符c(从左到右)... 如果c是.并且堆栈中的元素少于2个,则将1推入堆栈。 如果c是.并且堆栈中有2个或更多元素,请从堆栈中弹出两个顶部值,并将它们的和推入堆栈中。 如果c是:并且堆栈中的元素少于2个,则将2推入堆栈。 如果c为:且堆栈具有2个或多个元素,请从堆栈中弹出两个顶部值,然后将其乘积推入堆栈。 结果数字是堆栈顶部的值。您的程序应将此编号打印到标准输出(带有可选的尾随换行符)。 (少量分析表明,除非字符串的长度为偶数,否则将仅剩一个数字,这就是我们忽略这些数字的原因。实际上,堆栈中最多不会包含2个元素。) 例如,数字为::...:.:.9: 2 1 2 2 /______ stack just after the character below is handled 2 2 4 4 5 5 7 7 9 \ : : . . . : . : . <-- string, one character at a time 为了进行完整性检查,以下是所有长度为1、3和5的字符串的数字: . …

11
从非负数生成一对整数
您应该编写一个程序或函数,该程序或函数将非负整数N作为输入并输出或返回两个整数(负,零或正)X和Y。 整数在数学上是指整数,因为它们无限多。 实现的功能必须是双射的。这意味着对于每一个N它必须输出一个不同的X Y对,并且X Y应该为每个输入输出每个对,N即,对于某些输入,应该输出以下所有对N: ... ┌─────┬─────┬────┬────┬────┐ │-2 -2│-2 -1│-2 0│-2 1│-2 2│ ├─────┼─────┼────┼────┼────┤ │-1 -2│-1 -1│-1 0│-1 1│-1 2│ ├─────┼─────┼────┼────┼────┤ ... │0 -2 │0 -1 │0 0 │0 1 │0 2 │ ... ├─────┼─────┼────┼────┼────┤ │1 -2 │1 -1 │1 0 │1 1 │1 2 │ ├─────┼─────┼────┼────┼────┤ │2 -2 │2 …
25 code-golf  math  number 

21
画一个ASCII棋盘
摘要 受到最近ASCII艺术挑战盛行的鼓舞,此挑战的目的是绘制一个ASCII棋盘,就像在其上可以播放国际象棋的棋盘一样。 编写一个程序,该程序以nin stdin或用户输入为参数,并使用正整数作为参数,然后输出带有nx个n正方形以及1个字符粗的边框的棋盘。 每个方块应为2x2字符。正方形应遵循棋盘格的正常交替的黑白色(白色为首,在左上角为白色)模式。白色方块应以空格()字符制成,黑色方块应以井号(#)字符制成。 边框应由破折号(-)组成,+并在边框或正方形的垂直点上带有加号()。 输入项 以正整数表示要在棋盘中绘制的正方形数(正方形尺寸),每个正方形为2x2字符。 示例结果 n=2 +--+--+ | |##| | |##| +--+--+ |##| | |##| | +--+--+ n=3 +--+--+--+ | |##| | | |##| | +--+--+--+ |##| |##| |##| |##| +--+--+--+ | |##| | | |##| | +--+--+--+ n=4 +--+--+--+--+ | |##| |##| | |##| |##| …

1
查找两篇Wikipedia文章之间的路线
介绍 最近,我和一群朋友在一起,我们无聊而无聊,于是我们“发明”了一个“游戏”(评论中的一些人指出,该游戏可以在线玩并且非常受欢迎,因此我们明确没有发明它,尽管我以前从未见过)。我将“游戏”一词用引号引起来的原因是,它不是实际的计算机游戏,而是在Wikipedia上玩的。 玩起来真的很容易:有人选择一些Wikipedia文章作为目标。让我们假设此示例为Code Golf。然后,所有玩家都必须从随机文章开始(通过单击侧边栏中的Random Article或转到该 URL),并且必须仅使用您当前所在文章的链接文章尽快到达“目标” 。规则包括: 不允许使用搜索功能(显然) 您只能点击文章正文中的链接(特别是内的所有文本<div id="bodyContent">) 如果您遇到的随机页面或任何其他页面没有有效链接(死链接,循环等),或者根本没有任何链接,则您可能会再次滚动。 挑战 这是您进入的地方:不幸的是,我在这场比赛中表现不佳,但我也是个肮脏的骗子。所以我希望你为我实现这个机器人。我也是一名程序员,所以自然地,我的硬盘上充满了代码,库之类的东西,而我只有几字节的可用内存。因此,挑战是Code Golf,以最少的字节数获胜。 实施细节: 当然,您不必实现一个智能机器人,该机器人可以了解主题之间的联系并自动检测最佳路线。对于这一挑战而言,强行强行绰绰有余 在实际游戏中,时间很重要。您的程序不应花超过1个小时的时间即可找到文章(这是为了避免出现诸如“最终”找到目标的随机搜索者之类的漏洞) 如果找不到目标的路径(例如无效链接或循环),则可以从以下列表中选择要执行的操作: 退出(分数保持不变) 获取另一篇随机文章,然后重试,对循环无效(得分-= 10) 在无效链接或循环上获得另一篇随机文章(自动检测循环)(得分-= 50) (按“分数”表示您的字节数) 如果您“跟踪”路线,则会减去另外20个奖励字节,因此您将打印访问的每个页面的标题。 可以使用标准的网络库(以避免出现“我制作了自己的网络库,可检索维基百科文章”之类的漏洞) 与程序相关的与网络相关的唯一事情是发送HTTP请求以下载维基百科页面 如果您的程序找到该页面,则应退出,但以某种方式表明已结束(打印字符“ f”或页面标题已足够) 避免标准漏洞 打高尔夫球吧! (这是我在这里的第一个问题,因此在利用这些注释之前,请在注释中指出明显的漏洞和注意事项-谢谢:D)
25 code-golf 

3
这个无限字符串中的游程在哪里?(找到CCCCCC!)
从字符串开始ABC,考虑将其后半部分重复附加到自身的结果(如果长度为奇数,则使用较大的一半)。 我们得到进展: ABC ABCBC ABCBCCBC ABCBCCBCCCBC ABCBCCBCCCBCBCCCBC etc... 让我们S代表由于此过程被永久重复而产生的结果无限字符串(或序列)。 目标 在此代码的挑战目标是找到的运行中第一次出现的指数C的中S。 一开始很容易:C首先在index 2,CCat 4,CCCat 7,CCCCat出现26,但CCCCC一直在index处27308!之后,我的记忆就用光了。 获胜者将是能够正确生成最多运行索引的提交(按顺序从开始C)。您可以使用任何种类的算法,但是如果您不使用基本的暴力手段,请务必对其进行解释。输入和输出可以采用任何易于理解的格式。 重要说明:我不正式知道是否S实际包含的所有运行C。这个问题是从“数学堆栈交换”上的一个问题中得出的,在该问题中作者也没有找到CCCCCC。我很好奇这里是否有人可以。(该问题又是基于我对该主题的原始问题。) 如果您可以证明并非所有的都可以C参加,S那么您将自动赢得比赛,因为该问题将不再有效。如果没有人能证明也找不到,CCCCCC那么获胜者将是可以得到指数最高下限的人CCCCCC(或者CCCCCC找到最大的未解决奔波的人)。 更新:了Humongous荣誉给isaacg和RES谁发现CCCCCC的2.124×10 ^ 519天文指数。以这样的速度,我无法想象找到CCCCCCC任何依靠蛮力的方法。干得好!

30
打印三角形
给定一个数字N,输出一个NxN直角三角形,其中每行i填充数字,最大为i。 例 n = 0 (无输出) n = 4 1 1 2 1 2 3 1 2 3 4 n = 10 1 1 2 1 2 3 . . . 1 2 3 4 5 6 7 8 9 10 (无需对齐) n = N 1 1 2 1 2 …
25 code-golf  number 

1
Android锁屏
介绍 您正坐在长桌尽头的会议室。您环顾四周,可以看到苹果董事会的蒂姆·库克,史蒂夫·乔布斯的鬼魂和杰克·多纳西。苹果之所以召开这次会议,是因为他们意识到Android锁定屏幕要酷得多,并且他们希望1-UP。当Ghost Steve哭着时,房间里的每个人都在注视着你,“帮我,CodeGolf的人!你是我唯一的希望!” 问题 Android锁定屏幕是一个3 x 3的点网格,可以通过将手指从一个点滑到另一个点来建立路径来进行连接。密码被认为是任何可能的路径,包括任何数量的点,但不包括任何数量的点。(在实际的电话上,路径必须至少有4个点长。对此挑战,请忽略该限制。)苹果计划用M x N网格(即(M * N)/ 9)替换3 x 3网格。倍好! 规则: 零点路径不是密码,但一个点路径是 一条路可以穿越自己 路径不能直接跨越点而不包含该点 一个点只能使用一次 旋转相同的路径不是相同的密码 相同但反向排序的路径不是相同的密码 例如,在3x3网格上,点编号从1到9: 1 2 3 4 5 6 7 8 9 一些有效的路径是: 1 3 7,2,3 1,5,9,2 1,8,6,5,4 4,2,3,5,6,7,8,9 5,9,6,4 一些无效的路径是: 1,3 1,9,5 7,5,4,7 4,6 您的输入将是三个数字: (M,N,d) 其中格是M x N,而d是路径的长度 1 …

30
Pi的Monte Carlo估算器
大家快乐的Pi日!完全没有理由,我试图构造一个尽可能短的Pi蒙特卡洛估计器。我们可以构建一个可以在推文中显示的推文吗? 为了澄清,我想到的是从单位平方中绘制随机点并计算落入单位圆内的比率的典型方法。样本数量可以硬编码也可以不硬编码。如果对它们进行硬编码,则必须至少使用1000个样本。结果可以作为浮点数,定点数或有理数返回或打印。 禁止使用Trig函数或Pi常数作为Monte Carlo方法。 这是代码高尔夫球,因此最短的提交(以字节为单位)获胜。

3
生成逼真的地图
我在几分钟内在MS Paint中绘制了一个虚构词的区域图: 我认为能够以编程方式生成这样的地图真的很酷。 挑战 编写一个程序,它在正整数W和H,以及一组非空的正整数S。 生成标准的真彩色图像,其W像素宽度为H像素高。 对于每个整数i在S,其面积以像素为单位是正比于在图像中绘制的平面区域i,使用从任何相邻区域的彩色不同。具体来说,该区域中的像素数应向W * H * i / sum(S)上或向下舍入,以确保图像中的每个像素都属于一个区域。 平面区域是一组像素,其属性是,通过停留在区域内,可以从该区域中的任何其他区域到达该区域中的任何像素,并且 仅正交移动,(而不是对角)。我上面的地图有10个平面区域。 平面区域中的所有像素必须具有相同的颜色,该颜色必须与任何相邻区域的颜色不同。如果区域不是相邻区域,则它们的颜色可能相同。 否则,对区域的形状,位置或颜色没有任何限制。这是一场人气比赛。目标是创建一个程序,以任何规模,任何地理条件绘制现实世界的物理或政治虚拟世界地图。 自然,请展示最好的输出图像,而不仅仅是代码。 细节 从文件,命令行,stdin或类似文件中获取输入。以任何标准格式保存图像或将其显示在屏幕上。 对于相同的输入,您的程序应具有确定性。也就是说,输出图像始终应是为一些特殊的相同H,W和S。(请注意,这S是一个集合,而不是列表,因此它的顺序无关紧要。)否则,您可以在需要的地方使用随机性,尽管您并不需要(但我强烈建议)。 输出图像的地理区域不需要针对W或的不同值进行“缩放” H(尽管可以)。可能完全不同。 您可以随机分配颜色,而不必考虑邻居颜色规则,只要存在至少32种随机颜色可能性,因为两个邻居不太可能获得相同的颜色。 区域在图像边界处停止。没有环绕。 区域可能包含零像素(因此不存在),就像区域多于像素的情况一样。 输入示例 有效的提交可能已使用以下参数生成了我的地图: W = 380 H = 260 S = {233, 420, 1300, 3511, 4772, 5089, 9507, 22107, 25117, 26744} 这些S值与每个区域中的像素数完全相同,但不必如此。请记住,这S是一个集合,因此不一定总是对其进行排序。

19
创建一个呈现其自身源代码的“黑客打字机”程序
如果您不熟悉hacker typer,请参阅hackertyper.net。简而言之,它是一个程序,每次击键都会输出一个代码库的一部分,以实现喜剧效果。但是,hackertyper.net版本太容易实现了。它只是从任意一段代码中一次输出三个字符。为了应对这一挑战,程序必须输出自己的源代码,并在每次击键时打印一个空格分隔的代码块。 细节 不能为程序的文件名硬编码。它必须动态确定其名称。如果程序编译为可执行文件,则可以将标准文件扩展名附加到可执行文件的名称(如果使用Windows,则不包括.exe),并假定源文件在可执行文件的目录内。例如,如果C可执行文件名为“ hacker”,则它应从同一目录中名为“ hacker.c”的文件中提取其源代码。如果已编译程序具有扩展名,则应在确定其源代码名称之前将其删除(“ typer.exe”->“ typer.cs”)。 程序必须包含至少5个空格,每个空格之间至少要有一个字符。这意味着此挑战的最小可能大小为9个字节。空格对于程序的功能不必很关键。 任何格式(缩进,换行等)都必须保留在输出中。可以使用继续执行该代码的格式来打印该格式,也可以跟随其后的代码打印,重要的是要保持格式。 除非使用其他语言来实现空格,否则请避免使用注释来满足5个空格的要求。 编辑:可以使用新行来代替空格,也可以将空格用作块分隔符。

2
最后一站-击败僵尸部落
介绍 你一个人在岛上。人类的其余部分已死(可能是由于user12345的代码中的错误)。僵尸海盗部落已经到达您的岛屿,他们永无止境。是时候踢屁股或咀嚼泡泡糖了,而您全都没有泡泡糖了。 问题 我们的世界末日场景由一行中的2个整数m和来描述n。在您的岛上,前哨站的编号从1到唯一m。以下n各行包含三个整数,x,y,和z,用空格隔开。x和y两个前哨的唯一ID,并且z是将它们之间的道路上可能遇到的僵尸的数量。 当您沿着小路行驶时,您会丢失z弹药并杀死z僵尸。不幸的是,如果再次走同一条路线,您将遇到相同数量的僵尸。每次旅行时,所有前哨站都会产生+1枚弹药。您从前哨站1的弹药开始。所有前哨站的弹药从0开始。如果不存在弹药大于该路径上的僵尸数量的路径,则您会立即死亡,剩余的弹药将被转换为杀戮。这是你的最终立场。 编写一个程序,输出在给定情况下可以杀死的最大僵尸数量。如果您可以杀死无限数量的僵尸,只需输出x。 输入示例 5 6 1 2 4 2 3 4 3 1 4 2 4 10 2 5 10 1 1 50 示例输出 x 假设条件 路径将位于两个有效的前哨站之间。也就是说1 <= x/ y<=m 如果未列出x和之间的路径y,则无法通过 路径是双向的 1 m<<== 100 1 n<<= 500 输入必须通过stdin提供,从文件中读取或作为程序的唯一参数被接受,并且它必须完全遵循示例的格式 程序的运行时可能会很大,但必须是有限的 字符最少的代码胜出!
25 code-golf 

10
曼陀林奎因
写一个quine ...从中可以删除所有其他字符的quine仍然是有效的quine。您可以指定是从第一个字符还是第二个字符开始删除字符。 计分标准(将奖金/适当的百分比相加,得出总百分比): 答案必须至少包含4个字符 程序的来源中必须至少包含一个字母字符,例如,该12345!@#$%^&*()程序不合格 + 750%,如果使用的语言不是图灵完整的(我在看着你,HTML!) 如果解决方案未从任何地方以任何形式读取其来源,则为-15% 如果您也只能保留第5个字符并仍然成绳状,则为-20% 分数由第一个程序中的字符数来衡量。 示例(非真实程序): 如果123456789abcdef和13579bdf都是quines,则得分为15。此外,如果159d也是quines,则最终得分为12。 这是代码高尔夫球,因此得分最低者获胜。
25 code-golf  quine 

9
打保龄球比赛
您的任务是在最多 21局掷骰后,在 10针保龄球游戏中总结并输出一个球员的得分。 在您首选的输入法中,滚动表示为整数序列。每个整数对应于该卷中被击倒的引脚数。 计分 每回合之后,该回合中击倒的针脚数量将计入最终得分。如果玩家在第一回合中击倒所有十个别针,则为罢工,此回合结束。否则,该回合将继续进行一轮。如果第二回合击倒所有剩余的销,则这是备用的。 对于每次打击,都有一笔奖金,等于在接下来的两次掷骰中击倒的针脚的总和。对于每个备用零件,都具有等于下一轮击倒的销子数量的奖金。 在第10轮也是最后一轮,可能会给予玩家额外的掷骰:如果有罢工,则玩家会获得另外2个掷骰来弥补其罢工奖励。如果有备用的话,玩家还会获得一掷。 例子 Input: 4 3 8 2 7 1 10 7 3 0 10 2 2 10 10 5 4 Output: 131 Input: 10 10 9 1 7 3 2 7 10 1 9 10 7 1 10 10 10 Output: 183 规则 …
25 code-golf  number  game 

3
网球比分符合Code Golf
鉴于2014年在墨尔本举行的澳大利亚网球公开赛,以及斯坦尼斯拉斯·瓦林卡(Stanislas Wawrinka)对诺瓦克·德约科维奇(Novak Djokovic)的获胜,我提出以下代码高尔夫挑战赛! Wawrinka和Djokovic再次基于此CGC参加会议。您的挑战是取一个由1和2组成的字符串,并根据网球计分系统确定网球得分。“ 1”表示Wawrinka得分,而“ 2”表示Djokovic得分。 为了示例:1211222122111122111将生成两行输出: Wawrinka 1 - 40 Djokovic 1 - 30 字符串越长,得分越远。 规则: 最短的代码胜出,纯粹而简单。 显示时,分数必须右对齐,列也必须对齐;例如 输出的样本对齐: Wawrinka 7 5 3 - 0 Djokovic 6 7 4 - 15 如果正在进行游戏,则必须在设置分数之后显示分数。游戏分数必须遵循设置的分数,并使用空格----空格分隔符。如果碰巧是第一场比赛,则必须显示0-0的设定得分。 Wawrinka 0 - 0 Djokovic 0 - 15 游戏将按0、15、30、40和游戏点的顺序进行。如果一场比赛的比分达到40-40,则宣布为平局,分数必须在得分行上显示该平局: Wawrinka 7 5 3 - 40 Djokovic 6 …
25 code-golf  game 

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.