Questions tagged «kolmogorov-complexity»

非正式地,Kolmogorov复杂度是描述或产生恒定对象(例如字符串或图像)所花费的代码量。在此类别中发布挑战时,请确保它为现有挑战添加了新内容。

30
做墨西哥波
用尽可能少的字节编写一个输出以下内容的程序或函数: Abcdefghijklmnopqrstuvwxyz aBcdefghijklmnopqrstuvwxyz abCdefghijklmnopqrstuvwxyz abcDefghijklmnopqrstuvwxyz abcdEfghijklmnopqrstuvwxyz abcdeFghijklmnopqrstuvwxyz abcdefGhijklmnopqrstuvwxyz abcdefgHijklmnopqrstuvwxyz abcdefghIjklmnopqrstuvwxyz abcdefghiJklmnopqrstuvwxyz abcdefghijKlmnopqrstuvwxyz abcdefghijkLmnopqrstuvwxyz abcdefghijklMnopqrstuvwxyz abcdefghijklmNopqrstuvwxyz abcdefghijklmnOpqrstuvwxyz abcdefghijklmnoPqrstuvwxyz abcdefghijklmnopQrstuvwxyz abcdefghijklmnopqRstuvwxyz abcdefghijklmnopqrStuvwxyz abcdefghijklmnopqrsTuvwxyz abcdefghijklmnopqrstUvwxyz abcdefghijklmnopqrstuVwxyz abcdefghijklmnopqrstuvWxyz abcdefghijklmnopqrstuvwXyz abcdefghijklmnopqrstuvwxYz abcdefghijklmnopqrstuvwxyZ abcdefghijklmnopqrstuvwxYz abcdefghijklmnopqrstuvwXyz abcdefghijklmnopqrstuvWxyz abcdefghijklmnopqrstuVwxyz abcdefghijklmnopqrstUvwxyz abcdefghijklmnopqrsTuvwxyz abcdefghijklmnopqrStuvwxyz abcdefghijklmnopqRstuvwxyz abcdefghijklmnopQrstuvwxyz abcdefghijklmnoPqrstuvwxyz abcdefghijklmnOpqrstuvwxyz abcdefghijklmNopqrstuvwxyz abcdefghijklMnopqrstuvwxyz abcdefghijkLmnopqrstuvwxyz abcdefghijKlmnopqrstuvwxyz abcdefghiJklmnopqrstuvwxyz abcdefghIjklmnopqrstuvwxyz abcdefgHijklmnopqrstuvwxyz abcdefGhijklmnopqrstuvwxyz abcdeFghijklmnopqrstuvwxyz abcdEfghijklmnopqrstuvwxyz abcDefghijklmnopqrstuvwxyz abCdefghijklmnopqrstuvwxyz …

19
自动化拯救世界
您是Desmond Hume。在过去的三年中,您和您的伴侣Kelvin一直是计算机的奴隶,该计算机要求每108分钟输入非常特定的顺序以拯救世界。 4 8 15 16 23 42 您的伴侣在40天前死亡(由于不幸的事故涉及Kelvin的头和一块大石头),因此您没有人可以交谈。没有人为您输入数字。没有人打破单调。起初还算不错,但是您再也无法应付沉默了。而且,如果您不得不再听一次“制作属于自己的音乐”,那您将大叫。 您决定需要离开。逃离。您决定建造一艘筏并驶离该岛。但是随后您意识到了一个坏消息:您被困在这里。您需要继续拯救世界。 但是随后您意识到了一个好消息:您是一名程序员!您可以自动拯救世界!兴奋的是,您跑到计算机上,并使用可信赖的python技能,快速编写了一个脚本来为您输入数字。 import time while True: print "4 8 15 16 23 42" time.sleep(60 * 107) 快速,简单,可靠,简短易用。一个好的python脚本应该具备的一切。但是,当您尝试对其进行测试时,您会得到一个错误。 Bad command or file name. strange,奇怪。哦,让我们尝试一下c ++。 #include <iostream> #include <unistd.h> int main() { while (true) { std::cout << "4 8 15 16 23 …

30
写拘留线
介绍 坏消息们-您被拘留了。您的英语老师不理解该站点,希望您“停止对数字式冰球进行数学运算,这是英语课!” 她判您在黑板上写下自己最喜欢的谚语25次,这将在黑板上总共显示100行。 The eighteen-hundreds were a time for rum. The nineteen-hundreds were a time for fun. The two-thousands are a time to run a civilized classroom. 幸运的是,您是一个狂热的读者(更不用说专家级代码窃贼了!)您已阅读了有关可能使您脱身的技巧。 (比尔·阿曼德(Bill Amend)的狐步舞) 不幸的是,对于杰森,它没有奏效。但是你有一个更好的主意!由于您的英语老师认为您正在做数学,因此,如果您将所有数字留在程序之外,它可能会起作用!您还希望使程序尽可能短,因为您是个懒惰的学生,不想在黑板上写很多东西。 编写符合以下规则的程序: 您的程序必须将上述4行打印25次。线路必须以该顺序输出,重复进行。总共总共100行输出(可以在末尾使用换行符,也可以在开始时使用领先的换行符)。 您不能使用字符0123456789。您的老师对数学感到困惑,会叫你出来! 您可以使用任何导入和外部库,而无需计算导入。您的英语老师不了解编程。杰森本可以通过不写#include <stdio.h>而节省很多工作,并且您不想犯同样的错误! 通过byte计数为程序评分。最低分获胜!

30
编程语言测验,Mark II-警察
这个挑战的转贴。元讨论。沙盒发布。问题的主体与原始的相似 强盗的挑战 这位警察和强盗现在(2018年8月3日)不接受进一步竞争的警察参赛,因为强盗可能不再竞争公开答案,而是随时发布新答案。 丹尼斯以出色的6字节Sesos答案赢得了警察挑战赛 强盗挑战赢得了全人类的惊人的30条裂缝! 警察的挑战 参加警察比赛: 选择一种编程语言。一种有效的编程语言是可以满足以下所有三个条件的语言: 发布此挑战时,该文章有英文Wikipedia文章,esolangs文章或Rosetta Code文章,或者在“ 在线试用”上!。在这些页面中的任何一个链接都有口译员,使该口译员完全合法。 它必须满足我们关于构成编程语言的规则 它必须有一个免费的口译员(如啤酒)。这里免费意味着任何人都可以使用该程序而无需付费。 编写一个完整的程序,以升序输出从1到100(包括1和100)之间的数字。您可以输出为十进制整数,字节码值(!例如,代表33)或一进制数字(例如,代表11114)1。如果使用一元数,则应对数字使用任何一致的字符,并使用不同的一致的字符作为分隔符。如果使用整数,则应在每个数字之间输出一个恒定的非数字定界符。您也可以输出带有前导和尾随字符(例如[]),但请保持明智(例如,不要在计数的两边输出一千个字节的垃圾)。您必须在答案中指定输出格式。 您不得使用REPL环境或现有的样板代码。可以使用标志,但是您必须揭示答案中使用了哪些标志。该程序必须采用一个或多个源文件的形式(以排除诸如Folders之类的古怪语言),并且必须完全适合您的答案(因此其长度不能超过65,536个字符)-这对于任何认真的意见。 如果您的代码包含可打印ASCII +换行符之外的字节,请提供一个十六进制转储以确保您的代码可实际测试。 该程序必须在典型的台式PC上在5分钟内终止。 而已。但是,与所有内容一样,有一个陷阱。由于强盗的任务是猜测您使用的语言,因此您应该尽可能地使程序模糊。您还应该确保程序只能以预期的语言运行(尽管与原始挑战中的Foo破解相比,这可能是个小问题)。输出格式必须与预期的解决方案相同,以构成有效的破解。 一旦7天有没有人发现过的任何地方你的程序是有效破解的语言,你可以展示的语言并将其标记为safe。请注意,您的提交仍然可以被破解,直到您透露语言为止。 一旦发布,您在任何情况下都不得编辑提交的源代码(因为这可能会使强盗试图破解答案的积极尝试无效)。因此,在发布之前,请确保尽可能(或不敢)打高尔夫球。如果您发现答案发布后仍然无法使用,只需删除答案并发布固定版本即可。 以字节为单位的最短安全提交方式将获胜! 1:如果您希望以其他方式输出,请在评论中询问 堆栈片段 您可以使用此堆栈片段更轻松地浏览答案: answersSafe=[];answersCracked=[];answersUncracked=[];answerPage=1;robberTodo=[];userNames={};robberMap={};robberStats={};robberTimes={};function template($element,data){var $clone=$element.clone().removeClass('template');var html=$clone.html();for(var key in data){html=html.replace('{'+key+'}',data[key])}$clone.html(html);$element.after($clone)}function hideEmpty(){$('tbody').each(function(){if($(this).find('tr:not(.template):has(td)').length==0){$(this).find('tr:not(.empty):has(th)').addClass('inactive');$(this).find('tr.empty').removeClass('inactive')}})}function formatError(obj,reason){template($('.warn.template'),{id:obj.cop_id,cop:obj.cop_user,reason:reason})}function showAnswers(category,selector,sorter){sorter(category);$('#'+selector).find('tr:not(.template):has(td)').remove();$.each(category,function(i,answer){template($('#'+selector+' .template'),answer)});$('code:has(br)').addClass('clickable').click(function(){$(this).toggleClass('full')});updateCountdowns()}function getAnswers(){$.ajax({url:"https://api.stackexchange.com/2.2/questions/155018/answers?pagesize=100&order=desc&sort=creation&site=codegolf&filter=!*LUzJZNOIUpZsWsZBLe&page="+(answerPage++),method:"get",dataType:"jsonp"}).then(function(data){$.each(data.items,function(i,answer){var obj={cop_id:answer.answer_id,cop_user:answer.owner.display_name,cop_time:answer.creation_date,safe_on:answer.creation_date+604800};var $e=$('<div/>').html(answer.body);var $headers=$e.find(':header');if($headers.length==0){return formatError(obj,"no header")}var header=$headers.first().html();var $code=$e.find('pre code');if($code.length==0){return formatError(obj,"no code")}obj.code=$code.first().html().replace(/\n/g,'<br/>');if(obj.code.endsWith('<br/>')){obj.code=obj.code.slice(0,-5)}var bm=/(\d+)\s+bytes/.exec(header);if(bm==null){return formatError(obj,"no bytecount")}obj.size=parseInt(bm[1]);if(obj.size==NaN){return …

15
画出欧元符号
目标是根据以下规范输出或显示带有€(欧元)符号的图像(忽略符号的边框)。 来源:http : //en.wikipedia.org/wiki/File : Euro_Construction.svg 规则: 程序/脚本必须将€符号的高度(以像素为单位)作为参数(符号周围的空白是可选的) 的€符号不能被绘制为或从字符,直接(它禁止print所述€图像中)或间接(计算8364然后在HTML页面显示它) 输出不需要保存到任何文件,可以显示然后将其显示为屏幕截图 禁止使用标准“漏洞” 最短的代码胜出

30
神秘字符串打印机(警察)
可以在这里找到强盗线程:神秘字符串打印机(强盗) 你的挑战 编写将字符串输出到STDOUT的程序,函数或REPL脚本。 强盗将尝试创建一个打印相同字符串的程序。 如果他们可以在7天内成功创建程序,则您的提交将被破解。 如果没有人可以创建一个程序在7天内打印出相同的字符串,则您提交的文件很安全。您可以选择展示您的程序,也可以选择挑战未来的强盗。但是,如果您不公开它,您将无法从提交中获得任何要点(如果选择这样做,请不要在答案标题中添加“安全”字样)。 限制条件 该程序必须小于或等于128个字节(稍后将对此进行更多说明)。 如果程序取决于程序名称或外部文件的名称/内容,则必须说是这样做,并将其包括在总字节数中。 打印的字符串必须小于或等于2048个字节。 打印的字符串必须仅包含可打印的ASCII字符(可以包含新行)。 程序每次运行都必须产生相同的输出。 不允许使用内置的加密原语(包括任何rng,加密,解密和哈希)。 该程序不得输入。 没有标准漏洞。 计分 如果提交在7天之前被破解,则该提交将获得0分。 ≤128个字符的安全提交将获得1分。 ≤64个字符的安全提交将获得2分。如果小于或等于32个字节,则获得4分,依此类推。 每个安全提交还可以获得额外的3点奖励(与长度无关)。 第一次破解后,每次破解都会被罚款(1/2分)。 请注意,强盗的解决方案必须在相同的程序长度范围内。 每个人在每种语言的每个字节范围内最多可以提交1个程序(不同版本和同一语言的任意替代不算作单独的语言)。示例:您可以发布32字节和64字节的pyth程序,但是不能发布Java 7和Java 8中的128字节的程序。 总积分最高的人获胜。 意见书 每个提交都必须具有以下信息: 语言名称。所有新强盗的解决方案必须使用相同的语言。 程序大小的范围(这是比程序大小大2的最接近的幂;例如,如果您的程序为25字节,则为“≤32”)。 要打印的实际字符串。 如果提交是安全的,请在标题中输入“ safe”和程序长度(最接近2的幂)。如果标题中有多个数字,则将2的幂放在最后。 该堆栈摘录生成排行榜并列出所有打开的提交。如果代码段有任何问题,请发表评论。 显示代码段 /* Configuration */ var QUESTION_ID = 60328; // Obtain this from the url // It …

12
ASCII火车高尔夫
考虑这七辆ASCII火车。 引擎(E) __ ====== \/ | [] |========= | ) ================ O-O-O O-O-O \\ 乘用车(P) =============== | [] [] [] [] | =============== O-O O-O 棚车(B) =============== |-|-| | |-|-| =============== O-O O-O 油轮(T) _____---_____ ( ) =============== O-O O-O 料斗(H) _______________ \ | | | | | | / …

10
画出韩国国旗
当我偶然发现这个问题时,我想起曾经曾经看到过建造朝鲜国旗的确切规则。这是完全不同的构造。 资料来源:维基百科 所以,现在您要绘制此结构的确切结构! 规格 您可以使用矢量或光栅图形将标志呈现到文件或屏幕。如果对输出进行光栅化,则图像的尺寸必须为450x300像素或更大。 所有的长度比率和位置都必须完全如下图所示: 资料来源:维基百科 请注意,两个小圆圈的中心与对角线对齐。 对于颜色,必须使用以下调色板: 白色:#FFFFFF 黑色:#000000 红色:#C60C30 蓝色:#003478 除非您的绘图系统出于技术原因不允许您指定3:2画布,否则不得绘制黑色边界(否则,您应使用3:2画布,并且标记应填满所有画布)。如果确实需要添加边界,则边界可以任意厚-该标志应严格考虑在黑色边界内。不得绘制任何其他帮助线或长度指示器。即,该标志应与第一个图像完全相同。 计分 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 值得一提的是,使用现有压缩(例如嵌入压缩的GIF)会陷入几个标准漏洞。

27
高尔夫球你的语言的身份
标识是表示字符串的哈希值的几何图案的小图像。Stack Exchange 使用Gravatar中的标识作为每个用户的默认头像图像。 在此挑战中,我们还将使用Gravatar identicons生成一些文本以供打高尔夫球。 挑战 这个堆栈片段(此JSFiddle的简化版本)使您可以输入字符串,并返回该字符串的identicon的100×100像素黑白版本,以及1用于黑色和0白色的文本版本: <!-- Click "Run code snippet" --> <div style='text-align:center;'> <input id='str' type='text' size='32' value='Python'> <button type='button' onclick='go()'>Go</button><br><br><input id='type1' name='type' type='radio' value='identicon' checked> <label for='type1'>Identicon</label> <input id='type2' name='type' type='radio' value='monsterid'> <label for='type2'>Monster</label> <input id='type3' name='type' type='radio' value='wavatar'> <label for='type3'>Wavatar</label> <input id='type4' name='type' type='radio' value='retro'> <label …

27
我爱你我爱你我爱你!
XKCD#99(标题为“ Binary Heart”)显示了一个简单的由1和0组成的图像,其中一些数字显示为红色。 肉眼可以看到红色的心,但是隐藏在二进制序列中的消息却不可见。如果删除所有空格和换行符,并将二进制序列解释为8位ASCII码,则会得到以下消息: iloveyOuilOveyouiloveyOuilOveyOuiloveyouilOveyouilOveyOuilOv 可爱吧? Pssst ...字符串不是纯字符串重复。 您面临的挑战是创建一个宽度为21位,向下为23位的二进制图像。每行中的每个数字之间应恰好有一个空格,而每一行中应有一个换行符。请注意,最后一位只是字母的开头e,因为21*23不能被8整除。您也需要正确的位。 该功能或程序不应接受任何输入。可以使用前导和尾随空格以及换行符。 您的代码结果应如下所示: 0 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 0 0 1 1 0 0 1 0 …

30
显示黑客徽标
您可能听说过“ Hacker徽标”,也称为“ Hacker标志”。看起来像这样: 这是来自称为生命游戏的数学模拟的一种模式。滑翔机是移动最简单的生活模式,也是所有生活模式中最容易识别的。 挑战 挑战非常简单:显示黑客徽标。定义为: 具有边框,白色背景和灰色网格线的3x3网格。 以GoL滑翔机模式排列的五个黑点。 没有其他的。 规则 黑点必须填写40% - 80%的其个人网箱。 您将使用图形输出显示标志,但不显示ASCII文字。 输出必须至少为30x30像素。 输出只能具有灰色,黑色和白色。 网格中的每个网格框都将具有相同的大小。网格将是规则的3x3正方形。 您不得从互联网或文件系统中提取徽标。 您的程序将在空白屏幕/窗口上显示徽标。如果终止,则必须正常进行。 注意,“点”不一定表示“圆圈”。“点”是居中于具有一个表面的网格框中间的单个几何形状。例如,一个圆形或正方形将被视为一个点,而两个三角形或一个棋盘将不被视为一个点。 赢家 因为这是代码高尔夫,所以每种语言中最短的答案将获胜! 请在答案中包括程序输出的屏幕截图。

10
小钱德勒很伤心。画他的云,使他振作起来
小钱德勒很伤心。画他的云使他振作起来。 注意:画云实际上不会使他振作起来。 圆可以定义为三元组(x,y,r),其中x是圆在笛卡尔平面上的x位置,是圆在笛卡尔平面y上的y位置以及圆r的半径。x并y可能是负面的。r永远是积极的。输入是以空格分隔的三元组形式的圆的列表。例如: 3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8 的3,1,1意思是“在与中心点的圆3,1与1个半径。3,2,1.5是指”在与中心点的圆3,2用1.5半径。 如果我们在图形上绘制输入的所有这些圆,则看起来像这样(我仅出于清晰起见添加了网格线和标签;它们不是必需的): 注意所有的圆是如何凝聚的。也就是说,它们全部重叠在一起,从而形成一个大的组,而没有其他的小圈子。输入保证是内聚的。 假设现在绘制一条绕这些圆形成的“边界”行进的线,而没有其他任何线。就像绘制所有圆组成的轮廓的边界一样。生成的云看起来像这样: 因此,仅通过在输入中绘制形成边界的圆弧来形成单一形状即可形成此云。换句话说,仅通过绘制不在另一个圆内的圆弧来形成云。您的程序将以上述形式接受输入,并输出显示结果云的图像。云的整体形状必须正确,但是比例,颜色,线条粗细以及在顶点处的外观取决于您。请注意,云必须是可见的,因此您不能拉出类似“此程序在白色背景上绘制白色云”,“此程序以无限小的比例绘制云”,“此程序以0绘制云”之类的内容。线宽”等。还请注意,边框的颜色必须与填充或背景的颜色不同。 另一个例子。输入: 1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7 输出: 如果云中存在“洞”,则也应绘制该洞。输入: 0,5,4 3,4,4 4,3,4 5,0,4 4,-3,4 3,-4,4 0,-5,4 -3,-4,4 -4,-3,4 -5,0,4 -4,3,4 -3,4,4 输出: 这是一条重要规则:您的程序必须仅绘制形成边框的线。这意味着您不能简单地完全绘制圆,然后用白色填充将圆绘制得稍小一些,因为该方法仍会绘制不形成边界的线,之后只会将其覆盖。该规则的目的是防止“绘制圆,然后用白色填充再次绘制圆”的实现或类似的方法。预计答案将在绘制之前实际计算出绘制对象的位置。 这是代码高尔夫球,因此最短的字符数获胜。

30
您所有的基地都属于我们(受限制)
不需要输入,输出必须读为“ All your base are belong to us”。 限制条件 没有外部资源。 加上以下至少两个: 您在代码中的任何情况下都不能使用“ a”,“ b”,“ t”,“ u”或“ y”(如果可以的话,可以在高尔夫得分上加-10) 在您的代码中,无论如何都不能使用“ l”,“ o”,“ s”,“ e”或“ r”(如果可以的话,可以在高尔夫球得分上加-20) 在您的代码中,无论如何都不能使用“ n”,“ g”,“ 0”,“ 1”或“ 2”(如果可以的话,对高尔夫成绩加分-30) 因此,例如,如果您设法用40个字符完成代码并使用规则1和2,则高尔夫球得分为40-10-20 = 10个字符。 最小码的高尔夫球得分获胜...祝您好运!

13
谁是美国总统?
挑战 编写一个程序,将1789年4月30日至2019年8月21日的一天作为输入,并返回当日为美国总统的输出。 笔记 有关美国总统的名单,姓名格式和任期,请参见以下内容: April 30, 1789 - March 4, 1797 George Washington March 4, 1797 - March 4, 1801 John Adams March 4, 1801 - March 4, 1809 Thomas Jefferson March 4, 1809 - March 4, 1817 James Madison March 4, 1817 - March 4, 1825 James Monroe March …

10
嘎嘎生气的鸭子
尚不确定该图释>:U打算代表什么,但许多学者认为它看起来像只愤怒的鸭子。假设是这种情况。 任务 给定整数n(介于0和3之间,包括0和3),请打印或返回 quack 如果n = 0, >:U 如果n = 1, U U > : U U > U U > : U U UUU 如果n = 2,或者 >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U >:U …

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.