编程拼图和代码高尔夫

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

30
查找方根
编写代码给定一个正数时,为输入,输出的最大的正除数小于或等于的平方根。xxxxxxxxx 换句话说,找到最大的n>0n>0n > 0使得 ∃m≥n:m⋅n=x∃m≥n:m⋅n=x\exists m\geq n:m\cdot n=x (存在mmm大于或等于nnn,使得mmm乘以nnn是xxx) 例如,如果输入是121212的约数是111,222,333,444,666,和121212。 111,222和333的所有乘以较大的数字得到121212,而333是最大的,所以我们返回333。 这是代码高尔夫球,因此答案将以字节计分,而较少的字节被视为更好的计分。 测试用例 (1,1) (2,1) (3,1) (4,2) (5,1) (6,2) (7,1) (8,2) (9,3) (10,2) (11,1) (12,3) (13,1) (14,2) (15,3) (16,4) (17,1) (18,3) (19,1) (20,4) (21,3) (22,2) (23,1) (24,4) (25,5) (26,2) (27,3) (28,4) (29,1) (30,5) (31,1) (32,4) (33,3) (34,2) (35,5) (36,6) (37,1) …

19
使用矩形代码检测矩形文本
给定一串可打印的ASCII文本(包括换行和空格),该字符串包含至少一个既不是换行也不是空格的字符,如果该字符串是矩形,则输出真实值,否则输出假值。此外,您的解决方案的源代码必须为矩形。 如果字符串满足以下所有条件,则为矩形: 第一行和最后一行不包含空格。 每行的第一个和最后一个字符不是空格。 所有行具有相同数量的字符。 例如,以下文本是矩形: abcd e fg hijk 但是,该文本不是矩形(要求3): 1234 567 8900 测试用例 真相: sdghajksfg asdf jkl; qwerty u i op zxcvbn 1234 5 6 7890 abcd e fg hijk 虚假: a b c 123 456 7 9 12 345 qwerty uiop zxcvnm 1234 567 8900 这是代码高尔夫球,因此以字节为单位的最短解决方案为准。

23
坚持使用新文件名
在运行时,不断提示输入一行,直到用户输入不是相对于当前工作目录的现有文件或目录或其他文件系统项的名称。然后返回/打印最后输入的文件名。您可以假定所有用户输入都是有效的文件名。 伪代码1 myform = new form("GUI") myform.mytxt = new editfield("") myform.ok = new button("OK") repeat waitfor(myform.ok,"click") until not filesystem.exists(myform.mytxt.content) return(myform.mytxt.content) 伪代码2 LET TEXT = "." WHILE HASFILE(TEXT) DO TEXT = PROMPT("") ENDWHILE RETURN TEXT 在TIO上时将引起重新提示的用户输入示例: . .. .env.tio / /bin/[ /lost+found 在TIO上返回的用户输入示例: ... env.tio ../../bin/] /lost/found

5
多方面的舞蹈
挑战 给定n整数维数组和第一个n自然数的排列,请相应地排列数组维。 细节 这一挑战是受MATLAB启发的permute。演示 排列以整数列表形式给出,例如,[1,3,2]表示1映射到1,将2映射到3,将3映射到2(此处,i第th个条目是i映射到的值)。但是您可以使用其他方便的格式,例如作为循环或函数。如果更方便,也可以使用基于0的索引。 可以假定该数组是完整的“矩形”数组m1 x m2 x ... x mn(即,您可以假定它不是锯齿状的)。 您可以假设该n值不太大,因为许多语言对嵌套数组中的维数都有限制。 如果您的语言不支持多维数组,则也可以将代表数组的字符串作为输入。 例子 任何n与身份置换维数组[1,2,3,...,n]将保持不变。 [[10,20,30],[40,50,60]]具有排列的数组[2,1]将映射到[[10,40],[20,50],[30,60]]。 [[[1,2],[3,4]],[[5,6],[7,8]]]具有排列的数组[2,3,1]将映射到[[[1,3],[5,7]],[[2,4],[6,8]]]。

13
检查矩阵中是否所有非零元素都已连接
输入: 包含[0-9]范围内的整数的矩阵。 挑战: 确定是否所有非零元素都垂直和/或水平连接。 输出: 甲truthy值,如果所有被连接,并且一个falsy值是否有非零元素/未连接到其它元件/组的基团。 测试用例: 测试用例以行分隔。在这里可以以更方便的格式找到测试用例(对Dada表示感谢)。 以下所有内容均已连接,应返回真实值: 0 --- 0 0 --- 1 1 1 0 0 0 --- 1 0 0 1 1 1 0 0 1 --- 0 0 0 0 0 0 0 0 3 5 1 0 0 1 0 2 0 1 1 …

19
使三角计划有效
三角性是Xcoder 先生开发的一种新的esolang ,其代码结构必须遵循非常特定的模式: 对于第nth行代码,其上必须完全2n-1有程序的字符。这将导致三角形/金字塔形,第一行仅包含一个字符,其余行以2为增量增加。 每行.的左侧和右侧都必须用s 填充,以使字符以其行为中心,并且所有行都应填充为相同的长度。如果l定义为程序中的行数,则程序中的每一行的长度必须为2 * l - 1 例如,左侧的程序有效,而右侧的程序无效: Valid | Invalid | ...A... | ABCDE ..BCD.. | FGH .EFGHI. | IJKLMN JKLMNOP | OPQRS 当布置在有效结构中时,该名称变得显而易见。 任务 您的任务是将单个行字符串作为代表Triangularity代码的输入,并将其输出转换为有效代码,如上所述。 I / O规格: 输入将仅包含范围内的字符 0x20 - 0x7e 输入的长度始终是一个平方数,因此可以很好地填充。 您必须将点用于输出填充,而不要使用其他东西。 您可以通过任何可接受的方法输入和输出。这是一个代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 input ---- output g ---- g PcSa ---- .P. …
19 code-golf  string  code-golf  combinatorics  code-golf  math  number  code-golf  matrix  code-golf  string  decision-problem  code-golf  internet  code-golf  number  number-theory  integer  expression-building  code-challenge  primes  cops-and-robbers  obfuscation  code-challenge  primes  cops-and-robbers  obfuscation  code-golf  string  balanced-string  code-golf  quine  code-generation  code-golf  matrix  code-golf  tips  c#  code-golf  ascii-art  code-golf  ascii-art  source-layout  code-golf  quine  source-layout  popularity-contest  language-design  code-golf  array-manipulation  subsequence  code-golf  matrix  math  code-challenge  game  graph-theory  atomic-code-golf  code-golf  number  integer  polynomials  equation  code-golf  array-manipulation  sorting 

30
日期乘法挑战
(灵感来自上周的FiveRhirtyEight.com.Sandbox post上的Riddler。) 给定2001年至2099年之间的一年,请计算并返回该日历年中的天数,其中mm * dd = yy(yy为2位数的年份)。 例如,2018年有5个: 1月18日(1 * 18 = 18) 2月9日(2 * 9 = 18) 3月6日(3 * 6 = 18) 6月3日(6 * 3 = 18) 9月2日(9 * 2 = 18) 输入可以是2位数或4位数的数字年份。 输出应为整数。可选的尾随空格或回车符都可以。 完整的输入/输出列表: Input = Output 2001 = 1 2021 = 3 2041 = 0 2061 = …
19 code-golf  date 

29
警察与强盗:编辑原始性(警察线)
最初由Magic Octopus Urn沙盒挑战;我在他的允许下通过并发布了它。 这是警察的话题。强盗的线索在这里。 挑战 第一步:编写一段检查素数的代码(函数或完整程序)。 第二步:通过将符号替换为符号来删除代码段█。 第三步:将已编辑的代码发布到警察线程上。 第四步:等待您的代码被破解,然后尝试破解其他人的代码。 例如,Groovy代码{it.isPrime()}可能变为{██.is█████()}。(这很容易破解;我知道,.isPrime()这也不是Groovy方法。) 计分 您必须在提交的程序中包含程序的分数。分数定义为编辑字符与字符的比率。因此,如果您的程序有20个字符,其中有5个被删节,则您的分数将为0.25。上面的Groovy代码的得分为0.5。 规则 您的程序只需要处理正整数。如果数字是素数,则应输出真实值,否则应输出虚假值。请在您的答案中指定输出的内容。 您的代码不得包含任何注释或不必要的空格。 没有哈希或加密混淆。 您的代码可能未编辑超过50%(必须显示至少1/2个字符)。这意味着可能的最高分是0.5。 如果您的答案在一周内仍未破解,则可以将其标记为安全,然后编辑预期的破解。 获奖 获胜者将是发布后两周内得分最低的完整答案。如果是平局,则以得票最多的人为准。该主题始终对更多作品开放,但是两周后选择的获胜者将是永久的。

17
查找多项式的积分根
挑战 面临的挑战是编写一个程序,该程序将任何n次多项式方程式的系数作为输入,并返回方程式成立的x 的积分值。这些系数将按照功率减小或增大的顺序作为输入提供。您可以假定所有系数都是整数。 输入输出 输入将是功率递减顺序的等式系数。方程的度数(即x的最大乘方)始终比输入中元素总数的总和小1。 例如: [1,2,3,4,5] -> represents x^4 + 2x^3 + 3x^2 + 4x + 5 = 0 (degree = 4, as there are 5 elements) [4,0,0,3] -> represents 4x^3 + 3 = 0 (degree = 3, as there are 3+1 = 4 elements) 您的输出应仅是满足给定方程的x 的不同积分值。所有输入系数都是整数,并且输入多项式将不是零多项式。如果给定方程式无解,则输出不确定。 如果方程式具有重复的根,则仅显示该特定根一次。您可以按任何顺序输出值。另外,假设输入将至少包含2个数字。 例子 …

21
重复字节计数器
您的任务是编写一个字节数为L的非空程序/函数,该程序/函数重复M次后,将检查给定的正整数N是否等于L×M。 理论上,您应该支持任意数量的重复(M的任意正整数值),但是如果由于语言限制,它不能超过某个阈值就可以了。严格禁止阅读程序的源代码或访问有关它的信息。 为了提供输出,您应该为一个状态(真或假)选择一个一致的值,并为另一种状态使用其他任何(不一定一致)的可能输出(Discussion)。 您的答案将由您初始程序的长度L(以字节为单位)进行评分,字节越少越好。 例 假设您的(初始)程序为ABCDE。然后: ABCDE(1次重复)应检查输入是否等于5。 ABCDEABCDE(2次重复)应检查输入是否等于10。 ABCDEABCDEABCDE(3次重复)应检查输入是否等于15。等等... 该示例代码的分数为5,因为初始源的长度为5个字节。

14
它是洗牌吗?
昨天我问这个约洗牌洗牌的问题。似乎昨天的问题有点太难了,所以这个问题是相关但容易得多的任务。 今天,您被要求确定排列是否实际上是浅滩混洗。我们对浅滩混洗的定义是根据我们上一个问题改编的: 洗牌的第一部分是鸿沟。在分隔分区中,一副纸牌一分为二。这两个小节必须是连续的,互斥的和详尽的。在现实世界中,要使您的分区尽可能地接近,但是在此挑战中,这不是要考虑的问题,所有退化的分区(一个分区为空)都是同等考虑的。 分区后,将卡拼接在一起,以使卡在它们所属的分区内保持其相对顺序。例如,如果卡片A在卡组中的卡片B之前,并且卡片A和B在同一分区中,则在最终结果中,卡片A必须在卡片B之前,即使它们之间的卡片数量增加了。如果A和B在不同的分区中,则它们在最终结果中可以采用任何顺序,而不管它们的开始顺序如何。 然后,可以将每个浅滩混洗视为原始纸牌的排列。例如排列 1,2,3 -> 1,3,2 是浅滩洗牌。如果你像这样分割甲板 1, 2 | 3 我们看到其中的每张卡1,3,2与其分区中的每张其他卡具有相同的相对顺序。 2仍在1。 另一方面,以下排列不是浅滩混洗。 1,2,3 -> 3,2,1 我们可以看到这一点,因为对于所有两个(非平凡的)分区 1, 2 | 3 1 | 2, 3 有一对卡不保持其相对顺序。在第一个分区1,并2改变他们的排序,而在第二个分区2,并3改变它们的顺序。 任务 通过任何合理的方法给定排列,确定它是否代表有效的浅滩混洗。您应该输出两个不同的常数值,一个用于“是,这是浅滩混洗”,另一个用于“不,这不是浅滩混洗”。 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 测试用例 1,3,2 -> True 3,2,1 -> False 3,1,2,4 -> True 2,3,4,1 -> True 4,3,2,1 -> False 1,2,3,4,5 -> …

1
泡沫浴字母
如果您的房子里有个小孩,您可能会碰到泡沫浴字母。可以将它们弄湿并粘在平整的表面上,例如瓷砖和浴室的侧面,以发出文字和信息。 词和信息的范围有一定的限制,如果你只有一组不过,因为你只能得到36个字符:大写字母AZ和数字0-9: ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789。但是,您可能会狡猾并滥用某些字母和数字来形成其他字母的额外副本: 3: E 1: I 7: L (when rotated) M: W (when rotated) 0: O 2: S (when flipped) 5: S W: M (when rotated) 2: Z 5: Z (when flipped) O: 0 6: 9 (when rotated) L: 7 (when rotated) 9: 6 (when rotated) 请注意,它们并非都是双向的,因为阅读数字作为单词的一部分比阅读字母作为数字的一部分更容易。 每组还具有多种颜色,其中每个字母均按顺序进行着色。例如,如果您的套装有红色,黄色和蓝色3种颜色,则您的套装将像: 红色: …

7
嗯,是hai句吗?
因此,您想创建一个句,但是不确定它是否遵循句的音节规则。 我不会像平常那样烦恼编写适当的Blub,因此您必须这样做。让我们陷入困境。 在野外寻找a句 为了这个挑战,我们将检查给定的诗是否满足以下条件: 三行。 第一行有5个音节。 第二行有7个音节。 第三行有5个音节。 每行由一个或多个单词组成,并用空格隔开。这些单词不一定是有效的英语单词。 每个单词被分成多个音节,然后对这些音节进行计数以获得行的总音节数。 一个音节有2到3个部分:开头,结尾,可能还有中间。每个部分或者是一个组的consonsants(也称为一个辅音簇,如s,sk或spl),或一组元音(例如i,ea或oui)。 如果开头是一组辅音,则中间将是一组元音,而结尾将是一组辅音。如果开始是一组元音,则结束将是一组辅音,而没有中间。 例如,该单词example由三个音节ex,am和组成ple。ple没有结尾,因为它被单词的结尾部分缩短了。 作为另一个示例,该单词syllable还具有三个音节syll,abl和e,它们也没有结尾。 对于最后一个例子,该单词word有一个音节,word以一组辅音结尾。 挑战 给定一个字符串,一个字符串列表,一个列表列表或任何其他代表至少一行诗的合理格式,请确定其是否满足上述概述的hai句的标准,并返回结果。 您可以采用以下任何一种格式返回结果: 如果这首诗是句而虚假的话,则为真值。 如果这首诗是句,则为假值,否则为真值。 如果诗歌是po句,则来自提交中指定的有限范围内的值,并且提交中也指定来自相互排斥的有限范围内的值。 您可能还假定这首诗不包含任何非字母字符,但是您可能不会假定这首诗完全是大写或小写。 为了这个挑战的目的,Y是一个元音。 测试用例 特鲁西 This is a haiku Yes it truly is one See what I did man I am so tired of writing this already when can I …

23
数组的一次交换
灵感来自Stack Overflow上的一个问题。 挑战 给定一个整数n>1,输出可以通过恰好交换阵列中的两个条目而获得的所有阵列[1, 2, ..., n]。 阵列可以以任何顺序生产。 您可以始终使用[0, 1, ..., n-1](从0开始)代替[1, 2, ..., n](从1开始)。 附加规则 输入和输出像往常一样灵活。 允许使用任何编程语言编写程序或功能。禁止出现标准漏洞。 以字节为单位的最短代码获胜。 测试用例 输入2给出输出(假设从1开始) 2 1 输入3给出输出(请注意,三个数组可以按任意顺序排列) 1 3 2 2 1 3 3 2 1 输入4给出输出 1 2 4 3 1 3 2 4 1 4 3 2 2 1 3 4 …

25
重叠切片的按列求和
任务 给定的整数的列表大号和另一个整数小号中,目标是计算所有的列方向总和小号 -length(可能重叠的)的切片大号,而关于相对于它们的位置大号(见下文)。 定义 该小号 -length (重叠)切片列表的大号都的连续子序列(不包裹)大号是长度的小号。 为了使切片s相对于L 的位置相关,您可以想象构建一个“阶梯”,其中每个切片s i与i的位置都从开始偏移。 眼镜 s是一个大于1的整数,并且严格小于L的长度。 L将始终包含至少3个元素。 您可以使用任何编程语言进行竞争,并且可以通过任何标准方法接受输入并提供输出,同时请注意,默认情况下会禁止这些漏洞。这是代码高尔夫球,因此每种语言的最短提交(以字节为单位)将获胜。 示例和测试用例 这是一个工作示例: [1, 2, 3, 4, 5, 6, 7, 8, 9], 3 [1, 2, 3] [2, 3, 4] [3, 4, 5] [4, 5, 6] [5, 6, 7] [6, 7, 8] [7, 8, 9] -------------------------------- (+) | …

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.