Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

30
打印从-100到100的所有包含给定数字的数字
如果提供的数字介于0到9(含)之间,则您的函数/子例程应打印包含给定数字的-100到100(含)之间的所有数字。 例如: Input: 9 Output: -99 -98 -97 -96 -95 -94 -93 -92 -91 -90 -89 -79 -69 -59 -49 -39 -29 -19 -9 9 19 29 39 49 59 69 79 89 90 91 92 93 94 95 96 97 98 99 规则: 您不能使用字符串(以您选择的语言表示的任何方式)或char数组。(除了将答案打印到控制台上。) 您不能使用数组。 得分: 分数=子例程/函数的长度(不计空格) 得分最低的答案将获胜。 空格将不计算在内。请正确格式化您的代码! …
38 code-golf 

3
解决魔方
编写最短的程序,以在合理的时间范围内移动并解决Rubik的多维数据集(3 * 3 * 3)(例如,在您的计算机上最多5秒,而最多移动1000秒)。 输入的格式为: UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (此特定输入表示已解决的多维数据集)。 前12个2个字符的字符串是UF,UR,... BL位置中的边(U =上,F =前,R =右,B =后,L =左,D =下),然后是下8个3个字符的字符串是UFR,URB,... DBR位置中的角。 输出应以这种格式给出一系列移动: D+ L2 U+ F+ D+ L+ D+ F+ U- F+ 其中D1或D +代表将D(下)面顺时针旋转90度,L2代表将L面旋转180度,U3或U-代表将U面逆时针旋转90度。 字母不区分大小写,空格是可选的。 …

9
文本压缩和解压缩-“再也没有”。
随着最近有关在代码高尔夫中使用压缩工具的讨论,我认为编写自己的文本压缩器和解压缩器将是一个不错的挑战。 挑战: 编写两个程序:一个程序将ASCII文本压缩为一个字节序列,另一个程序将其解压缩。程序不必使用相同的语言。 第一个程序应读取一段ASCII文本(从文件或标准输入,或使用该语言最自然的任何机制),并输出其压缩版本。(压缩的输出可以包含任意字节,也可以是任意字节;它不必可读。)第二个程序应读取第一个程序的输出并重新创建原始输入文本。 得分: 解决方案的分数将是以下三个计数的总和: 压缩程序的长度(以字符为单位)。 的输出的长度给出下面的测试输入,以字节为单位的压缩机。 解压缩程序的长度(如果与压缩程序不同),以字符为单位。 您应该在回答中记下所有三个计数及其总和。由于这是标准高尔夫,得分越低越好。 规则和限制: 您可能不会使用任何预先存在的压缩或解压缩工具或库,即使它们与您选择的语言捆绑在一起也是如此。如果不确定是否允许使用给定的工具或功能,请询问。 您的压缩程序必须能够处理由任何可打印ASCII文本组成的输入,包括制表符(ASCII 9)和换行符(ASCII 10)。您可能但不是必须处理任意Unicode和/或二进制输入。 您的解压缩程序必须产生与作为输入的压缩器完全相同的输出。特别是,如果输入中没有尾随换行符,请注意不要输出。(下面的测试输入确实包含尾随换行符,因此您需要对此进行单独测试。GolfScript提示:'':n。) 您的压缩器和解压缩器可能是同一程序(选择了适当的模式,例如使用命令行开关)。在这种情况下,其长度仅计算一次。 程序不应过慢或占用大量内存。如果压缩或解压缩测试输入在不是很新的台式机(2.2GHz AMD Athlon64 X2)上花费了超过一分钟,或者消耗了超过1 GB的RAM,那么我将裁定该解决方案无效。这些限制是故意放宽的-请尽量不要推动它们。(请参阅下面的修订:在这些限制之内,您必须至少能够处理100 kB的输入。) 即使仅测试输入对评分很重要,您也至少应努力压缩任意输入文本。仅针对测试输入即可达到不错的压缩比的解决方案在技​​术上是有效的,但不会对我不利。 您的压缩程序和解压缩程序应该是独立的。特别是,如果它们依赖于能够读取不属于所选语言的标准运行时环境的一部分的文件或网络资源,则该文件或资源的长度应计为程序长度的一部分。(这是不允许“压缩器”将输入与网络上的文件进行比较,如果匹配则输出零字节。对不起,但这不再是新技巧了。) 修订和澄清: 您的压缩器必须能够在合理的时间和内存使用量(最多一分钟,一GB内存)内处理至少100 kB的典型英文文本。您的解压缩器必须能够在相同限制内解压缩结果输出。当然,能够处理比该时间更长的文件是完全可以的,值得称赞。可以将长输入文件分成多个块并分别进行压缩,也可以使用其他方法来权衡压缩效率,以提高长输入的速度。 您的压缩器可能需要使用首选平台的本机换行符表示形式(LF,CR + LF,CR等)来提供其输入,只要您的解压缩器在其输出中使用相同的换行符表示形式即可。当然,只要您的解压缩器输出与原始输入中相同类型的换行符,压缩器也可以接受任何类型的换行符(甚至不考虑平台,甚至仅接受Unix换行符)也是可以的。 测试输入: 为了判断答案的压缩效率,将使用以下测试输入(Edgar Allan Poe撰写的The Raven,由Gutenberg项目提供): Once upon a midnight dreary, while I pondered, weak and weary, Over many a …

13
打高尔夫球
使用2种您所选择的语言,写的最小的“相互奎因 ”就可以了。 即,用语言A编写程序P,以语言B输出程序Q的源代码,以使程序Q的输出与P的源代码相同。 空文件不计,“读取源文件并打印”样式的程序也不计。 编辑: P = Q的答案不再计数。

30
计算所有数字的总和
挑战在于编写一个程序或脚本,该程序将对从1到给定数字(包括给定数字)的整数内的所有数字的总和进行计数。 输入,一个正整数。输出该数字和所有较小数字的数字总和。 例子: Input: 5 Integer Sequence: 1, 2, 3, 4, 5 Sum of Digits: 1 + 2 + 3 +4 + 5 = 15 Input: 12 Integer Sequence: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 Sum of Digits: 1 + 2 + 3 + …
38 code-golf  math 

30
在大海捞针中找针
给定一个矩形干草堆,该干草堆的大小至少为2x2,由所有相同的可打印ASCII字符组成,请输出针的位置(从左上数起),该针为不同的字符。 例如,如果输入以下干草堆: ##### ###N# ##### ##### 输出应该是3,1零索引时(我将在此挑战中使用的东西)或4,2单索引时。 干草堆可以由任何可打印的ASCII字符组成: ^^^ ^^^ ^N^ ^^^ ^^^ ^^^ 输出: 1,2 针将是任何其他可打印的ASCII字符: jjjjjj j@jjjj jjjjjj 输出 1,1 也可以在拐角处插入针头: Z8 88 输出 0,0 88 8Z 输出 1,1 或将针头放在边缘: >>>>>>>>>> >>>>>>>>>: >>>>>>>>>> 输出 9,1 规则和说明 输入和输出可以通过任何方便的方法给出。这意味着您可以将输入作为字符列表,单个字符串等。 您可以将结果打印到STDOUT或将其作为函数结果返回。请在您的提交中说明输出的顺序(即在挑战中使用的是水平然后是垂直,反之亦然)。 完整的程序或功能都是可以接受的。 您不会选择要使用的字符。那就是挑战。 干草堆的大小至少要保证为2x2,因此毫无疑问,哪个是针,哪个是干草。 输入中只有一根针,而且只有一个字符。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常见的高​​尔夫规则都适用,并且最短的代码(以字节为单位)获胜。
38 code-golf  string 

30
打印不可见的文字
给定一个字符串作为输入,输出等于该字符串长度的多个空格字符(0x0A和0x20)。 例如,给定字符串,Hello, World!您的代码将只需要输出13个空格字符,而无需输出其他任何字符。这些可以是空格和换行符的任意组合。 您的代码不应输出任何其他尾随换行符或空格。 测试用例: Input -> Amount of whitespace to output "Hello, World!" -> 13 "Hi" -> 2 " Don't Forget about Existing Whitespace! " -> 45 "" -> 0 " " -> 13 " " -> 1 得分: 这是代码高尔夫球,因此最少的字节数获胜!
38 code-golf  string 

7
修正我的IPv4地址的缺失期
有时,当我输入一个IPv4地址时,我会正确地输入所有数字,但忘记输入一个或多个句点。我想要一个程序(或函数),该程序可以使用损坏的IPv4地址并输出缺失期的所有可能有效位置。 输入值 输入将始终是一个字符串,该字符串是有效IPv4地址的转换(请参见下面的详细信息)。它总是将仅通过消除一个或多个时期字符来进行转换。 您的提交不需要处理此格式以外的输入。 输出量 代表所有有效IPv4地址的字符串的集合或列表(没有特定的顺序或格式),可以通过在输入中插入句点字符来从输入中创建所有有效的IPv4地址。 输出可以是语言本机列表或其他有序或无序集合类型。 替代地,它可以是以某种明确方式界定的IPv4地址的字符串序列。 如果您使用单字符定界符来分隔字符串,则不允许使用句点和数字作为该单字符定界符。我认识到,与数字不同,句点作为分隔符不是模棱两可的(因为每个第四个句点都必须是分隔符),但是出于可读性考虑,我不允许这样做。 IPv4地址格式 尽管IPv4地址实际上只是四个二进制八位字节的序列,但此挑战使用了受限的点分十进制格式。 IPv4地址是由三个句点分隔的四个十进制值。 每四个值的范围是0到255,包容性。 任何数字值都不允许前导零。(独立单字符0被允许;开始与零的任何其它数量不是:052,00等) 测试用例 输入在第一行上,输出在第二行上(此处,结构是用逗号分隔的带引号的字符串列表,用逗号分隔,并用包围[ ],但是您可以使用上面指定的任何合理的格式或结构)。一些示例在第三行上有注释,以突出显示特定规则的应用。 192.168.1234 ["192.168.1.234", "192.168.12.34", "192.168.123.4"] 192.1681234 ["192.16.81.234", "192.168.1.234", "192.168.12.34", "192.168.123.4"] (Note: 192.1681.2.34 (etc.) is illegal because 1681 is greater than 255) 1921681.234 ["19.216.81.234", "192.16.81.234", "192.168.1.234"] 1921681234 ["19.216.81.234", "192.16.81.234", "192.168.1.234", "192.168.12.34", "192.168.123.4"] 192.168.1204 ["192.168.1.204", "192.168.120.4"] …

30
列出安诺游戏的所有可能标题
在Anno视频游戏系列中,有6款游戏宣布将于2019年初发布第7款游戏。它们的游戏总以特定的模式展示一年: Anno 1602, Anno 1503, Anno 1701, Anno 1404, Anno 2070, Anno 2205, Anno 1800 数字总和始终为9。 年是四位数长。 它们包含至少一个零。 在这些限制中,存在109种可能的标题: [1008,1017,1026,1035,1044,1053,1062,1071,1080,1107,1170,1206,1260,1305,1350,1404,1440,1503,1530,1602,1620,1701,1710,1800,2007,2016,2025,2034,2043,2052,2061,2070,2106,2160,2205,2250,2304,2340,2403,2430,2502,2520,2601,2610,2700,3006,3015,3024,3033,3042,3051,3060,3105,3150,3204,3240,3303,3330,3402,3420,3501,3510,3600,4005,4014,4023,4032,4041,4050,4104,4140,4203,4230,4302,4320,4401,4410,4500,5004,5013,5022,5031,5040,5103,5130,5202,5220,5301,5310,5400,6003,6012,6021,6030,6102,6120,6201,6210,6300,7002,7011,7020,7101,7110,7200,8001,8010,8100,9000] 您的目标是以任何合理的形式以最少的字节数列出它们。

30
26位最富有的亿万富翁拥有的资产与最贫穷的38亿人口一样多吗?
介绍: 几天前,当我在HNQ遇到这篇文章时,我读了同样的标题。在这个问题上,正在讨论总统候选人伯尼·桑德斯的主张,该主张的主张如下: 如今,世界上最富有的26位亿万富翁(26岁)拥有的财富相当于地球上最贫穷的38亿人口(全球人口的一半)。 链接到视频 是否正确。请转到问题本身以获取答案和讨论。 至于基于此主张的实际挑战: 挑战: 两个输入:一个降序排序的数字列表和一个数字(其中是)。输出:的最长可能后缀子列表,其总和为列表前值的和。大号LLñnnñnn1 ≤ Ñ < 的长度 大号1≤n<length of L1\leq n\lt \text{length of }L大号≤ Ñ 大号 大号LL≤≤\leqñnn大号LL 例: 输入: = 和。 输出:大号LL[500,200,150,150,125,100,75,75,55,50,40,30,30,20,10,10,8,5,5,5,3,2,2,1,0,-2,-3]n = 2n=2n=2[125,100,75,75,55,50,40,30,30,20,10,10,8,5,5,5,3,2,2,1,0,-2,-3] 为什么? 列表()的前值总和为。如果我们将剩余数字的所有后缀以及它们的和取:n = 2n=2n=2大号LL[500,200]700 Suffix: Sum: [-3] -3 [-2,-3] -5 [0,-2,-3] -5 [1,0,-2,-3] -4 [2,1,0,-2,-3] -2 [2,2,1,0,-2,-3] 0 [3,2,2,1,0,-2,-3] 3 [5,3,2,2,1,0,-2,-3] …

1
我的意大利面酱里有什么?
背景 在法国以及可能在欧盟其他地区,任何可供出售的食品都必须在其包装上列出其成分,并按重量百分比降序排列。但是,除非成分由文字或封面上的图像突出显示,否则不必指示确切的百分比。 例如,我的罗勒番茄酱在包装上仅显示一些大红色西红柿和美丽的罗勒叶,具有以下指示: 成分:西红柿80%,洋葱片,罗勒1.4%,海盐,蒜泥,生蔗糖,特级初榨橄榄油,黑胡椒。 听起来很美味,但是…… 我到底要吃多少洋葱? 挑战 给定重量百分比降序列表(最终不完整),输出可能在配方中找到的最小和最大重量百分比的完整列表。 您可以编写函数或完整程序。 该输入可以是任何合理的形式(数字或字符串列表的阵列,例如)。分数值应至少支持小数点后一位。如果丢失一个重量百分比可以在任何一致和明确的方式来表示(0,'?'或者null,例如)。你可以假定输入总是会关联到一个有效的配方([70]和[∅, ∅, 50]无效,例如)。 所述输出可以是任何合理的形式(一个阵列两者的最小和最大重量百分比,或双峰的单个列表的,例如)。最小百分比和最大百分比可以任意顺序([min, max]并且[max, min]都可以接受)。确切的重量百分比无需与其他百分比进行不同的处理,可以用相等的最小和最大值表示。 适用于代码高尔夫球的标准规则:在您键入代码时,我的面食正在冷却,因此最短的提交者获胜。 例子 由于此问题比乍看之下要困难得多,因此,这是一些情况的逐步解决方案。 [40, ∅, ∅] 咱们分别调用x和y两名失踪的百分比。 因为它紧随第一成分之后为40%,x所以本身不能高于40%。 [40, [?, 40], [?, ?]] 这两个缺失百分比之和始终为60%。所以 : 如果x取其最大值,则y取其最小值,因此为60%-40%= 20%。 [40, [?, 40], [20, ?]] 如果x取其最小值,则y取其最大值。但x不能低于y,因此在这种情况下x= y= 60%/ 2 = 30%。 [40, [30, 40], [20, 30]] [70, ∅, …
37 code-golf  math 

30
柯尔莫哥罗夫变速杆
输出或显示以下三行文本,与下面显示的完全相同。尾随换行符被接受。 bC#eF&hI)kL,nO/qR2tU5wX8z A!cD$fG'iJ*lM-oP0rS3uV6xY9 aB"dE%gH(jK+mN.pQ1sT4vW7yZ 该文本块与下面的文本块相同,但第n列向下旋转n次: !"#$%&'()*+,-./0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 请记住,这是一个kolmogorov复杂性挑战,因此输出格式并不灵活。

18
启动代码
输入值 对此挑战没有投入 挑战 编写一个输出以下代码的代码: 前10个质数,它们的数字之和等于代码的字节数 例子 假设您的代码是Co&%423@k"oo",这是13 bytes 您的代码必须输出的[67, 139, 157, 193, 229, 283, 337, 373, 409, 463] 那些是前10个质数的总和。。。 如果您的代码是8 bytes,则必须输出[17, 53, 71, 107, 233, 251, 431, 503, 521, 701] 规则 您只能使用前10个8质数 ,这意味着您所有的数字都必须小于2038074743 = 10 8个质数 如果在此范围内找不到10个适合字节的质数,则必须调整代码(甚至可能需要添加一些字节!)才能找到“ 有效字节数 ” 只需以您喜欢的任何方式输出10个素数 这是代码高尔夫球,所以最短的代码以字节为单位!

5
我会及时解决吗?
灵感来自此。 背景 在邪恶的农场主已决定烧毁你的麦田,以哄抬价格。为了确保完全销毁,他还把您的田地浸泡在汽油中。更不幸的是,当它着火时,您正巧在田野上行走,您必须迅速走出去才能生存。 挑战 给定一个包含小麦,火和您所在位置的田地,确定是否可以及时将其赶出田野。 一块田地由小麦(这里用表示.)和火(F)组成。在此,您的位置标有O。例如: ...F...F F....... ........ .F...... ....O... ...F.... ........ .F....F. 您每秒移动到任何相邻的单元(但不是对角线),并且每场火势都会蔓延到每个相邻的单元。如果您无法移至不会着火的牢房,您就会丧命。如果您不在野外就可以生存。让我们看看在此示例中发生了什么: ...F...F F....... ........ .F...... ....O... ...F.... ........ .F....F. ..FFF.FF FF.F...F FF...... FFF..... .F.F.O.. ..FFF... .F.F..F. FFF..FFF FFFFFFFF FFFFF.FF FFFF...F FFFF.... FF.FF.O. .FFFFFF. FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFF.FF FFFFF.FF FFFFFFFO FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF …

28
我什么时候吃三明治?
给定以下输入之一: 甜洋葱鸡肉照烧 烤箱烤鸡 火鸡胸脯 意大利BMT 金枪鱼 黑森林火腿 肉丸玛丽娜从1-7(或0-6)中输出一个数字,代表您获得交易的星期几,最低的是星期一。输入可以全部为小写或大写(例如“ italian bmt”)。禁止上网。

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.