编程拼图和代码高尔夫

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

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"] …

27
警察:隐藏的OEIS子字符串
这是警察和强盗的挑战。这是警察的话题。在强盗的线程是在这里。 作为警察,您必须从OEIS中选择任何序列,并编写一个程序p,该程序将打印该序列中的第一个整数。您还必须找到一些字符串s。如果将s插入p,则此程序必须打印序列中的第二个整数。如果将s + s插入p的相同位置,此程序必须打印序列中的第三个整数。s + s + s在相同位置将打印第四个,依此类推。这是一个例子: Python 3,序列A000027 print(1) 隐藏的字符串是两个字节。 字符串为+1,因为程序print(1+1)将打印A000027中的第二个整数,程序print(1+1+1)将打印第三个整数,依此类推。 警察必须揭示序列,原始程序p和隐藏字符串s的长度。强盗通过找到任何字符串裂纹提交到该长度并插入它来创建序列的位置。该字符串不需要匹配预期的解决方案即可成为有效裂纹,插入字符串的位置也不需要。 规则 您的解决方案必须能按顺序使用任意数量的数字,或者至少要解决直到失败的合理限制为止,这取决于内存限制,整数/堆栈溢出等。 胜出的强盗是破解最多提交内容的用户,并且决胜局是首先达到该破解数量的用户。 获胜的警察是最短的s未被破解的警察。决胜局是最短的p。如果没有完整的意见书,那么拥有解决方案的警察将获得最长的胜利。 为了声明安全,您的解决方案必须保持完整状态1周,然后显示隐藏的字符串(及其插入位置)。 s可能不是嵌套的,它必须首尾相连。例如,如果s为10,则每次迭代都会进行,10, 1010, 101010, 10101010...而不是10, 1100, 111000, 11110000... 从序列的第二项而不是第一项开始是可以接受的。 如果序列中的术语数量有限,则超过最后一个术语将导致未定义的行为。 禁止使用所有加密解决方案(例如,检查子字符串的哈希)。 如果s包含任何非ASCII字符,则还必须指定使用的编码。

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 

17
重叠多面体
与许多C&R挑战不同,这不需要单独的强盗岗位。强盗的目标是破解先前的答案,然后发布新的答案作为警察。 作为回答者,您将编写一系列看起来像这样的多语种(每列都是一种语言,并且每个条目都是该语言的答案的输出): Language: 1 2 3 4 5 6 7 8 ... Answer 1: 0 1 2 Answer 2: 1 2 3 Answer 3: 2 3 4 Answer 4: 3 4 5 Answer 5: 4 5 6 Answer 6: 5 6 7 ... (空格表示在这种情况下不需要任何行为)。 每个答案应在3种语言的工作和打印3个不同的连续的数字,它们分别一个超过由先前答案打印的数字(第一个答案打印0,1和2)。每个答案都使用先前提交的两种语言和第三种新语言。答题者应尝试混淆这种第三语言是什么。 要发布新答案,您应该: 通过找到第三语言来破解最新的答案。 最好为您的裂缝添加说明,并将答案通知发布者。提交文件被破解后,最好也添加一个解释。 编写由该答案的第二和第三种语言以及您选择的另一种语言组成的多语种。显示您的前两种语言,但不要显示您的新语言。找到该语言(或它使用的任何其他语言)将是下一个发布者的目标,因此您应该尝试对其进行混淆。 技术指标 …

30
难道你杀死了贾伯沃克吗?
您的任务是输出确切的字符串 The Jabberwocky 无需输入。输入和输出的常规规则适用,因此允许使用功能和程序。 当然有一个陷阱,没有陷阱就不会很有趣。您的程序在去除非字母字符时,必须开始写诗《 Jabberwocky》(不区分大小写)。要开始诗歌,它必须是诗歌的连续子串,从开头开始。空字符串很好(尽管您可能得分不高)。 这是供参考的文本: twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewarethejabberwockmysonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffishthoughthestoodthejabberwockwitheyesofflamecamewhifflingthroughthetulgeywoodandburbledasitcameonetwoonetwoandthroughandthroughthevorpalbladewentsnickersnackheleftitdeadandwithitsheadhewentgalumphingbackandhastthouslainthejabberwockcometomyarmsmybeamishboyofrabjousdaycalloohcallayhechortledinhisjoytwasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabe 这是一个可以用来测试此属性的程序。 如果用尽了诗歌,则不得使用任何其他字母字符。 字母字符的字符a- z和A- Z这里是完整列表: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 计分 您的程序将以使用的非字母字节数来得分,而少则更好。 这是一个为答案评分的Haskell程序。(假设输入有效) 范例程序 以下程序将有效: twas&*brilliga77812nd Thesli thyt Oves didgy reand Gim bleinth ewab eal lmims ywe"""""""" ret h eb or o g o ve sa n dthemomerAthsoutgrabebewaretheJABBERWOCKmysonthe)(*)()((*98980908(()*(jawsthatbit 简化为字母字符时,它是: twasbrilligandTheslithytOvesdidgyreandGimbleinthewabeallmimsyweretheb orogovesandthemomerAthsoutgrabebewaretheJABBERWOCKmysonthejawsthatbit 匹配诗的第一位(不区分大小写)。 该程序将获得59分,因为它包含以下非字母字符: &*77812 """""""" )(*)()((*98980908(()*(

28
矩阵是中心对称的吗?代码也是吗?
定义 甲中心对称矩阵是正方形矩阵是对称的围绕其中心。更严格地说,如果对于任何满足以下关系,则大小为的矩阵是中心对称的: AAAn×nn×nn \times ni,j∈([1,n]∩Z)i,j∈([1,n]∩Z)i,\: j \in ([1, n] \cap \mathbb{Z})Ai,j=An+1−i,n+1−jAi,j=An+1−i,n+1−jA_{i,\:j}=A_{n+1-i,\:n+1-j} 此类矩阵的示例 这是这样的矩阵的对称性的图示(从上述Wikipedia文章中借来): 偶数边长( ×)的中心对称矩阵:4×44×44\times 4 ⎛⎝⎜⎜⎜1584267337624851⎞⎠⎟⎟⎟(1234567887654321)\left(\begin{matrix} 1 & 2 & 3 & 4 \\ 5 & 6 & 7 & 8 \\ 8 & 7 & 6 & 5 \\ 4 & 3 & 2 & 1\end{matrix}\right) 还有一个奇数边长():3×33×33\times 3 …

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复杂性挑战,因此输出格式并不灵活。

30
等等,这是什么语言?
最近,我很高兴编写了一个Haskell程序,该程序可以检测到NegativeLiterals扩展是否被使用。我想出了以下几点: data B=B{u::Integer} instance Num B where{fromInteger=B;negate _=B 1} main=print$1==u(-1) 在线尝试! 它将True正常打印,False否则打印。 现在,我的工作非常有趣,我将挑战扩展到了所有人。您还可以破解其他哪些Haskell语言扩展? 规则 要破解特定的语言扩展,您必须编写一个Haskell程序,该程序可以同时编译有无语言扩展(警告很好),并在使用该语言扩展运行并关闭时输出两个不同的非错误值(通过将No前缀添加到语言扩展)。这样,上面的代码可以简化为: data B=B{u::Integer} instance Num B where{fromInteger=B;negate _=B 1} main=print$u(-1) 打印1和-1。 您用来破解扩展程序的任何方法都必须特定于该扩展程序。如果不允许的话,可能有一些方法可以任意检测启用了哪些编译器标志或LanguageExtensions。您可以启用其他语言扩展或更改编译器优化-O,而无需花费任何字节数。 语言扩展 你无法破解任何语言扩展,没有一个No对应物(例如Haskell98,Haskell2010,Unsafe,Trustworthy,Safe),因为这些不属于上文所列的条款。所有其他语言扩展都是公平的游戏。 计分 您是第一个破解的人,每种语言扩展都会获得一分,而您破解最短(以字节为单位)的每种语言扩展将获得一分。对于第二点,将打破联系以支持较早的提交。分数越高越好 您将无法为首次提交打分,NegativeLiterals或者QuasiQuotes因为我已经破解了它们并将其包含在帖子正文中。但是,您将能够在每一个裂缝中得分最短的地方得分。这是我的裂缝QuasiQuotes import Text.Heredoc main=print[here|here<-""] -- |] 在线尝试!

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.