Questions tagged «kolmogorov-complexity»

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

30
扩展ASCII Sun
编写一个程序(通过STDIN /命令行)使用一个非负整数N。 当N为0时,您的程序应打印O(大写字母Oh,而不是零)。 当N为1时,您的程序应打印 \|/ -O- /|\ 当N为2时,您的程序应打印 \ | / \|/ --O-- /|\ / | \ 当N为3时,您的程序应打印 \ | / \ | / \|/ ---O--- /|\ / | \ / | \ 对于较大的N,此模式将以完全相同的方式继续。每个“太阳”的八个射线应的适当的N个-,|,/,或\字符。 细节 您可以编写一个带整数的函数来代替程序。该函数应正常打印sun设计或将其作为字符串返回。 你必须 根本没有尾随空格,或者 仅具有足够的尾随空格,因此该模式是一个完美的(2N + 1)*(2N + 1)矩形。 任何N个或所有N个的输出都可以选择包含尾随换行符。 计分 以字节为单位的最短代码获胜。

21
一个环统治他们全部。一个包含所有字符串的字符串
目标:输出一个字符串,其中包含每个严格低于1000的正整数。 显而易见的答案是将它们中的每一个串联起来,这将创建一个2890个字符的字符串(感谢manatwork),为避免这种简单的答案,字符串的长度必须小于1500个字符。这是输出1200个字符的String的简单Java代码。 import org.junit.Test; import java.util.ArrayList; import java.util.List; import java.util.TreeSet; import static org.junit.Assert.assertTrue; /** * Created with IntelliJ IDEA. * User: fab * Date: 05/11/13 * Time: 09:53 * To change this template use File | Settings | File Templates. */ public class AStringToContainThemAll { @Test public void testsubStrings() throws …

30
画一个Sierpinski三角形
Sierpinsky三角形是通过截取三角形,将高度和宽度减小1/2,创建3个所得三角形副本并将每个三角形与其他两个三角形接触的方式创建的分形。如下图所示,对生成的三角形反复进行此过程,以生成Sierpinski三角形。 编写程序以生成Sierpinski三角形。您可以通过绘制实际三角形或使用随机算法生成图片来使用想要生成图案的任何方法。您可以绘制像素,ascii艺术作品或任何您想要的东西,只要输出看起来与上面显示的最后一张图片相似即可。最少的角色获胜。

30
我是工程师吗?
最近,一名研究交通信号灯正时的电气工程师被俄勒冈州称为自己的工程师,被罚款500美元。 给定一个2个字母的字符串作为输入,代表美国的州,输出: I am not an engineer如果州是俄勒冈州(OR) I am an engineer 如果该州是美国的任何其他州 What is an engineer? 得到任何其他输入 输出可能不包含任何前导空格,但可以包含所需的尾随空格。 您可以假设输入将始终是2个大写字母。 以下是美国所有50个州缩写的列表: AL, AK, AZ, AR, CA, CO, CT, DE, FL, GA, HI, ID, IL, IN, IA, KS, KY, LA, ME, MD, MA, MI, MN, MS, MO, MT, NE, NV, NH, NJ, …

28
惊喜连连看
该问题是旨在庆祝Brain-Flak的第一个生日的系列Brain-flak Birthday挑战的一部分。您可以在此处找到有关Brain-Flak诞辰的更多信息。 今天是Brain-Flak的第一个生日!所以我想我们会举办一个惊喜的生日聚会。因此,以您喜欢的语言打印 Surprise! Happy Birthday, Brain-Flak! (允许尾随空格) 与往常一样,程序应该打高尔夫球。但是,由于Brain-Flak程序由方括号组成,因此不会将源中的任何方括号都计入您。(字符()[]<>{}不计入您的字节总数),但必须保持平衡,以免使Brain-Flak感到不适。 规则 这是规则的细分 您来源中的方括号必须保持平衡。那就是您的程序的括号必须用以下语法来表示: S -> SS | (S) | [S] | <S> | {S} | E E空字符串在哪里。 也就是说,平衡字符串要么是两个平衡字符串的串联,要么是在平衡字符串周围大括号,要么是空字符串。 程序的分数是非括号字节的数量。 您的目标应该是使自己选择的任何语言的得分降至最低。 应用标准规则,因此您可以编写完整的程序或函数。 如果出现平局,原始字节数将成为平局 在某些语言(括号地狱, 括号,Glypho和Lenguage)中肯定会有零字节的解决方案。尝试找到在这不是一件小事的语言中打高尔夫的好方法。

30
画一个ASCII棋盘!
这对您来说是一个简单的挑战:您必须产生棋盘的ASCII表示形式。白色用大写字母表示,黑色用小写字母表示。空图块用表示.。这是全膳: rnbqkbnr pppppppp ........ ........ ........ ........ PPPPPPPP RNBQKBNR 由于这是一个kolmogorov复杂性问题,因此您可能不接受任何输入,并且必须通过任何默认方法输出此评估板,例如,保存文件,打印到STDOUT或从函数返回。您可以选择产生一个尾随换行符。存在标准漏洞,并且以字节为单位的最短程序! 但是,请记住,这同样是同一种语言的提交之间的竞争。尽管Java之类的语言不可能击败perl之类的语言,或者pyth或cjam之类的高尔夫语言,但Java的最短答案仍然令人印象深刻!为了帮助您跟踪每种语言的最短答案,您可以使用此排行榜,它将按语言和总体显示最短的提交。 排行榜 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: # Perl, 43 + 2 (-p flag) = 45 bytes 您还可以将语言名称设置为链接,然后该链接将显示在页首横幅代码段中: # [><>](http://esolangs.org/wiki/Fish), 121 bytes 显示代码段 var QUESTION_ID=95745,OVERRIDE_USER=31716;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 …

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 

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 …

18
打印字符名称
每个Unicode字符都有一个名称,例如“拉丁文大写字母A”。Unicode字符名称只能包含大写字母,空格和减号。 编写一个程序,该程序读取文本并在新行上输出每个字符的名称。例如,如果输入为“ Hello,World!”,则输出为 LATIN CAPITAL LETTER H LATIN SMALL LETTER E LATIN SMALL LETTER L LATIN SMALL LETTER L LATIN SMALL LETTER O COMMA SPACE LATIN CAPITAL LETTER W LATIN SMALL LETTER O LATIN SMALL LETTER R LATIN SMALL LETTER L LATIN SMALL LETTER D EXCLAMATION MARK 输入应该来自文件或用户输入,而不仅仅是代码中的字符串。 输出应写入文件或标准输出或打印到屏幕上。 不允许使用Internet和外部库,所有必需的数据都应包含在代码中。 …

30
垂直打印正弦波
打印在终端上垂直滚动的连续正弦波。该程序不应终止,而应连续向下滚动该波形(除非以某种方式被中断)。您可能会认为溢出不是问题(即,您可以使用带有递增计数器的无限循环或无限递归)。 该波应满足以下特性: 幅度= 20个字符(峰值幅度) 期间= 60至65行(含) 输出应仅包含空格,换行符和 | 每行输出后,暂停50ms 样本输出: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | …

9
编写最短的程序,生成最多的编译器警告和错误
挑战: 编写一个非常简短的程序,该程序在编译时会创建最多数量的编译器警告和错误。可以用任何编程语言编写。 得分: 分数由以下公式确定:errors_and_warnings_length/code_length。最高分获胜。 例: C#程序的class长度为5个字符,并生成3个警告,得分为(1/5)* 3 = 0.6。 编辑: 由于某些混淆,程序必须至少为1个字符长。否则它将得到无穷大。

17
包含每个字母的第一个数字
给定一个从A到Z的单个字母(J和K除外),以书面形式输出包含该字母的最小非负整数。假设数字从不包含单词“和”,那么101“一百一”就不包含“一百一”。假设美国人(小规模)计数,那么一百万就是10^6十亿10^9。 a 1000 one thousand b 1000000000 one billion c 1000000000000000000000000000 one octillion d 100 one hundred e 0 zero f 4 four g 8 eight h 3 three i 5 five j k l 11 eleven m 1000000 one million n 1 one o 0 zero p 1000000000000000000000000 one …

30
天哪,吉萨高尔夫!
“吉萨数”(俗称“ 蒂米数”)是指数字代表金字塔的任何数字(A134810)。例如,“ 12321”是一个吉萨数字,因为它可以像这样可视化: 3 2 2 1 1 但是,“ 123321”之类的字符不是吉萨币,因为金字塔的顶部有两位数字 33 2 2 1 1 换句话说,如果满足以下所有条件,则数字为吉萨数: 它的位数是奇数,中间的数字是最大的 它是回文的(相同的向前或向后读取),并且 数字的前半部分严格增加一个。(由于必须是回文,这意味着数字的后半部分必须严格减少一位) 您必须编写一个采用正整数作为输入的完整程序或函数,并确定它是否为吉萨数。您可以将输入作为字符串或数字。如果它是吉萨数,则输出真实值。否则,将产生虚假的值。 共有45个吉萨数字,因此这些输入中的任何一个都应产生真实值: 1 2 3 4 5 6 7 8 9 121 232 343 454 565 676 787 898 12321 23432 34543 45654 56765 67876 78987 1234321 2345432 3456543 4567654 5678765 …


22
打印元素周期表
您的挑战是打印/输出/返回此文本: _____ _____ | 1 | | 2 | | H | | He | |_____|_____ _____________________________|_____| | 3 | 4 | | 5 | 6 | 7 | 8 | 9 | 10 | | Li | Be | | B | C | N | O | F …

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.