Questions tagged «code-golf»

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

6
X + Y = Z-但是在哪个基数上?
挑战 给定3个数字X,Y并Z以底数为单位B,找到一个B加和X和Y产生的酶Z。输入x = 20,由于基数为5 ,Y = 12因此Z = 32可能会产生收益。520 + 12 = 32 您可能会假设总有一个正确的加法基础(在某些情况下,不存在任何基数,这要感谢@ MasonWheeler和@ Not that Charles提供的一些示例)。 最低的底数是1。您可以使用1或0作为一进制数字,但是您不能混合使用这些数字。 输入输出 输入数字的位数为非负整数。 您可以假定输入数字包含前导零,因此输入数字具有特定(或全部相同)的长度。 您可以采用最方便的格式获取数字,前提是未经预处理。这包括三个输入数字的整体格式以及每个数字的数字格式。请明确说明您使用的格式。 如果存在多个可能的基准,则可以输出全部或其中之一。 您可以假定基数和输入数字将在您的语言的数字范围内。 规则 允许功能或完整程序。 输入/输出的默认规则。 有标准漏洞。 这是代码高尔夫球,因此最低字节数获胜。Tiebreaker是较早提交的内容。 测试用例 输入格式是代表每个数字的整数列表。这三个列表用逗号分隔。 请注意,有时可能有多个基准。此处仅输出一个(随机)解决方案。 [12,103],[4,101],[16,204]-> 349 [4,21,25],[5,1,20],[9,23,17]-> 28 [16,11],[25,94],[41,105]-> 147 [2,140],[21,183],[24,100]-> 223 [8,157],[1,28],[9,185]-> 227 [2,158],[88],[3,12]-> 234 [8,199],[1,34],[9,233]-> 408 [3,247],[7,438],[11,221]-> 464 [3,122],[3,2],[6,124]-> …

15
钻石化矩阵
给定一个矩阵,输出矩阵的表示形式,其中左上角元素在顶部,反对角线是中心行,右下角元素在底部。 例如,考虑以下矩阵: 1 2 3 4 5 6 7 8 9 此矩阵的菱形版本为: 1 4 2 7 5 3 8 6 9 输入和输出 输入矩阵将作为列表列表(或您选择的语言中的任何类似内容)给出。输出也应该是列表列表。 矩阵将仅包含正整数。 输入矩阵不一定是正方形。 输入矩阵将至少为1×1。 测试用例 Input: [[1]] Output: [[1]] Input: [[1,2],[3,4]] Output: [[1],[3,2],[4]] Input: [[1,2,3],[4,5,6]] Output: [[1],[4,2],[5,3],[6]] Input: [[11,2,5],[3,99,3],[4,8,15],[16,23,42]] Output: [[11],[3,2],[4,99,5],[16,8,3],[23,15],[42]] 计分 这是代码高尔夫球,因此最短的答案以字节为单位。

4
磁吸阵列
背景 我有一排强力磁铁和一堆金属物体。磁铁会将磁铁拉到哪里? 输入值 您的输入是一个非负整数数组,其中将至少包含一个1。您可以使用任何合理的格式。 0数组的s表示空白,而1s表示固定的磁体。所有其他数字都是金属物体,它们被磁铁拉动。每个对象都被拉向最近的磁铁(如果有领带,则该对象被拉到右侧),然后沿该方向行进,直到碰到磁铁或另一个对象。最后,所有物体都聚集在磁铁周围。对象的顺序被保留。 输出量 您的输出是一个数组,其中每个对象都被拉到尽可能靠近最近的磁铁的位置。它应该具有与输入相同的格式。 例 考虑数组 [0,0,2,0,1,1,0,2,0,3,0,5,0,1,0] 最左边2的磁铁被拉向第一对磁铁,第二个磁铁也被拉向2。在3有磁铁在两个方向上四步走,所以它被拉到正确的。该5也被拉到右边,它会之间3和磁铁。正确的输出是 [0,0,0,2,1,1,2,0,0,0,0,3,5,1,0] 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 [0,1,0] -> [0,1,0] [1,0,2,0,0,1,0] -> [1,2,0,0,0,1,0] [7,0,5,0,0,1,0] -> [0,0,0,7,5,1,0] [1,0,3,0,1,0,3,0,1] -> [1,0,0,3,1,0,0,3,1] [1,0,0,0,0,0,0,7,3] -> [1,7,3,0,0,0,0,0,0] [1,2,3,4,5,6,7,8,9,10,11,0,0,0,1] -> [1,2,3,4,5,6,7,0,0,0,8,9,10,11,1] [12,3,0,0,1,0,1,3,0,0,6,12,0,0,0,1] -> [0,0,12,3,1,0,1,3,6,0,0,0,0,0,12,1]

18
质量中心,来自坐标及其质量列表
这是星期一早上的快速挑战... 用最少的字节数写一个函数或程序: 输入[x,y]坐标列表 输入[x,y]坐标各自质量的列表作为输入 以形式输出计算出的质心[xBar,yBar]。 注意: 输入可以采用任何形式,只要使用数组即可。 质心可以通过以下公式计算: 用简单的英语... 为了找到xBar,将每个质量乘以其相应的x坐标,对结果列表求和,然后将其除以所有质量的总和。 要找到yBar,将每个质量乘以其各自的y坐标,对结果列表求和,然后将其除以所有质量的总和。 简单的Python 2.7示例: def center(coord, mass): sumMass = float(reduce(lambda a, b: a+b, mass)) momentX = reduce(lambda m, x: m+x, (a*b for a, b in zip(mass, zip(*coord)[0]))) momentY = reduce(lambda m, y: m+y, (a*b for a, b in zip(mass, zip(*coord)[1]))) xBar …

6
研发点购买成本
制作《龙与地下城》角色时,滚动能力得分的另一种选择是在称为点购买的功率预算内分配得分。能力得分越高,得分越高,尤其是高端:得分8是免费的,得分提高1意味着成本1点,除非提高到15或16意味着成本2点,提高到17或18意味着成本3点。 +-------+------+ | Score | Cost | +-------+------+ | 8 | 0 | | 9 | 1 | | 10 | 2 | | 11 | 3 | | 12 | 4 | | 13 | 5 | | 14 | 6 | | 15 | 8 | | 16 …

14
您所有的基础回文都属于我们
生成碱基n为回文序列的序列号(OEIS A126071)。 具体地,该序列被定义如下:给定的数n,表达它在碱a为a = 1,2, ..., n,并且计数多少这些表达式是回文。“回文”的含义a是将表达式的基数反转为原子单位(感谢@MartinBüttner)。例如,考虑n= 5: a=1:表达式是11111:回文 a=2:表达式是101:回文 a=3:表达式是12:不是回文 a=4:表达式是11:回文 a=5:表达式是10:不是回文 因此,对于结果n=5的3。请注意,OEIS使用的是基2, ..., n+1而不是1, ..., n(感谢@beaker)。这是等效的,因为base 1和n+1中的表达式始终是回文的。 序列的第一个值是 1, 1, 2, 2, 3, 2, 3, 3, 3, 4, 2, 3, 3, 3, 4, 4, 4, 4, 2, 4, 5, ... 输入是一个正整数n。输出是n序列的第一项。 从理论上讲,该程序应该可以工作(给予足够的时间和内存),以应对n任何内部计算中由默认数据类型引起的任何限制。 允许所有功能。最低字节数获胜。

30
圣诞老人什么时候进入地下室?(AOC第一天)
在创作者的允许下,我正在复制《代码出现》第一天的第二部分。 圣诞老人正试图在一个大型公寓楼中送礼物,但他找不到合适的楼层-他的指示有些混乱。他从一楼(0楼)开始,然后一次按照一个字符跟随说明。 圆括号“,(”表示他应该上升一层,而圆括号“ ),”则意味着应该下降一层。 公寓楼很高,地下室很深。他将永远找不到顶层或底层。 给定一组说明,找到导致他进入地下室的第一个角色的位置(-1楼)。 例如: 输入)导致他进入角色位置1的地下室。 输入()())导致他进入角色位置5的地下室。 此处给出的长输入将产生解决方案1797。 这就是代码高尔夫,所以最短的解决方案是成功的!
20 code-golf 

9
太阳有多远?
介绍 tl; dr 连续输出当前从地球到太阳的距离。 简化地说,地球绕太阳的轨道是椭圆形的。因此两者之间的实际距离在不断变化。可以使用以下公式针对任何给定日期计算此距离: 该方程可被分成以下几部分2: 1代表1 AU(天文单位),等于149,597,870.691 km 0.01672是地球和太阳之间的 轨道偏心率 cos当然是余弦函数,但是参数是度数而不是弧度 0.9856是360°/ 365.256363天,一年中的完整旋转,这365.256363是恒星年的长度,以平均太阳日为准 day 是一年中的一天 [1-365] 4代表距近日点的偏移量,它在1月4日至6日之间 公式需要一整天,但要解决这一挑战(持续输出),您必须更加准确;否则直到第二天什么事情都不会发生。只需将过去时间的百分比添加到当天,例如1: day + (h * 3600 + m * 60 + s) / 864 / 100 几个例子: 1月1日,23:59:59 1.99998842592593 1月1日,18:00:00 1.75 1月1日,12:00:00 1.50 1月1日,06:00:00 1.25 输入值 这个挑战没有投入。 如果您的语言无法获取当前时间,则可以将其作为程序的输入。有效输入是最适合该语言的时间戳或完整的日期时间字符串。仅通过当天(例如51月5日或5.25不允许 6点的同一天)。 输出量 输出从地球到太阳的当前距离: 在中输出值km。 …

3
给表达式加上括号
最近,我一直在写一种新的语言,以避免需要处理操作的顺序,我只是对每个表达式加上括号以完全避免这种情况。 因为括号位于字符代码40-41,所以您的代码将需要尽可能短。 例子 1+2*3 (1+(2*3)) 2*(3+4) (2*(3+4)) 2*3/4+3 (((2*3)/4)+3) 342*32/8 ((342*32)/8) 规则 您需要处理的唯一操作是:(*乘法),/(除法),+(加法)和-(减法)。 该操作的顺序是: 插入语 乘法,除法 加法,减法 您应该宁可左右走 输入数字将始终为正整数(请参阅奖励) 奖金 如果处理否定,则为-20%: 3+-5 (3+(-5)) -5%(如果您允许在输入内部放置空格): 3 + 4 (3+4) 如果您可以在输入中处理小数,则为-10%: 1+.12 (1+.12) 1+0.21/3 (1+(0.21/3)) 500赏金:如果您设法以“ 未命名 / 块”形式填写答案

3
将方钉放入方孔
我对《纽约时报》的这张图片的设计很感兴趣,其中每个美国州都由一个正方形的网格表示。我想知道他们是手动放置正方形还是实际上找到了一个最优的正方形放置(在某种定义下)来表示连续状态的位置。 您的代码将只承受一小部分挑战,即以最佳方式放置正方形来表示状态(或其他任意二维形状)。具体地说,它假设我们已经具有所有形状的地理中心或质心一种方便的格式,并且在这样的图中,数据的最佳表示形式是从形状的质心到代表它们的正方形中心的总距离最小,每个中最多一个正方形可能的位置。 您的代码将以任何方便的格式获取从0.0到100.0(含)之间的唯一的浮点X和Y坐标对列表,并将以最佳位置表示数据的网格中输出单位平方的非负整数坐标。 ,保持秩序。如果正方形的多个排列是最佳的,则可以输出任何最佳排列。将给出1至100对坐标。 这是代码高尔夫球,最短的代码获胜。 例子: 输入: [(0.0, 0.0), (1.0, 1.0), (0.0, 1.0), (1.0, 0.0)] 这是个简单的。在我们的网格中,正方形的中心位于0.0、1.0、2.0等处,因此这些形状已经完美地放置在此模式的正方形的中心处: 21 03 因此,您的输出应恰好是这些坐标,但以您选择的格式为整数: [(0, 0), (1, 1), (0, 1), (1, 0)] 输入: [(2.0, 2.1), (2.0, 2.2), (2.1, 2.0), (2.0, 1.9), (1.9, 2.0)] 在这种情况下,所有形状都在(2,2)处接近正方形的中心,但是我们需要将它们推开,因为两个正方形不能位于同一位置。最小化从形状的质心到代表该形状的正方形的中心的距离,可以得到以下图案: 1 402 3 因此,您的输出应为[(2, 2), (2, 3), (3, 2), (2, 1), …

18
找到叉积
两个三维向量→ a和→ b的叉积是唯一向量→ c,使得:a⃗ 一种→\vec ab⃗ b→\vec bc⃗ C→\vec c c⃗ C→\vec c正交于a⃗ 一种→\vec a和b⃗ b→\vec b 的大小c⃗ C→\vec c等于平行四边形的通过形成在区域a⃗ 一种→\vec a和b⃗ b→\vec b 的方向a⃗ 一种→\vec a,b⃗ b→\vec b,和c⃗ C→\vec c,按照这个顺序,遵循右手定则。 叉积有一些等效公式,但是一个公式如下: a⃗ ×b⃗ =det⎡⎣⎢i⃗ a1b1j⃗ a2b2k⃗ a3b3⎤⎦⎥a→×b→=det[i→j→k→a1a2a3b1b2b3]\vec a\times\vec b=\det\begin{bmatrix}\vec i&\vec j&\vec k\\a_1&a_2&a_3\\b_1&b_2&b_3\end{bmatrix} 其中i⃗ i→\vec i,j⃗ j→\vec j和k⃗ k→\vec k是第一维,第二维和第三维的单位矢量。 …

5
8位国际象棋像素计数
目标 您正在玩电脑象棋游戏。显示屏仅以黑白显示,并且像素块状。与黑色像素相比,白色像素耗电量大,您担心碳足迹。 给定一个正方形和一个国际象棋符号,返回在正方形中显示的白色像素数。 解决方案可以是功能或完整程序的形式。 输入值 4个字符的字符串,定义: 一的wb用于白色或黑色片。(这不是正常的国际象棋符号的一部分,但此难题是必需的。) 其中的KQBNRP一个国王,王后,主教,骑士,鲁克或典当。 其中一个abcdefgh在一块的文件(列)。 其中之一12345678代表作品的排名(行)。 输出量 用于画棋子和下面的正方形的白色像素数。 要求 国际象棋方块为8x8像素,全为白色或全为黑色。 a1 是一个黑色正方形。 白色棋子被绘制成带有黑色轮廓的白色。黑色的部分是黑色的,带有白色轮廓。所有作品都有透明的像素,显示了下面的正方形。 输入区分大小写。 假设输入有效。 这些棋子具有如下的子画面。 .是作品的颜色。 #是作品颜色的反面。 /是基础方块的颜色。 King Queen Bishop //////// //////// //////// ///#.#// /#.#.#.# ///#.#// //#...#/ //#...#/ //##..#/ ///#.#// ///###// //#.#.#/ ///###// //#...#/ ///###// //#...#/ //#...#/ //#...#/ //#...#/ //#...#/ //#...#/ //#.#.#/ //#.#.#/ //#.#.#/ …

2
可视化单词
给定一个仅包含小写字母的单词,请执行以下操作: 对于每个字母,获取其在字母表中的位置的素数分解。 对于每个素数p,画一个边长为p的菱形并将字母粘贴在菱形的中间。 最大的钻石在中间,随后的较小的钻石(从大到小)在到达底部或顶部之间交替。 注意:对于字母a,边长为1。 示例:猫 c:3 = 3 a:1 = 1 t:20 = 5 * 2 * 2 该图: . . . . t . . . . . . . . . . . . . . . . . . . . c . .a. . t …

9
Repunits的新颖主要因素
背景 人们在聊天中谈论素分解,我们发现自己在谈论repunits。Repunits是称为repdigits的数字的子集,repdigits仅由重复数字组成,例如222或4444444444444444,但是repunits仅由组成1。 因此,第一耦合repunits是1,11,111等。这些可通过称为[R Ñ,所以ř 1 = 1,- [R 2 = 11,等,和由下式产生R(n) = (10^n - 1)/9,与n > 0。 这些重复单元编号的素数分解遵循OEIS中的序列A102380。例如: R 1 = 1 R 2 = 11 R 3 = 111 = 3 * 37 R 4 = 1111 = 11 * 101 R 5 = 11111 = 41 * 271 …

18
将Salesforce 15个字符的ID转换为18个字符
在Salesforce CRM中,每个对象都有15个字符的字母数字ID,区分大小写。如果有人好奇,实际上它是62的基数。但是,用于数据迁移和集成的工具可能支持也可能不支持区分大小写。为了克服这个问题,可以将ID安全地转换为18个字符的不区分大小写的字母数字ID。在该过程中,将3个字符的字母数字校验和添加到ID。转换算法为: 范例: a0RE000000IJmcN 将ID分成三个5个字符的块。 a0RE0 00000 IJmcN 反转每个块。 0ER0a 00000 NcmJI 1如果每个字符都用大写字母替换,0否则用大写字母替换。 01100 00000 10011 对于每个5位二进制数i,在位置获取字符i在大写字母和数字0-5(ABCDEFGHIJKLMNOPQRSTUVWXYZ012345)串联的。 00000 -> A, 00001 -> B, 00010 -> C, ..., 11010 -> Z, 11011 -> 0, ..., 11111 -> 5` 屈服: M A T 将这些字符(校验和)附加到原始ID。 输出量: a0RE000000IJmcNMAT 编写以15个字符的字母数字(ASCII)字符串作为输入并返回18个字符的ID的程序或函数。 输入验证不在此问题的范围内。程序可能会返回任何值,或者由于无效输入而崩溃。 请不要使用使该挑战变得微不足道的Salesforce专有语言的功能(例如,公式CASESAFEID(),转换Id为String在APEX&c中 Formula)。 测试用例 a01M00000062mPg …
20 code-golf  string 

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.