Questions tagged «kolmogorov-complexity»

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

10
他们从哪里打来的?
在国际范围内拨打电话时,电话号码前会带有一个代码,以指示该号码所在的国家/地区。这些代码是前缀代码,这意味着任何代码都不是另一个前缀。 现在,今天早些时候,您错过了一个呼叫,并且您很好奇该呼叫可能来自何处。因此,您想查找调用代码。但是,作为前缀代码,您不太确定它的结尾,因此您决定编写一个程序以将调用代码与号码的其余部分分开。 输入值 作为输入,您将收到一个由digits组成的字符串0-9。前几位数字将是下面列出的国家/地区电话代码之一(这意味着前几位永远不会是0)。输入国家/地区电话代码后,其余输入将以任意顺序包含零个或多个数字- 不保证该数字是有效的电话号码。您的程序必须能够处理至少包含15位数字的输入 输出量 您的程序应输出唯一的国家/地区电话代码,该代码是该号码的前缀。有效输出如下: 1 20 211 212 213 216 218 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 …

2
输入vim中的绿鸡蛋和火腿
苏斯博士撰写的《绿鸡蛋和火腿》一书以整个故事中只有50个不同的单词而闻名。 您的任务是创建一个击键序列,当在vim文本编辑器中将其应用于空文件时,将以所有默认设置从常规模式开始,生成“绿色鸡蛋和火腿”的整个文本。击键操作过程中不得加载任何其他文件-所有文本都必须在编辑器内部生成。 您的最终缓冲区必须与该文件完全一样,尽管它可以保留在最终处于的任何模式下(您不必具有最终结构<Esc>即可将其返回到正常模式)。 像<C-o>或使用Shift键来键入大写字母的和弦键击作为单个键击。 达到此目标的最少击键顺序将获胜。

7
3x3x3立方体的表面作为图形
您的任务是生成具有54个顶点的图形,每个顶点对应于Rubik立方体上的一个构面。如果相应的小平面共享一个边,则两个顶点之间会有一条边。 规则 您可以选择输出邻接表,邻接矩阵,边列表或任何合理的格式来表示算法中的图形。(在大多数情况下,人类可读的视觉图通常在算法中不是合理的格式。) 您可以使每个顶点彼此相邻,也可以不使它们彼此相邻。 您可以为每个边沿包括两个方向(对于自循环计数为一或两次),也可以为每个边沿精确地输出一次,但不能混合使用。 您可以根据需要对顶点重新编号,跳过一些数字,甚至对顶点使用非数字标签。如果编号不明显,您还应该发布编号,以便其他人可以更轻松地检查您的答案。 这是代码高尔夫球。以字节为单位的最短代码获胜。 输出示例 这是示例中使用的顶点编号: 0 1 2 3 4 5 6 7 8 9 10 11 18 19 20 27 28 29 36 37 38 12 13 14 21 22 23 30 31 32 39 40 41 15 16 17 24 25 26 33 34 …

30
文字压缩
在下面的给定文本中,文本中有些单词在文本中重复多次。使用任何编程语言编写简短的代码即可压缩文本以显示它。换句话说,使用最少的字节数来显示文本。 文本是: Peter Piper picked a peck of pickled peppers. A peck of pickled peppers Peter Piper picked. If Peter Piper picked a peck of pickled peppers, Where's the peck of pickled peppers Peter Piper picked?

14
高尔夫中国9 * 9多桌
输出下表: 一一得一 一二得二 二二得四 一三得三 二三得六 三三得九 一四得四 二四得八 三四十二 四四十六 一五得五 二五一十 三五十五 四五二十 五五二十五 一六得六 二六十二 三六十八 四六二十四 五六三十 六六三十六 一七得七 二七十四 三七二十一 四七二十八 五七三十五 六七四十二 七七四十九 一八得八 二八十六 三八二十四 四八三十二 五八四十 六八四十八 七八五十六 八八六十四 一九得九 二九十八 三九二十七 四九三十六 五九四十五 六九五十四 七九六十三 八九七十二 九九八十一 或者,如果某些语言不支持汉字,则可以在英语单词中使用前三个字母: OneOneGetOne OneTwoGetTwo TwoTwoGetFou …

9
我有几章?
圣经是有史以来最有影响力的书之一,通常被称为有史以来最畅销的书。它是由大约 40位不同的作者在数百年的时间里编写的,然后才被编译成当前的形式。但是,《圣经》有趣的是它的分割方式。它分为2个不同的遗嘱,分为66个较小的书,每本书分成较小的章节,每个章节都分为单独的经文。 我认为尝试以尽可能短的代码编码每本书中的章节数将是一个有趣的挑战。因此,对于当今的挑战,您必须编写一个程序或函数,以其中一本书作为输入,并根据The King James Version输出该书中的章节数。 您可以采用任何合理格式的IO,例如读/写STDIN / STDOUT或文件,函数自变量/返回值,提示用户等。输入内容将始终是《圣经》的66本书之一,并且仅是小写字母。这意味着,如果给您任何其他输入,则允许未定义的行为。由于只有66可能的输入和输出,他们在这里都提供了,根据维基百科上关于圣经的章节中的国王詹姆斯版本页: genesis 50 exodus 40 leviticus 27 numbers 36 deuteronomy 34 joshua 24 judges 21 ruth 4 1 samuel 31 2 samuel 24 1 kings 22 2 kings 25 1 chronicles 29 2 chronicles 36 ezra 10 nehemiah 13 esther 10 job …

29
数字块
输出/打印此文本块: 1234567890 2468013579 3691470258 4815926037 5049382716 6172839405 7306295184 8520741963 9753108642 0987654321 可接受的格式包括: 尾随换行符/空格 字符串清单 字符列表 整数列表清单 但是,整数列表是不可接受的,因为最后一行不是整数。 这是代码高尔夫球。以字节为单位的最短答案将获胜。有标准漏洞。

17
压缩最大差异2序列
输出以下长度为1160的二进制序列: -++-+--++-++-+--+--++-+--+--++-+--++-++-+-++--++-+---+-++-+--+--++++--+--++-+--++-++----++-++-+-++--++-+-+---++-+--++-++-+--++-+--+---+-++-+--++-++-+--+--++-++-+--++-+--+++-+-+----+++-+--+--+++---++-++-+--+--+++--+-+-+--+-+++-++-+--+--++-+--++-++-+--+--++--+++---+++-+---++-+--++--+-+--+-+++-+--++-++-+--++-+--+--++-+--++--+-++-+-+--+-+-++-+--++-+--+--++-+-+-++-+-+-++---+-+--++++--+---++-+-++-+--++-+--+--++-+--++++--+---+-++++--+--++-++-+--++-+--+--++-+--++-++-+--++-+--+--++-++-+----+++-+--++--+++---+-++-+--+-++---+-++-++-+--+--++--++++-+--+--+--++++--+--+++---++-++-+--++--+-+--+--++-++-+--+--+-+++-++-+--+--++--+-++-++-+--+--+--++-++-+--+++---++-+--++-++---+++---++-++----+++--+-++-+--+--++-+--++-++-+-++--++--++----+++-++--++----++-+++--++---+++----+-+-++-++-++-+-+----+++--++-+--++-++-+--+--+--++-+--++-++-+--++--+-+--+-+-+-++++---+-+-++--+--+-+-+-++-+-+++--+-+--+--+-+++--+-+++---++-+--+--++-++--++---++-+-++--++-+---+-++-+--+-++--++-+--++-+--+-+++-+--++--+-+-+++--+-+--++-++-+--+--+-++---+-++-+-++--++-+--+++-+----++--+-++-+-++--++-+--++-+-++--++-+---+-++-+--+++----+-+-++--++-+--++-++-++-+--+--+--++++---++---+-+-++-+-+++--+-++--+-+--+-+-++---+++-++ 序列 我希望这种有限序列的结构严密,希望可以采用独特的压缩方法。它源于先前挑战中的Erdős差异问题。 将术语视为+1和-1,这是差异2的最大长度序列,这意味着: 对于每个正步长d,如果您采用每个d'th项(从th项开始d),则结果序列的运行总和将保持在-2和2之间(含-2)。 如果您认为每条指令都意味着+向右迈进和-向左迈进,则这意味着每条d指令的行走距离起点都不会超过2步。 例如,对于d=3,每第3个项取一个序列+-++--+--+-...,其运行总和为[1,0,1,2,1,0,1,0,-1,0,1,...],但从未达到-3或3。 -++-+--++-++-+--+--++-+--+--++-+--+... ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ + - + + - - + - - + - 1 0 1 2 1 0 1 0 -1 0 -1 ... 该序列是在2014年通过计算机搜索发现的。参见本文,该序列复制于附录B。该搜索证明差异2序列的最大长度为1160,尽管该长度不止一个序列。于2015年证明的Erdős差异问题表示,对于任何最大差异,任何此类序列都必须具有有限的长度,c而不是2。 时间要求 您的代码应在5秒钟内完成。这是为了限制暴力破解。 输出格式 您可以使用任何两个固定的不同字符或值,+以及-任何类似列表或类似字符串的格式。格式应为可直接读取1160位值的格式,而不是例如通过二进制表示形式编码为数字或通过字符值编码为字符串。对于字符串输出,允许尾随换行符。 排行榜 显示代码段 …

28
计算逆模量
任务: 输出for的值x,其中a mod x = b有两个给定值a,b。 假设条件 a并且b将始终为正整数 永远不会有解决方案 x 如果存在多个解决方案,请至少输出其中之一。 如果没有任何解决方案,则不输出任何内容或表明不存在任何解决方案。 允许内置(不像其他数学方法那样有趣) 输出始终是整数 例子 A, B >> POSSIBLE OUTPUTS 5, 2 >> 3 9, 4 >> 5 8, 2 >> 3, 6 6, 6 >> 7, (ANY NUMBER > 6) 8, 7 >> NO SOLUTION 2, 4 >> NO …
18 code-golf  math  number-theory  code-golf  number  integer  code-golf  string  code-golf  music  code-golf  arithmetic  array-manipulation  decision-problem  code-golf  math  rational-numbers  code-golf  code-golf  graphical-output  hardware  code-golf  math  number  code-golf  string  parsing  natural-language  code-golf  tips  brain-flak  code-golf  graph-theory  code-golf  number  polynomials  king-of-the-hill  code-golf  ascii-art  kolmogorov-complexity  animation  king-of-the-hill  code-golf  tips  code-golf  ascii-art  code-golf  string  array-manipulation  data-structures  code-golf  math  number  code-golf  string  base-conversion  binary  code-golf  decision-problem  graph-theory  code-golf  math  polynomials  code-golf  kolmogorov-complexity  physics  code-golf  sequence  number-theory  code-golf  math  integer-partitions  code-golf  array-manipulation  random  permutations  code-golf  string  decision-problem 

15
g o l f a t 2
有时将笛卡尔坐标转换(x,y)为极坐标确实很费力(r,phi)。虽然你可以计算r = sqrt(x^2+y^2)很容易,你经常计算时的角度需要的情况下有些区别phi,因为arcsin,arccos以及arctan和所有其他三角函数有一个共同域,每个只有跨越半个圆。 在许多语言中,都有用于将直角坐标转换为极坐标的内置atan2函数,或者至少具有给定的(x,y)计算角度的函数phi。 任务 你的任务是写一个程序/功能采用两个(浮点,但不能同时为零)笛卡尔坐标(x,y),并输出对应的极角phi,其中phi必须处于度,弧度或等级(与等级余平均gradians其是1 /整圆的400),以您较方便的为准。 角度是在正方向上测量的,对于,我们有零角度(1,0)。 细节 您不得使用内置插件是计算角度phi给出两个坐标,其中包括atan2,rect2polar,argOfComplexNumber和类似的功能。但是,您可以使用通常的三角函数及其反函数,它们只需一个参数。任何单位符号都是可选的。 半径r必须为非负数,并且phi必须在范围内[-360°, 360°](无论输出270°还是,都无关紧要-90°)。 例子 Input Output (1,1) 45° (0,3) 90° (-1,1) 135° (-5,0) 180° (-2,-2) 225° (0,-1.5) 270° (4,-5) 308.66°
18 code-golf  math  geometry  trigonometry  code-golf  number-theory  fibonacci  code-golf  math  sequence  fibonacci  code-golf  string  code-golf  math  graphical-output  geometry  code-golf  string  code-golf  math  geometry  code-golf  math  bitwise  number  popularity-contest  graphical-output  image-processing  fractal  code-golf  number-theory  code-golf  date  multi-threading  code-golf  math  code-golf  math  number  sequence  code-golf  math  number  sequence  arithmetic  code-golf  decision-problem  logic-gates  code-golf  decision-problem  balanced-string  code-golf  math  arithmetic  combinatorics  code-golf  expression-building  code-golf  physics  code-golf  abstract-algebra  code-golf  number  arithmetic  integer  code-golf  ascii-art  number  code-golf  number-theory  primes  code-golf  arithmetic  grid  code-golf  code-golf  sequence  code-golf  kolmogorov-complexity  compression  code-golf  math  number  arithmetic  array-manipulation  code-golf  primes  hexagonal-grid  complex-numbers  code-golf  number  counting  code-golf  math  number  arithmetic 

2
被遗忘的领域日期计算器
为了平衡具有内置日期库的语言和没有内置日期库的语言之间的竞争环境,让我们使用虚拟日历。“被遗忘的境界”是“龙与地下城” 的(the?)广告系列设置。当然,每个人都有自己的日历。 Harptos日历 方便地,在“被遗忘的领域”中的一年也有365天。此外,日历也有12个月。但是,这才变得有趣。每个月正好是30天。剩下的5天是假期,介于两个月之间。以下是月份和节假日的顺序(节假日缩进): 1 Deepwinter Midwinter 2 The Claw of Winter 3 The Claw of the Sunsets 4 The Claw of the Storms Greengrass 5 The Melting 6 The Time of Flowers 7 Summertide Midsummer [Shieldmeet] 8 Highsun 9 The Fading Highharvestide 10 Leaffall 11 The Rotting The Feast …

9
将指南针的点转换为度
我独立提出了这个挑战,但是事实证明,这与Doorknob提出的挑战相反。因为我真的很喜欢他的规格,所以我决定窃取大部分规格,而不是自己解释。 挑战 给定指南针上32个点之一的缩写,请打印相应的度数。如果您对这32点的解释不感兴趣,请随时跳到下表。 这是完整的指南针: 由Denelson83(自己的作品)[ GFDL或CC-BY-SA-3.0 ],通过Wikimedia Commons 每个方向比上一个方向远11.25(360/32)度。例如,N(北)为0度,NbE(北至东)为11.25度,NNE(北-东北)为22.5度,依此类推。 详细地,名称分配如下: 0度是N,90度是E,180度是S,而270度是W。这些被称为基本方向。 基本方向之间的中间点就是它们之间串联的基本方向。N或S始终排在第一位,W或E始终排在第二位。这些称为顺序指示。序数和基数方向共同构成主要风。 主风之间的中点是它们之间的连接方向。基本方向为第一,第二顺序。这些被称为半风。 主风和半风之间的中点是相邻的主风“远离”最接近的基本方向。用表示b。这些被称为四分之一风。 结果如下表: # Degrees Abbrv. Name 1 0 N North 2 11.25 NbE North by east 3 22.5 NNE North-northeast 4 33.75 NEbN Northeast by north 5 45 NE Northeast 6 56.25 NEbE Northeast by east 7 …

6
电子配置
电子配置 您的任务是接受元素的原子序数作为输入,并输出其电子构型(例如2,8,8,2钙)。 输入值 原子序数从1到118。您可以假设输入有效。原子不带电(它的电子与质子一样多)。您可能不希望输入存储在变量中,因此必须编写完整的程序。 输出量 每个非空电子壳中的电子数。我会对输出格式很宽容;以下所有条件都是可以接受的,即您可以使用任何标点符号或空格来分隔数字,并且可以使用任何类型的方括号。请指定使用哪个。 2,8,8,2 2.8.8.2 2, 8, 8, 2, [2,8,8,2] 2 8 8 2 ([2 [8]] [8] 2) 电子如何工作 在原子中,电子有序进入“壳”,即能级。每个壳都有一定的容量,即它能够容纳的最大电子数。贝壳从内向外填充,但不均匀。根据此消息来源,您的任务是确定给定原子序数,每个壳中有多少个电子。 直至并包括钙(原子序数为20),壳均匀地填充。内壳首先填充至容量2,第二至8,然后第三至8,最后至2。钙的电子构型为2,8,8,2。 补钙后,事情变得复杂了。进一步的电子进入第三个壳,而不是最后一个。更糟的是,钒为(23)2,8,11,2,而铬(24)为2,8,13,1和锰(25)为2,8,13,2。 但是,存在一些一致的模式:稀有气体及其之前的七个元素将始终使外壳中的电子数量从1增加到8。例如: 金(79): 2,8,18,32,18,1 汞(80): 2,8,18,32,18,2 ... (85): 2,8,18,32,18,7 (86): 2,8,18,32,18,8 规则 禁止出现标准漏洞。 允许在此挑战之前存在的图书馆。 禁止任何专门处理原子,分子或化学的内置或库功能。 以字节为单位的最低代码长度为准。 在链接的源中,元素103-118的配置如所预测的那样用(?)标记,并且元素太不稳定而无法检查。对于这个挑战,假设它们是正确的。 您可以对部分或全部数据进行硬编码。 [新规则]如果您在文件中使用控制字符,则请提供文件的base64或xxd转储(许多答案似乎正在这样做) 获胜者:丹尼斯的CJam答案为80字节!

23
用n显示n
我想要的是: 非常简单,我想要一个基于文本的显示,要求输入n,然后在显示上显示该值!但是有一个陷阱。每个“真实”“像素”(填充的像素)都必须用该数字表示n。 范例: 系统会为您提供输入n。您可以假设n将是一个数字 Input: 0 Output: 000 0 0 0 0 0 0 000 Input: 1 Output: 1 1 1 1 1 Input: 2 Output: 222 2 222 2 222 Input: 3 Output: 333 3 333 3 333 Input: 4 Output: 4 4 4 4 444 4 4 Input: …

8
建立一个“ BizzFuzz”程序
在传统的FizzBu​​zz中,系统会要求您打印1到100之间的数字,但用“ Fizz”替换3的每一个倍数,用“ Buzz”替换5的每一个倍数,而将3和5(即15)的每一个倍数都用“ FizzBu​​zz”。 但是,作为一个邪恶的面试官,我发明了自己的FizzBu​​zz版本,我决定将其命名为BizzFuzz,并通过编码面试提供给您。 游戏规则是: 打印从1到100的每个数字,除非该数字满足以下条件之一。 如果数字可被4整除,则打印“ Fizz”。 如果数字可被5整除,则打印“嗡嗡声”。 如果数字可被4整除,但紧随其后的数字可被5整除,请打印“ FizzBu​​zz”而不是“ Fizz”,并定期打印下一个数字。 如果数字可被5整除,但紧随其后的数字可被4整除,则打印“ BuzzFizz”而不是“ Buzz”,并定期打印下一个数字。 如果该数量是立即前通过两个4和5的数整除,打印“BIZZ”。 如果该数字紧接在 4和5可除的数字之后,则打印“ Fuzz”。 如果数字可以同时用4和5整除,则打印“ BizzFuzz”。 以任何语言实现所有这些规则的最短代码胜出。

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.