编程拼图和代码高尔夫

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

6
在Conway的《人生游戏》中制作俄罗斯方块的工作游戏
这是一个理论上的问题-在任何情况下都无法给出简单的答案,即使是琐碎的问题也无法解决。 在Conway的《生命游戏》中,存在诸如metapixel之类的结构,这些结构使“生命游戏”也可以模拟任何其他“生命游戏”规则系统。另外,众所周知,生命游戏是图灵完成的。 您的任务是使用Conway的生活游戏规则构建一个细胞自动机,该规则将允许您玩俄罗斯方块游戏。 您的程序将通过手动更改特定世代的自动机状态来表示中断(例如,向左或向右移动,放下,旋转或随机生成新的片段以放置到网格上),计数来接收输入特定数量的世代作为等待时间,并将结果显示在自动机上的某个位置。显示的结果必须明显类似于真实的俄罗斯方块网格。 您的程序将按以下顺序进行评分(较低的标准充当较高标准的决胜局): 边界框大小-面积最小且完全包含给定解的矩形框将获胜。 对输入的更改较小-需要手动调整的最少单元格(对于自动机中最坏的情况)会获胜。 最快的执行速度-最少的一代可以在模拟中获胜。 初始活细胞计数-较小的计数获胜。 先发布-早先发布。

30
在源代码中生成没有任何数字的数字2014
根据元共识向挑战者发出的注释:这个问题在发布时就很受欢迎,但是像这样的挑战(要求回答者在不使用Y的情况下进行X回答) 很可能会被接受。 如果您要发布类似的挑战,请尝试使用沙盒获取反馈。 这是2017年 2018 2019已经,乡亲们,回家了。 因此,现在是2014年,是时候讨论涉及数字2014的代码了。 您的任务是制作一个打印数字的程序2014,而无需使用0123456789代码中的任何字符,并且与任何外部变量(例如日期或时间或随机种子)无关。 以数字为有效令牌的任何语言执行的最短代码(以字节为单位)将获胜。 排行榜: 显示代码段 var QUESTION_ID=17005,OVERRIDE_USER=7110;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> ...

30
语言展示
笔记 仅由于社区决定例外,此线程才被打开和解锁。请不要将此问题用作您可以在此处提出类似问题的证据。请不要创建其他展示问题。 这不再是一场人气竞赛,也不再受片段计数的限制。如果您以前知道此线程,请确保您熟悉更改。 该线程专用于展示您喜欢的编程语言必须提供的有趣,有用,晦涩和/或独特的功能。这既不是挑战,也不是竞争,而是一种协作,以展示尽可能多的编程语言。 如何运作 所有答案均应在帖子顶部包含编程语言的名称,并以开头#。 答案可能包含一个(并且只有一个)事实,即,没有描述该语言的代码的几句话。 除了事实以外,答案还应包括代码片段,这些代码片段可以(但不一定是)程序或函数。 这些片段不需要关联。实际上,过于相关的摘要可能是多余的。 由于这不是竞赛,因此无论创建哪种语言,都欢迎使用所有编程语言。 包含少量代码片段的答案应使用堆栈片段折叠除事实和片段之一以外的所有内容。 只要有可能,每种编程语言都应该只有一个答案。这是一个社区Wiki,因此即使您自己未创建摘要,也可以随时在任何答案中添加摘要。有一个用于压缩帖子的堆栈片段,这应减轻30,000个字符限制的影响。 这些指南之前的答案应进行编辑。请帮助根据需要更新它们。 当前答案,按语言名称按字母顺序排序 $.ajax({type:"GET",url:"https://api.stackexchange.com/2.2/questions/44680/answers?site=codegolf&filter=withbody",success:function(data){for(var i=0;i<data.items.length;i++){var temp=document.createElement('p');temp.innerHTML = data.items[i].body.split("\n")[0];$('#list').append('<li><a href="/a/' + data.items[i].answer_id + '">' + temp.innerText || temp.textContent + '</a>');}}}) <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><base href="http://codegolf.stackexchange.com"><ul id="list"></ul> 运行代码段隐藏结果展开摘要
507 showcase 

1
在Conway的《人生游戏》中构建数字时钟
您的任务是构建一个代表数字时钟的生活游戏模拟,该模拟满足以下属性: 时钟显示在十进制小时和分钟(例如12:00,3:59,7:24)与对于每个1440分钟一天中的不同的状态-要么小时会从0到23或者从1到12与PM指示器。 该模式是周期性的,状态在没有任何外部交互的情况下循环。 分钟数会定期更新-从一分钟的更改到下一次更改需要相同的世代数。 匿名旁观者可以一眼看出该显示器应该是数字钟。特别是,这需要: 这些数字是可见的并且可以清楚地区分。您必须能够一目了然地确定显示的时间。 数字将更新到位。每个新数字都与前一个数字出现在相同的位置,并且数字的边界框几乎没有移动。(特别是,一个数字在不同的地方不会包含10个不同的数字,每次数字变化时,数字都会被发现。) 这些数字彼此相邻出现,它们之间没有过多的空格。 您的程序将按以下顺序得分(较低的标准充当较高标准的决胜局): 边界框大小-完全包含给定解的最小面积的矩形框将获胜。 执行速度最快-前进一分钟的最少几代人获胜。 初始活细胞计数-较小的计数获胜。 先发布-早先发布。

30
所有颜色的图像
类似于allrgb.com上的图像,制作每个像素都是唯一颜色的图像(两次不使用颜色,并且不丢失任何颜色)。 提供一个生成此类图像的程序,以及输出的屏幕截图或文件(以PNG格式上传)。 纯粹通过算法创建图像。 图片必须为256×128(或可以截图并保存为256×128的网格) 使用所有15位颜色* 不允许外部输入(也不允许网络查询,URL或数据库) 不允许嵌入图像(可以是源图像的图像,例如 Piet) 允许抖动 这不是一场简短的代码竞赛,尽管它可能会赢得您的投票。 如果您真的很想挑战,请执行512×512、2048×1024或4096×4096(以3位为增量)。 计票方式为投票。投票选出最优雅的代码和/或有趣的算法所制作的最美丽的图像。 当然可以采用两步算法,首先生成漂亮的图像,然后将所有像素调整为一种可用的颜色,但不会赢得您的优雅。 * 15位颜色是32768种颜色,可以通过以相等的距离和相等的范围混合32个红色,32个绿色和32个蓝色来制成。示例:在24位图像(每通道8位)中,每通道的范围是0..255(或0..224),因此将其分成32个等距的阴影。 非常清楚,图像像素的数组应该是一个排列,因为所有可能的图像都具有相同的颜色,只是在不同的像素位置。我将在这里给出一个琐碎的排列,它一点也不漂亮: Java 7 import java.awt.image.BufferedImage; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import javax.imageio.ImageIO; public class FifteenBitColors { public static void main(String[] args) { BufferedImage img = new BufferedImage(256, 128, BufferedImage.TYPE_INT_RGB); // Generate algorithmically. ...

30
“你好,世界!”
所以...嗯...有点尴尬。但是我们并没有一个简单的“世界,你好!” 挑战(尽管有35个标记为hello-world的变体,并且还在计数)。尽管这不是通用语言中最有趣的代码,但是在某些esolang中找到最短的解决方案可能是一个严峻的挑战。例如,据我所知,还不知道是否找到了最短的Brainfuck解决方案。 此外,虽然所有Wikipedia(Wikipedia条目已被删除,但在archive.org上都有一个副本 ),但esolangs和Rosetta Code的列表为“ Hello,World!”。程序,这些都没有兴趣让每种语言都有最短的语言(还有GitHub存储库)。如果我们想成为代码高尔夫社区中的重要站点,我认为我们应该尝试创建最短的“ Hello,World!”最终目录。程序(类似于我们的基本quine挑战如何包含各种语言中最短的已知quines)。所以,让我们做吧! 规则 每个提交都必须是完整程序。 该程序必须不输入任何内容,并打印Hello, World!到STDOUT(此确切的字节流,包括大写和标点符号)加上可选的尾随换行符,并且不能输出其他任何内容。 该程序不得向STDERR写入任何内容。 如果有人想通过创建一种在空程序打印时使用的语言来滥用它Hello, World!,那么恭喜,他们只是为一个非常无聊的答案铺平了道路。 请注意,必须有一个解释器,以便可以测试提交。允许(甚至鼓励)自己为以前未实现的语言编写此解释器。 提交的得分上字节,在合适的(预先存在的)编码,通常(但不一定)UTF-8。某些语言(例如Folders)在评分上有些棘手-如果有疑问,请在Meta上提问。 这是不是发现了用最短的语言“你好,世界!” 程序。这是关于查找最短的“ Hello,World!”。用每种语言编程。因此,我不会将任何答案标记为“已接受”。 如果您选择的语言是已经有答案的另一种(可能更受欢迎的)语言的琐碎变体(请考虑使用BASIC或SQL方言,Unix shell或琐碎的Brainfuck派生词(例如Alphuck)),请考虑在现有答案中添加注释在其他语言中,相同或非常相似的解决方案也是最短的。 附带说明一下,请不要在没有太多兴趣的语言中用枯燥(但有效)的答案打分-这些问题对于此问题会尽可能地完善目录,因此仍然有用。然而,这样做在那里的作者确实不得不把精力投入到高尔夫球的代码语言主要是给予好评的答案。 要获取灵感,请查看Hello World Collection。 目录 这篇文章底部的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) = ...


30
最具创意的展示方式42
道格拉斯·亚当斯(Douglas Adams)出生于1952年3月11日,享年49岁。他为纪念这位出色的作家,以最有创意的方式向您展示42。 您可以通过一些复杂的方法将其打印在日志中,或将其显示为ASCII文字或其他任何东西!只是想出一种新颖的显示方式42。 因为这是一场大众竞赛,无论在3月11日之前获得最多投票的答案,都将被宣布为获胜者。 注意:这不是重复项。它被标记为重复的问题是一个代码查询问题,其目标是将代码编写到输出42,而不是找到显示它的最具创造性的方式。 获胜者: grovesNL!拥有惊人的813票!恭喜! 荣誉奖: Lister C 228 先生对于#define的巧妙使用 David Carraher Mathematica 45对于复杂而复杂的数学函数,可以实现42 Aschratt Windows计算器 20因为它是Windows计算器肯定是1337。 f.rodrigues Python 17因为巧妙地使用了外部程序。和MSPaint Jason C LMGTFY 14供LMGTFY使用(Let Me Google That For You) Trimsty Python 12巧妙地使用错误消息来输出42。 Mukul Kumar C ++ 7用于漂亮的ASCII输出。 如果您认为还有另一个值得一提的答案,请发表评论!

30
蒙娜丽莎调色板中的美国哥特式:重新排列像素
您将得到两个真实的彩色图像,即“源”和“调色板”。它们不一定具有相同的尺寸,但是可以保证它们的面积相同,即,它们具有相同数量的像素。 您的任务是创建一种算法,该算法仅使用调色板中的像素即可制作最精确的“源”副本。调色板中的每个像素在此副本中的唯一位置必须使用一次。副本必须与来源具有相同的尺寸。 可以使用此Python脚本来确保满足以下约束: from PIL import Image def check(palette, copy): palette = sorted(Image.open(palette).convert('RGB').getdata()) copy = sorted(Image.open(copy).convert('RGB').getdata()) print 'Success' if copy == palette else 'Failed' check('palette.png', 'copy.png') 这是几张测试图片。它们都具有相同的面积。您的算法应适用于任何两个面积相等的图像,而不仅仅是American Gothic和Mona Lisa。您当然应该显示输出。 感谢维基百科提供著名绘画的图像。 计分 这是一场人气竞赛,因此获得最高投票答案。但是我敢肯定,有很多方法可以使这个创意! 动画 millinon的想法是,看到像素重新排列自己会很酷。我也这么想,所以我写了这个 Python脚本,该脚本以相同的颜色拍摄两个图像,并在它们之间绘制中间图像。更新:我刚刚对其进行了修改,因此每个像素都必须移动最小量。它不再是随机的。 首先是蒙娜丽莎(Mona Lisa)变成了aittsu的美国哥特式。接下来是bitpwner的American Gothic(来自Mona Lisa)变成了aditsu。令人惊讶的是,两个版本共享完全相同的调色板。 结果确实相当惊人。这是aittsu的彩虹蒙娜丽莎(Mona Lisa)(慢速显示细节)。 最后的动画不一定与比赛有关。它显示了使用我的脚本将图像旋转90度时发生的情况。

17
建立一个编译炸弹
介绍 您可能熟悉zip炸弹,XML炸弹等。简单来说,它们是(相对)小文件,当用纯软件解释时,它们会产生巨大的输出。这里的挑战是以同样的方式滥用编译器。 挑战 编写一些占用512个字节或更少字节的源代码,并将其编译成一个占用最大可能空间的文件。最大的输出文件胜出! 规则 好的,因此有一些重要的说明,定义和限制。 编译的输出必须是ELF文件,Windows Portable可执行文件(.exe)或JVM或.Net的CLR的虚拟字节码(如果需要,其他类型的虚拟字节码也可能没问题)。更新:Python的.pyc / .pyo输出也算在内。 如果不能将您的选择语言直接编译为这些格式之一,则也可以先进行编译再进行编译(更新:只要您从未使用同一语言多次,就可以多次进行编译)。 您的源代码可以包含多个文件,甚至可以包含资源文件,但是所有这些文件的总大小不能超过512个字节。 除了源文件和选择语言的标准库之外,您不能使用任何其他输入。如果支持静态链接标准库,则可以。具体来说,没有第三方库或OS库。 必须可以使用一个或多个命令来调用您的编译。如果在编译时需要特定的标志,则这些标志将计入您的字节数限制(例如,如果您的编译行是gcc bomb.c -o bomb -O3 -lm,则将计算-O3 -lm部分(7字节))(请注意,不计入初始前导空间)。 仅当预处理器是您语言的标准编译选项时,才允许使用预处理器。 环境取决于您,但是为了使此可验证性感兴趣,请坚持使用最新的(即可用的)编译器版本和操作系统(并明确指定要使用的版本)。 它必须编译时没有错误(警告是可以的),并且崩溃会使编译器不起作用。 您的程序实际执行的操作无关紧要,尽管它不可​​能是恶意的。它甚至不必启动。 例子1 C程序 main(){return 1;} Apple LLVM version 7.0.2 (clang-700.1.81)在OS X 10.11(64位)上编译: clang bomb.c -o bomb -pg 产生一个9228字节的文件。源的总大小为17 + 3(对于-pg)= 20字节,这很容易在大小限制内。 例子2 Brainfuck程序: ++++++[->++++++++++++<]>.----[--<+++>]<-.+++++++..+++.[--->+<]>-----.-- -[-<+++>]<.---[--->++++<]>-.+++.------.--------.-[---<+>]<.[--->+<]>-. 用awib转换为c: ./awib ...

30
Covfefify一个字符串
在此挑战中,您必须采用与正则表达式匹配的字符串^[a-zA-Z]+$或任何合理的字符串(如果需要,您不必考虑大写或小写字母)(您可以假设字符串足够长,并且对于所有字符串都具有正确的结构操作),并输出另一个字符串,该字符串与POTUS("Despite the constant negative press covfefe")在最近的dadaist推文末尾产生的单词类似。 如何对字符串进行coffefify: 首先,获得第一个声音组(组成的术语)。 你怎么做到这一点?好: 查找第一个元音(y也是元音) v creation 在那之后找到第一个辅音 v creation 删除其余的字符串 creat 那是您的第一个声音组。 下一步: 获取声音组的最后一个辅音 t 并将其替换为有声或无声版本。为此,请在此表中找到字母。用给定的字母替换(可能是相同的字母) b: p c: g d: t f: v g: k h: h j: j k: g l: l m: m n: n p: b q: q r: r ...
371 code-golf  string 

1
只匹配自己的正则表达式
正则表达式(自匹配正则表达式,正则表达式验证正则表达式)面临一些非常酷的挑战 这可能是不可能的,但是是否存在只能匹配自身的正则表达式? 注意,必须包括定界符: 例如/thing/必须匹配/thing/而不是thing。表达式唯一可能的匹配必须是表达式本身。许多语言允许使用字符串代替正则表达式。例如在Go中 package main import "fmt" import "regexp" func main() { var foo = regexp.MustCompile("bar") fmt.Println(foo.MatchString("foobar")) } 但是为了挑战,如果您想将引号作为分隔符,则让表达式被定界(开始符号,表达式,结束符号ex:/fancypantpattern/或@[^2048]@)。我认为,鉴于此问题的明显困难,它不会带来太大变化。 为了帮助您: 我为rubular.com(用于ruby regex编辑的网页)放在一起的快速技巧: var test = document.getElementById("test") ,regex = document.getElementById("regex") ,delimiter="/" ,options = document.getElementById("options") ,delay = function(){test.value = delimiter + regex.value + delimiter + options.value} ,update = function(e){ // without ...

30
可鸣叫的数学艺术
整数数学布局在网格上时可以生成惊人的模式。即使是最基本的功能,也可以完成精美的设计! 你的挑战 为1024x1024图像的红色,绿色和蓝色值编写3个Tweetable(表示140个字符或更少)功能体。 函数的输入将是两个整数i(给定像素的列号)和j(给定像素的行号),输出将是0到1023(含)之间的无符号短整数,表示给定的数量像素(i,j)中存在的颜色。 例如,以下三个函数产生以下图片: /* RED */ return (unsigned short)sqrt((double)(_sq(i-DIM/2)*_sq(j-DIM/2))*2.0); /* GREEN */ return (unsigned short)sqrt((double)( (_sq(i-DIM/2)|_sq(j-DIM/2))* (_sq(i-DIM/2)&_sq(j-DIM/2)) )); /* BLUE */ return (unsigned short)sqrt((double)(_sq(i-DIM/2)&_sq(j-DIM/2))*2.0); /* RED */ return i&&j?(i%j)&(j%i):0; /* GREEN */ return i&&j?(i%j)+(j%i):0; /* BLUE */ return i&&j?(i%j)|(j%i):0; 规则 有了此C ++代码,就可以替换您的函数。我提供了一些宏,并包含了该库,并且您可能包含complex.h。您可以使用这些库和/或宏中的任何函数。请不要使用超出此范围的任何外部资源。 如果该版本不适合您,请确保您使用的是: g++ filename.cpp -std=c++11 如果这不起作用,请使用使用未签名字符而不是未签名短裤的备用版本。 Michaelangelo提供了清理后的24位或48位彩色输出版本。 ...

8
上升还是下降?
给定山羊的图像,您的程序应该最好尝试识别山羊是否倒置。 例子 这些是输入可能是什么的示例。不是实际的投入 输入: 输出: Downgoat 规格 您的程序最多应为30,000个字节 输入将包含完整的山羊 图片将始终包含山羊 如果山羊倒立,输出Downgoat,否则Upgoat 输入将是您可以将图像作为输入(文件名,图像的base64等)。 要点文件名仅供参考,不要依赖于包含“ Upgoat”或“ Downgoat”的图像名称或其他元数据。 请不要硬编码。这很无聊,我无法完全执行它,但是我可以很好地询问。 测试用例 要点与图像。开头的图像downgoat具有Downgoat输出和图像开始与upgoat有Upgoat输出。 第二批测试用例 确保在所有测试用例上测试图像。这些图像是jpgs。图像大小确实有所不同,但没有说太多。 注意:在接受答案之前,可以添加一些测试用例,以避免使用硬编码的答案并检查程序的总体性能。 正确获得我的头像的奖励积分:P 计分 分数是可以通过以下方式计算的百分比: (number_correct / total) * 100

23
写大约Moby Dick
这是一个1.2Mb ASCII文本文件,其中包含Herman Melville的Moby-Dick的文本;或者,鲸鱼。您的任务是编写一个程序或函数(或类等,请参见下文),每次给该文件一个字符,并且在每个步骤中都必须猜测下一个字符。 这是代码挑战。您的分数将是 2*L + E 这里L是您以字节为单位提交的大小,并且E是猜测错误的字符数。最低分获胜。 进一步的细节 您提交的内容将是一个程序或函数(等),将被多次调用或调用或发送数据。(1215235倍要准确。)在被要求的Ñ 第一次将给出Ñ 个的字符whale.txt或whale2.txt与它必须输出其猜测为(N + 1)个字符。E分数的组成部分将是它猜错的字符总数。 大多数提交将需要在两次调用之间存储一些状态,以便它们可以跟踪它们被调用了多少次以及以前的输入是什么。您可以通过使用static或全局变量写入外部文件,提交类而不是函数,使用状态monad或其他适用于您的语言的方法来做到这一点。您的提交必须包含在首次调用之前初始化其状态所需的任何代码。 您的程序应确定性地运行,以便在输入相同的情况下始终做出相同的猜测(因此始终获得相同的分数)。 您的答案不仅必须包括您提交的内容,还必须包括您用于计算E分数部分的代码。无需使用与提交内容相同的语言编写,也不会计入其字节数。鼓励您使其可读。 关于您的提交和此计分程序之间的接口,只要您的程序在接收下一个输入字节之前始终给出一个字节的输出,就可以了。(因此,例如,您不能仅将包含所有输入的字符串传递给它,而将包含所有输出的字符串传递回去。) 在提交条目之前,您必须实际运行测试程序并计算/验证分数。如果您提交的内容运行得太慢而无法验证其分数,则即使您知道其分数原则上也没有资格参加比赛。 L分数的组成部分将根据打高尔夫球挑战赛的常规规则进行计算。如果您提交的文件包含多个文件,请在这种情况下注意评分和目录结构的规则。您的代码使用的所有数据都必须包含在您的L分数中。 您可以导入现有库,但不能加载任何其他外部文件,并且您的代码可能无法访问whale.txt或whale2.txt以上述以外的任何方式归档文件。您可能不会加载任何预先训练的神经网络或其他统计数据源。(使用神经网络很好,但是您必须在提交的数据中包含权重数据,并将其计入字节数。)如果由于某种原因,您的语言或库包含提供Moby Dick的部分或全部文本的功能,您可能无法使用该功能。除此之外,您可以使用自己喜欢的任何其他内置或库功能,包括与文本处理,预测或压缩有关的功能,只要它们是您的语言或其标准库的一部分即可。对于更特殊的,包含统计数据源的常规例程,您必须自己实现它们并将它们包括在字节数中。 某些提交可能包含其本身由代码生成的组件。如果是这种情况,请在您的答案中包括用于生成它们的代码,并说明其工作原理。(只要不需要此代码即可运行您的提交,它就不会包含在您的字节数中。) 由于历史原因,该文件有两个版本,您可以在答案中使用其中两个版本。在whale2.txt(上面链接的)文本中没有换行,因此换行符仅出现在段落末尾。在原始whale.txt文本中,文本被包装为74个字符的宽度,因此您必须预测每行的结尾以及文本。这使挑战变得更加挑剔,因此whale2.txt建议新的答案。两个文件的大小相同,均为1215236字节。 总而言之,所有答案都应包括以下内容: 您的提交本身。(代码以及它使用的所有数据文件-如果它们很大,可以作为链接。) 有关代码工作方式的说明。请说明I / O方法以及它如何预测下一个字符。您对算法的解释很重要,好的解释将为我带来很多帮助。 您用来评估分数的代码。(如果与以前的答案相同,则可以链接到它。) 您用于生成提交内容的任何代码,以及对该代码的说明。这包括用于优化参数,生成数据文件等的代码。(这不计入字节数,但应包含在答案中。) 排行榜 显示代码段 var QUESTION_ID=152856,OVERRIDE_USER=21034;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 ...

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.