Questions tagged «code-golf»

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

6
将数字转换为“不太地方价值的系统”
让我们创建一个数字系统,其中数字长度m的第n位值(从右到左)中的最大数字始终等于m-n +1。例如,在此系统中可表示的最大5位数字是写在12345。除了在特定位置可用的位数受限制外,其他所有增量都是标准的。即,当一个数字超过其数字限制时,我们在下一个数字上加一个。 这是此系统中计数的表示方式: 1; 10; 11; 12; 100; 101; 102; 103; 110; 111; 112; 113; 120; 121; 122; 123; 1000; 1001 ... 您的任务是编写一个函数,该函数采用标准的以10为底的数字,并将其转换为我的编号系统。 较短的代码是可取的。波恩机会! **如果需要9(必须)之后的数字,则可以选择使用字母,也可以返回2位数字作为列表的元素。 测试用例 10 -> 111 20 -> 1003 30 -> 1023 50 -> 1123 100 -> 10035 23116 -> 1234567 21977356 -> 123456789A 根据您的实现方式,最后一种情况运行起来可能会非常慢。如果它花费的时间太长或使用了太多的内存,则无需运行它。但是请注意,有一些方法可以使其快速运行并且使用很少的内存。

11
弹奏字符串
沙盒发布在这里。 创建一个“弹跳”字符串的函数或程序。 输入将是Stdin中的String或最接近的替代 输入将仅包含可打印的ASCII和/或空格 输出将输出到Stdout或最接近的输出 可以使用尾随的换行符和空格 如何弹奏字符串 根据需要将字符串格式化为尽可能多的ASCII弹簧圈 用空间填充线圈,直到最近的线圈 跟随线圈周围的弹簧,读出字符 这是一个ASCII弹簧圈: # # #### # # # #### # 其中#s是字符串的字符 这是一个例子: abcdefghijklmnopqrstuvwxyz 变成 a b cdef g h i jklm n o p qrst u v w xyz. . 其中.s替换了可见性的空格。 然后,该字符串被读回,继ASCII春天向下,周围的循环,命中g和u两次: 1| a <-3 V b cdef g h 4| …
11 code-golf  string 

1
帮助贝丝逃离沙漠
与其他载水难题类似,此挑战的独特方面使其完全不同。 贝丝位于沙漠中的一片绿洲。湖中有大量的水,但不幸的是只有X个水桶,每个水桶的水容量为Y升。 贝丝可以手里拿着2个水桶,但要生存,她每行驶一公里必须喝1升水。她还可以在中途留下一些水桶(水不会蒸发)。 挑战 找出公式,并写出最短的解决方案,该解决方案适用于X和Y的正整数值,并计算Beth可以从绿洲经过的最大距离。允许在桶之间移动水。 例 X = 3,Y = 5 贝丝(Beth)从绿洲离开1个完整的桶3KM,然后返回(有绿洲的最后一杯饮料) 贝丝(Beth)在3KM点带来了另一个满满的铲斗,现在那里有12L。 贝丝可以前进到6公里,并在桶中放4升水。 回到3KM点。她现在只有2升水可以回到绿洲。 加满水桶,行驶至6KM点。她现在有8升水。 一直到15KM点。 答案是:15 输入输出 您可以直接在代码中定义X / Y或从输入中读取。结果可以放在变量或输出中,以最短者为准。

9
嘶嘶声。(通用的Fizz Buzz)
我们都听说过Fizz Buzz问题,但是当您尝试将其应用到更多因素时会发生什么呢?嘶嘶声嗡嗡声爆裂! 挑战 编写一个完整的程序,该程序接受一个整数输入n,然后是包含一个整数和一个字符串的n个元组,然后是另一个整数(> 1)k,如下所示: n int1 str1 int2 str2 (...) intn strn k 您可以从命令行或STDIN接受此行。 然后,对于所有1到k的整数,如果它可以被int1,int2 ... intn中的任何一个整除,则按输入顺序输出所有对应的str,后跟换行符。如果不是,则只输出整数,然后输出换行符。 例如,输入 3 2 Fizz 3 Buzz 5 Crackle 10 我们得到 1 Fizz Buzz Fizz Crackle FizzBuzz 7 Fizz Buzz FizzCrackle 但是有输入(请注意顺序更改) 3 3 Buzz 2 Fizz 5 Crackle 10 我们得到 1 Fizz …
11 code-golf 

4
国际标准纸张尺寸的输出细分
ISO纸张尺寸定义: A系列纸张尺寸由以下要求定义: The length divided by the width is the square root of 2. The A0 size has an area of 1 unit. Each subsequent size A(n) is defined as A(n-1) cut in half parallel to its shorter sides. 任务: 给定f[n]分为n细分的输入输出A0 。 测试用例: f[1]至f[12]: 此处,A0由给出 f[1],但此索引不是必需的。 获奖标准: 以字节为单位的最短代码获胜。

2
蒙德里安拼图序列
将一个n X n正方形划分为多个非一致的整数边矩形。a(n)是最大和最小面积之间最小的差异。 ___________ | |S|_______| | | | L | | |_|_______| | | | | | |_____|___| |_|_________| (fig. I) 最大的矩形(L)的面积为2 * 4 = 8,最小的矩形(S)的面积为1 * 3 = 3。因此,差异为8 - 3 = 5。 给定一个整数n>2,输出最小可能的差异。 发布时序列的所有已知值: 2, 4, 4, 5, 5, 6, 6, 8, 6, 7, 8, 6, 8, …

3
尼姆打高尔夫球的秘诀
您在尼姆打高尔夫球有哪些一般提示?我正在寻找可以应用于代码高尔夫球问题的想法,并且这些想法至少也特定于Nim(例如,“删除评论”不是答案)。 请为每个答案发布一个提示。
11 code-golf  tips 

18
斐波那契指数
对于此挑战,您将输出一些数字之和的结果。这些数字是多少?好吧,您将得到输入(a,b),它们是整数(正,负或零)a != b,,和a < b,并且a和b(包括它们)内的每个整数将根据斐波那契数具有指数。这很混乱,所以这里有个例子: Input: (-2, 2) Output: -2**1 + (-1**1) + 0**2 + 1**3 + 2**5 = -2 + -1 + 0 + 1 + 32 = 30 假设第一个斐波那契数由表示f(0),则公式为: a**f(0) + ... + b**f(b-a+1) 输入,处理,输出 为了阐明上述内容,以下是一些测试用例,输入的处理以及预期的输出: Input: (1, 2) Processing: 1**1 + 2**1 Output: 3 Input: (4, 8) …

7
总和直到平方
给定任意整数x> 0和任意基数y> 3。 将x的所有数字加起来(如果写在设置的基数中)。 将此乘以最高位数(始终为base -1)。 重复直到该值是 (y - 1) ^ 2 搜索的是迭代次数和步骤数。 范例1: x= 739 y= 7 searched: (7 - 1) ^ 2 = 36 based: (b7)2104 sum: (dec)7 mul: (dec)42 based: (b7)60 sum: (dec)6 mul: (dec)36 2 steps needed -> answer is [2, 739, 42, 36] or [739, …

10
这只猫有虫子吗?真?
挑战: 读取输入(在可见的ASCII范围内)和进行一些修改的输出: 在每组10个字符的输入中随机(50/50): 替换一个字符*(在可见的ASCII范围内替换为一个随机的**)(例如lumberjack成为lumbeZjack) 或删除一个字符(例如lumberjack成为lmberjack) *如果集合少于10个字符,则不必修改它,但是可以。 **字符可以与一个输入相同,只要它仍然是随机的即可。 例: 输入:Go home cat! You're drunk! 输出:(Go hom cat! YouLre drunk! 仅作为示例,由于输出可能是随机的,因此请勿用作测试用例) 规则: 代码高尔夫球,最少字符获胜!

2
六角坐标:极地直角坐标
Wikipedia谈到极坐标: 在数学中,极坐标系是二维坐标系,其中平面上的每个点由距参考点的距离和距参考方向的角度确定。 这似乎非常适合描述六角形网格。以以下六角形网格为例: A B C D E F G H I J K L M N O P Q R S 我们的参考点将是六边形('J')的中心,我们的参考角将是六边形('A')的左上角。但是,我们将根据从该点开始围绕六边形外部的顺时针台阶数(而不是角度)来描述角度。因此,我们将其称为“步数”而不是角度。 例如,“ C”在(2,2)处,因为它的半径为2(因为距中心“ J”有两个环),并且步数为2(从“ A”向前顺时针走了2个步) ')。类似地,“ O”位于(1、3),因为它距中心一圈,并且从“ E”(在参考角上)向前顺时针走了三步。 为了完整起见,“ J”位于(0,0),因为您需要0步和顺时针0步才能到达。 现在,您还可以使用笛卡尔坐标来描述六边形,但是由于偏移,这有点奇怪。就像极坐标一样,我们将中心设为(0,0)。每个空间也占据一个坐标,因此“ K”位于(2,0),而不是(1,0)。这会将“ A”置于(-2,2),将“ O”置于(1,-1)。 挑战 给定极坐标六边形坐标,以笛卡尔坐标输出相同的坐标。您可以采用这些坐标,并以任何合理的格式输出答案。这意味着您可以根据需要颠倒输入的顺序。这也意味着您可以将坐标输出为(Y,X),但是如果这样做,请在答案中提及这一点以避免混淆。 您不必处理负半径,但可能会遇到负角,或者角度超过六边形完整一圈。例如,您可能会收到(1,10)或(1,-2)作为输入。这些都将对应于我们先前的六角形中的“ N”。你不是要处理非整数输入。 样品IO #Polar #Cartesian (0, 0) (0, 0) (1, 2) (2, …

4
CUSRS-完全无用的字符串重构系统!
介绍 我是SBU(简短而独特)挑战赛的忠实拥护者,这种挑战一直都在PPCG上出现。CUSRS是一个旨在重构字符串的系统,CUSRS函数采用2个参数并输出1个String。 挑战 产生程序,函数,lambda或可接受的替代方法以执行以下操作: 鉴于String input和String refactor(作为例子),重构input使用refactor如下: 的refactor字符串将在格式((\+|\-)\w* *)+(正则表达式),例如: +Code -Golf -lf +al 每个部分都是要在上执行的重构操作input。每个程序也都有一个指针。 + 将在字符串的指针当前位置插入后缀(不带加号),然后将指针重置为0。 每个操作都应应用于input字符串,并应返回结果。 例: input: Golf +Code //pointer location: 0 output: CodeGolf //pointer location: 0 -将通过字符串增加指针,直到找到后缀。后缀将从字符串中删除,而指针将留在删除的文本的左侧。如果找不到后缀,则指针将简单地前进到String的末尾并留在此处。 input: Golf -lf //pointer location 0 output: Go //pointer location 2 例子 input: "Simple" "-impl +nip -e +er" output: "Sniper" …
11 code-golf  string 

7
它是线性树吗?(第一版)
背景 未标记的树可能如下所示: o / | \ o o o | / \ o o o 为了线性化这棵树,我们首先用每个o子节点的数量标记每个节点: 3 / | \ 1 0 2 | / \ 0 0 0 然后将数字以呼吸优先的方式写在列表中,即逐行从左到右: [3, 1, 0, 2, 0, 0, 0] 这是上面树的唯一且明确的表示,这意味着没有两个不同的纯树将具有相同的线性化,并且我们可以从列表中重建原始树。 尽管每棵树都对应于一个特定的整数列表,但并非每个整数列表都代表一个有效的线性化树:例如,[2, 0, 0, 0]它并不代表一个有效的树,如果我们尝试对其进行去线性化,则最终得到该树 [2,0,0,0] -> 2 [0,0,0] -> 2 [0,0] -> …

2
让我们缩写那些数字!现在反向吗?
介绍: 像Twitter和Instagram等,我想显示诸如1.2K和3.8 M而不是1,222或的数字3,823,456。 但这还不是全部!众所周知,某些人无疑会不喜欢这些缩写,并会尝试将其缩写。因此,1.2k将成为1,200并且3.8 M将成为3,800,000。 任务: 您的任务是编写一个程序或函数,将一个数字列表(以字符串形式给出)转换为它们的缩写对,反之亦然。 例如,如果输入列表(或任何STDIN)为['1.4k', '1,234,567', '7.99M'],则应输出: ['1,400', '1.2M', '7,990,000'] 您可以遵循下一个缩写形式: 10 3- >一公斤-> K 10 6- >一百万-> M 10 9- > 10 亿-> B 您的代码可以假定所有小写,全部大写,混合大小写或未定义大小写作为输入,并使用其中的任何一个作为输出,但应保持一致。 规则和限制: 您可以编写程序或函数,通过STDIN(或最接近的替代方法),命令行自变量或函数自变量获取输入,并通过STDOUT(或最接近的替代方法),函数返回值或函数(输出)参数输出结果。 输入可以是任何方便的列表或字符串格式。您可以假设小于个,并且列表包含至少一个元素。ai231 每个缩位号码将包含只有一个 .,而一个正常的数字将包含尽可能多的 , 必要的(你可以假设,这个数字将不会改变)。 您可能不输入数字'123456'而是123,456 适用标准代码高尔夫球规则。 测试用例: Input: ['1.5M', '77.6k', '123,456,789'] Output: ['1,500,000', '77,600', '123.4M'] Input: ['3,000,000,000', '581k', …
11 code-golf 

1
切换顺序
介绍 切换顺序的定义如下: 首先,n人们围成一圈站着(6在本例中)。 1 2 6 3 5 4 从人员开始1,将删除“选定”人员左侧的人员。 1 6 3 5 4 被删除的人可以“切换”删除方法: 如果被删除的人是偶数(在这种情况下就是这种情况),那么下一个被删除的人将在下一个“被选中”人的右边。 如果被删除的人是奇数,则下一个被删除的人将在下一个“已选择”人的左侧。 下一个选择的人也取决于先前删除的人。 如果被删除的人是偶数,则下一个选择的人将在前一个选择的人的右边。 如果被撤消的人是奇数,请参见上文,但将“正确”替换为“左侧”。 因此,下一个选择的人是6。 现在我们删除的人的权利6,这就是5: 1 6 3 4 因为5是奇数,所以被移走的人现在在左边。新选择的人是1。 现在,我们删除3: 1 6 4 我们继续此过程,直到剩下1个数字-在此示例中,最终数字为1。因此S(6) = 1。 前几个数字是: n | S(n) --------- 1 | 1 2 | 1 3 | 3 4 …

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.