Questions tagged «code-golf»

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

25
特克斯报价(UVa 272)
给定一个字符串,将所有左双引号替换为两个反引号,并将所有右双引号替换为两个单引号。 左引号表示以引号开头的引号。右引号表示以引号结尾的引号。报价不能嵌套。您可能会假设字符串中双引号的数量为偶数。 例子 输入: "To be or not to be," quoth the Bard, "that is the question". The programming contestant replied: "I must disagree. To `C' or not to `C', that is The Question!" 输出: ``To be or not to be,'' quoth the Bard, ``that is the question''. The programming …
17 code-golf 

6
做一些Prime Square!
什么是总理广场? 素数平方是所有四个边都是不同素数的平方。 但是哪个呢? 我们如何构造它们? 这是4x4 Prime Square的示例 1009 0 0 3 0 1021 首先,我们从左上角开始。我们正在顺时针工作。 我们选择4数字为1009的最小素数。 然后,我们需要具有4数字的最小素数,该素数以开头9。这是9001 第三个(4位数字)素数必须1以最后一位数字(因为9001以结尾1) ,并且必须是具有此属性的最小的4位素数,此属性以前没有用作edge。 这个素数是1021 第四个质数必须具备4数字,开始了1(因为1009点开始有1),并结束了1(因为1021点开始有1) 与此属性的最小的4位质数尚未为边缘之前使用的是1031 你的任务 您将获得一个整数n,3 to 100 该整数将是该n x n正方形的尺寸。 然后,您必须按照以下测试用例的形式准确输出该正方形 测试用例 n=3 Output 101 3 0 113 n=5 Output 10007 0 0 0 0 9 0 10061 n=7 Output 1000003 0 …

17
那不是我的X,它的Y也太Z
这项挑战的灵感来自Fiona Watt和Rachel Wells的一系列幼儿读物,最近我和女儿一起很喜欢。 在每本书中,鼠标(插图,但不是本书的一部分)都抱怨说,连续出现的5种相同类型的事物不是其事物。然后,它通过声明事物的某些组成部分不具有其期望的属性来对此进行支持。 在第六次询问时,鼠标找到了它的东西并感到高兴,因为它具有预期的属性。 这是一个典型示例的文本: That's not my bunny, its tail is too fluffy. That's not my bunny, its paws are too rough. That's not my bunny, its tail is too woolly. That's not my bunny, its eyes are too shiny. That's not my bunny, its nose is too …
17 code-golf 

30
76序列中的首次出现
该七六人序列是可以提供给序列的名字,A087409。我在Numberphile视频中了解了此序列,可以按以下方式构造它: 首先,采用以10为底的6的倍数: 6, 12, 18, 24, 30, 36, ... 接下来,将数字连接成数字流: 61218243036... 最后,将流重新分组为对,并将每个解释为整数: 61, 21, 82, 43, 3, ... 当我们将数字成对分组时,序列中的最大数字将为99,事实证明,序列中表示了所有小于100的非负整数。这项挑战是要找到Sixers序列中数字的第一个实例的索引。 输入项 范围内的整数[0-99]。您无需考虑超出此范围的数字,并且如果给出这样的输入,您的解决方案也可以具有任何行为。 输出量 在Sixers序列中首次出现输入数字的索引。这可以是0或1的索引;请说出您正在使用的答案。 规则 引言中介绍的生成序列的过程仅用于说明目的,您可以使用任何喜欢的方法,只要结果相同即可。 您可以提交完整的程序或功能。 允许使用任何明智的输入和输出方法。 不允许出现标准漏洞。 建议使用链接来在线测试您的代码! 这是代码高尔夫球,因此每种语言的最短答案都可以胜出! 测试用例 这是所有输入和输出的列表,格式为input, 0-indexed output, 1-indexed output。 0 241 242 1 21 22 2 16 17 3 4 5 4 96 …

23
枚举排列
给定一些正整数生成对象的所有排列。nñnnñn 细节 排列是没有固定点的排列。(这意味着在每个排列编号中,i一世i都不能位于第i一世i个条目中)。 输出应包含数字(1,2,…,n)(1个,2,…,ñ)(1,2,\ldots,n)(或(0,1,2,…,n−1)(0,1个,2,…,ñ-1个)(0,1,2,\ldots,n-1))的排列。 您也可以始终打印(n,n−1,…,1)(ñ,ñ-1个,…,1个)(n,n-1,\ldots,1)(或分别(n−1,n−2,…,1,0)(ñ-1个,ñ-2,…,1个,0)(n-1,n-2,\ldots,1,0))的排列,但必须指定。 输出必须是确定性的,也就是说,每当调用某个给定nñn作为输入的程序时,输出都应该是相同的(这包括排列顺序必须保持相同),并且完整的输出必须在每次有限的时间(以概率1这样做是不够的)。 您可以假设n⩾2ñ⩾2 n \geqslant 2 对于某些给定的您可以生成所有排列,也可以选择另一个整数作为索引并打印第个排列(按您选择的顺序)。nñnkķkkķk 例子 请注意,排列顺序不必与此处列出的顺序相同: n=2: (2,1) n=3: (2,3,1),(3,1,2) n=4: (2,1,4,3),(2,3,4,1),(2,4,1,3), (3,1,4,2),(3,4,1,2),(3,4,2,1), (4,1,2,3),(4,3,1,2),(4,3,2,1) OEIS A000166记录了排列的次数。

13
星星造星
介绍 这个想法是使用星号(星号)*在指定的尺寸上显示一个ascii-art星。维度是一个大于或等于1个1个1的输入数字,用于指定星形的上点的高度。这里的星星是六颗尖的星星,从图片的角度看,它们的大小更大。 在所有情况下,恒星的ascii-art表示都应显示为两个重叠的三角形,如以下示例所示。 参数化 下图和数据表描述了星形的前七个尺寸的属性。每个参数随着ññN增加以算术级数增长,除了ñ= 1ñ=1个N=1不同。 例子 对于输入1(简并的情况),程序输出应如下所示: * ***** ***** * 输入2: * *** ********* ******* ********* *** * (3) * *** ***** *************** ************* *********** ************* *************** ***** *** * (5) * *** ***** ******* ********* *************************** ************************* *********************** ********************* ******************* ********************* *********************** ************************* *************************** ********* ******* ***** …

16
我的双胞胎有剩余的排列吗?
我们定义RnRnR_n作为欧几里得除法的余数的列表nnn由222,333,555和777。 给定的整数n≥0n≥0n\ge0,则必须找出是否存在一个整数0<k<2100<k<21000,使得Rn+kRn+kR_{n+k}是的置换R48R48R_{48}是k=210k=210k=210(导致R258=(0,0,3,6)R258=(0,0,3,6)R_{258}=(0,0,3,6)为好) 规则 如果存在kkk则可以输出真实值,否则可以输出假值,也可以选择两个不同且一致的值。 这是代码高尔夫球。 暗示 您真的需要计算kkk吗?也许。或者可能不是。 测试用例 的一些值nnn为其kkk存在: 3, 4, 5, 8, 30, 100, 200, 2019 一些值nnn针对kkk不存在: 0, 1, 2, 13, 19, 48, 210, 1999

20
我在你的子网中,打高尔夫的代码
挑战 给定点address分四进制表示形式的IPv4 subnet和CIDR表示形式的IPv4 ,请确定中是否address存在subnet。如果位于中subnet,则输出一个唯一且一致的值;如果不在中,则输出一个单独的唯一且一致的值subnet。输出值不一定需要使用您的语言为真/假。 CIDR子网符号简要入门 IPv4网络地址的长度为32位,分为四组,每组8位,以便于阅读。CIDR子网表示法是从最左边开始的指定位数的掩码。例如,对于/24子网,这意味着该子网中地址的最右边8位可用。因此,两个地址之间最多相隔一个255,并且具有相同的子网掩码,它们位于同一子网中。请注意,有效CIDR的所有主机位(右侧)均未设置(零)。 xxxxxxxx xxxxxxxx xxxxxxxx 00000000 ^--- subnet mask ---^ ^-hosts-^ 再举一个例子,/32子网指定所有位都是子网掩码,从本质上讲意味着每个子网仅允许一个主机/32。 xxxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx ^--- subnet mask ---^ 例子: 使用True“子网”和False“未子网”的输出: 127.0.0.1 127.0.0.0/24 True 127.0.0.55 127.0.0.0/23 True 127.0.1.55 127.0.0.0/23 True 10.4.1.33 10.4.0.0/16 True 255.255.255.255 0.0.0.0/0 True 127.1.2.3 127.0.0.0/24 False 127.1.2.3 127.1.2.1/32 False 10.10.83.255 10.10.84.0/22 False …

19
新订单4:世界
简介(可以忽略) 将所有正数按其常规顺序(1、2、3,...)有点无聊,不是吗?因此,这是围绕所有正数的排列(重新排列)的一系列挑战。这是本系列的第四个挑战(链接到第一个,第二个和第三个挑战)。 在这个挑战中,我们将探讨不是一个自然数的排列,而是整个世界的排列! 2000年,克拉克·金伯林在26提出了一个问题日的问题症结Mathematicorum,由加拿大数学学会出版的数学科学杂志。问题是: Sequence a=⎧⎩⎨⎪⎪a1=1an=⌊an−12⌋ if ⌊an−12⌋∉{0,a1,...,an−1}an=3an−1 otherwiseSequence a={a1=1an=⌊an−12⌋ if ⌊an−12⌋∉{0,a1,...,an−1}an=3an−1 otherwise\text{Sequence }a = \begin{cases} a_1 = 1\\ a_n = \lfloor \frac{a_{n-1}}{2} \rfloor\text{ if }\lfloor \frac{a_{n-1}}{2} \rfloor \notin \{0, a_1, ... , a_{n-1}\}\\ a_n = 3 a_{n-1}\text{ otherwise} \end{cases} 是否每个正整数都按此顺序恰好出现一次? 2004年,Mateusz Kwasnicki在同一期刊上提供了肯定的证明; 2008年,他发表了更正式的证明(与原始问题相比),给出了更一般的证明。他用参数ppp和qqq制定了序列: ⎧⎩⎨⎪⎪a1=1an=⌊an−1q⌋ if ⌊an−1q⌋∉{0,a1,...,an−1}an=pan−1 otherwise{a1=1an=⌊an−1q⌋ if ⌊an−1q⌋∉{0,a1,...,an−1}an=pan−1 …

4
我们有什么?
受到我们心爱的天才的启发和记忆, RIP 他发明并实施了dfns-他的巨著和挑战主题。 对于感兴趣的人:John的最新完整dfns文档和视频。 任务 给定ASCII源代码,请回答它属于以下四个类别中的哪个类别: 二进位掺杂 一元掺杂 Dfn 其他 您可以返回任何四个一致的值,但是如果不明显,请说明您的映射。 细节 您可以假设源代码始终以大括号开头,以大括号{结尾}。 可能会出现递归嵌套的括号(例如{{{}}}),但是类别1-3永远不能使括号嵌套深度低于1({}{}“ Other”也是),并且所有括号都必须平衡({{}“ Other”也是如此)。 一行中以下上下文中的字符将被忽略: 在#(评论)的右边:significant#ignored 在单引号'... '(即一个字符串): significant'ignored'significant(这适用于#太:'#'significant) 在未配对报价单的右边'(左侧配对报价单):significant'ignored 在花括号级别1中(即,不包括嵌套括号): 二进位掺杂包含不间断的短语 ww 单调掺杂不包含ww,但包含aa Dfns既不包含ww也不包含aa 测试用例 二进位掺杂 {ww} { www } { ''ww' } {aa ww} {'#''#'ww?aa} 单声道掺杂 {aa} {aaaa} {aa{ww}'ww'} {w#w' aa' } {aaw*w} {w'\'aa\''} Dfns {} …

10
二维气泡排序
排序对于二维数组没有意义...还是吗? 您的任务是获取一个输入网格,并对它应用类似于冒泡排序的算法,直到网格中的所有值沿每一行和每一列从左到右,从上到下不递减。 该算法的工作原理如下: 每次遍历都从上到下逐行进行,比较/交换每个单元格及其右侧和下方的邻居。 如果该单元格仅大于其右侧和邻域之一,则与该单元格大于 如果该单元格大于其右侧邻居和下方邻居,请与较小的邻居交换 如果单元格大于其右侧和下方的邻居(均为相同值),则与下方的邻居交换。 如果该单元格不大于其右侧和相邻单元格中的任何一个,则不执行任何操作 继续进行此操作,直到整个过程中没有进行交换为止。这是每行和每列从左到右,从上到下按顺序排列的时间。 例 4 2 1 3 3 5 7 2 1 通过的第一行将交换4和2,然后将4与1交换。 2 1 4 3 3 5 7 2 1 当我们得到中间的3时,它将与下面的2交换 2 1 4 3 2 5 7 3 1 然后将5与下面的1交换 2 1 4 3 2 1 7 3 5 第一遍的最后一行将7一直移到右侧 …
17 code-golf  grid 

1
将方形网格划分为相等面积的部分
此挑战基于以下难题:给您一个nby n网格,其中带有n标记的单元格。您的工作是将网格划分为多个n部分,其中每个部分均由精确的n单元格组成,每个单元格仅包含一个标记的单元格。 例 这是左边的难题,右边是其(唯一)解决方案: 挑战 您会n以任何合理的格式获得一组零索引的坐标。 [(0,0), (0,3), (1,0), (1,1), (2,2)] 您的工作是编写一个返回任何有效分区(同样,以任何合理的格式)的程序。 [ [(0,0), (0,1), (0,2), (1,2), (1,3)], [(0,3), (0,4), (1,4), (2,4), (3,4)], [(1,0), (2,0), (3,0), (4,0), (4,1)], [(1,1), (2,1), (3,1), (3,2), (4,2)], [(2,2), (2,3), (3,3), (4,3), (4,4)] ] 如果难题没有解决方案,程序应通过抛出错误或返回空解决方案来表明这一点。 输入/输出示例 [(0,0)] => [[(0,0)]] [(0,0), (1,1)] => [ [(0,0), (1,0)], …

26
计算总插槽
给定一个必须按顺序完成的作业列表,每个作业都需要一个插槽来完成,如果在完成一项工作之后接下来的两个插槽不能完成相同的工作(冷却插槽),则要花多长时间来完成全部工作)?但是,可以在此冷却槽中分配其他作业。 例如, [9,10,9,8] => output: 5 因为作业将被分配为[9 10 _ 9 8]。 1.首先,9需要两个冷却点_ _。因此,我们从开始9 _ _。 2.下一个作业10与上一个作业9不同,因此我们可以分配_之一。然后我们将拥有9 10 _。 3.第三,现在不能分配9,因为第一个作业9是相同的作业,需要冷却时间。9 10 _ 9。 4.最后,8与其他任何前两个作业都不相同,因此可以在9之后立即分配,并且由于这是最后一个作业,因此不需要冷却时间。最终列表为9 10 _ 9 8,预期输出为5,即点数(或插槽数) 测试用例: [1,2,3,4,5,6,7,8,9,10] => output : 10 ([1 2 3 4 5 6 7 8 9 10]) [1,1,1] => output: 7 ([1 _ _ …

14
找出所有具有重复值的(对角)对角线
挑战: 给定矩阵输入,确定具有重复数字的对角线和反对角线的数量。 因此,如果我们有一个像这样的矩阵: [[aa,ab,ac,ad,ae,af], [ba,bb,bc,bd,be,bf], [ca,cb,cc,cd,ce,cf], [da,db,dc,dd,de,df]] 所有对角线和反对角线将是: [[aa],[ab,ba],[ac,bb,ca],[ad,bc,cb,da],[ae,bd,cc,db],[af,be,cd,dc],[bf,ce,dd],[cf,de],[df], [af],[ae,bf],[ad,be,cf],[ac,bd,ce,df],[ab,bc,cd,de],[aa,bb,cc,dd],[ba,cb,dc],[ca,db],[da]] 例: [[1,2,1,2,1,2], [1,2,3,4,5,6], [6,5,4,3,2,1], [2,1,2,1,2,1]] 所有对角线和反对角线将是: [[1],[2,1],[1,2,6],[2,3,5,2],[1,4,4,1],[2,5,3,2],[6,2,1],[1,2],[1], [2],[1,6],[2,5,1],[1,4,2,1],[2,3,3,2],[1,2,4,1],[1,5,2],[6,1],[2]] 删除仅包含唯一数字的所有对角线和反对角线: [[2,3,5,2],[1,4,4,1],[2,5,3,2],[1,4,2,1],[2,3,3,2],[1,2,4,1]] 因此,输出为包含重复数字的对角线和反对角线的数量: 6 挑战规则: 如果输入矩阵为空,仅包含1个数字或整个矩阵中仅包含唯一数字,则输出始终为0。 确保输入仅包含正数[1,9](除非它完全为空)。 矩阵将始终为矩形(即,所有行的长度均相同)。 I / O是灵活的。输入可以作为整数列表的列表,或者作为整数的2D数组,或者作为矩阵对象,作为字符串等。也可以将矩阵的一个或两个维度作为附加输入。是否以您选择的语言保存字节。 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能短的答案。 标准规则适用于具有默认I / O规则的答案,因此允许您使用STDIN / STDOUT,具有适当参数的函数/方法以及返回类型的完整程序。你的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接(即TIO)。 另外,强烈建议为您的答案添加说明。 测试用例: Input: Output: [[1,2,1,2,1,2], 6 [1,2,3,4,5,6], [6,5,4,3,2,1], [2,1,2,1,2,1]] [[]] 0 …

3
优化我的翅膀顺序
此推文列出了中餐厅1的翅膀的可能订单: 订购披萨时,我通常会计算出什么尺寸能给我带来最佳的披萨价格比,这很简单。但是,要最小化这家餐厅的订单价格并不是一件容易的事,因此我想为在该餐厅的下一份订单做好准备。 挑战 给定一个大于或等于444的整数,您的任务是返回一个可能的订单,以最小化价格(总体上最便宜)和交易数量。 例 如果我要订购100100100 Wings,事实证明最好的讨价还价将花费$111.20$111.20$111.20。但是,有多个订单将花费该金额,即: [50,50],[25,25,50],[25,25,25,25] 由于第一个订单将使用最少的交易(222),结果将是[50,50]。 规则 输入将是某个整数n≥4n≥4n \geq 4 输出将是订单大小的列表/数组/ ...,总计为nnn,并将订单价格最小化 您可以选择退回所有可能的订单 测试用例 4 -> [4] (4.55) 23 -> [23] (26.10) 24 -> [6,18],[9,15],[12,12] (27.20) 31 -> [6,25] (34.60) 32 -> [4,28],[6,26],[7,25] (35.75) 33 -> [4,29],[5,28],[6,27],[7,26],[8,25] (36.90) 34 -> [6,28],[9,25] (38.00) 35 -> [35] (39.15) 125 …

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.