Questions tagged «code-golf»

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

16
按素数分解数字除数
给定一个整数≥2的输入,输出一个除数的列表,该除数的列表按指数在其素因数分解中按升序排列,先按最大质数排序,然后按第二大质数排序,依此类推。 例如,取整数72,即2 3 3 2。它有除数 1 3^0 · 2^0 2 3^0 · 2^1 3 3^1 · 2^0 4 3^0 · 2^2 6 3^1 · 2^1 8 3^0 · 2^3 9 3^2 · 2^0 12 3^1 · 2^2 18 3^2 · 2^1 24 3^1 · 2^3 36 3^2 · 2^2 72 …

6
分数精确到小数
编写一个给定两个整数a,b的程序或函数,输出一个字符串,该字符串包含一个十进制数字,精确地表示分数a / b 。 如果a / b是整数,则只需输出该值,不带小数点或前导零: 123562375921304812375087183597 / 2777 -> 44494913907563850333124661 81 / 3 -> 27 -6 / 2 -> -3 如果a / b不是整数,但以10为底的有限表示形式,则输出该值时不带前导或尾随零(点之前的单个零除外): 1 / 2 -> 0.5 3289323463 / -250000000 -> -13.157293852 最后,当且仅当(so no 0.999...)a / b不是整数并且没有有限表示形式时,才输出有限部分,然后在括号中输出重复部分。重复部分必须尽可能小,并尽早开始。 -1 / 3 -> -0.(3) 235 / 14 -> 16.7(857142) …

8
“添加一个”到图像中的每种颜色
您只需拍摄此图像,然后将每种颜色加到每个十六进制数字上即可。例如,#49de5f将变为#5aef60(通过9循环到a和f循环到0。) 这也意味着所有白色(#ffffff)将变为黑色(#000000),因为所有f循环都返回0,但是所有黑色将变为黑色(#111111)的浅色阴影。 评分基于使用的最少字节数,因为这是一个代码高尔夫问题。 使用下面的图像作为代码的输入图像,并将代码的输出图像放入答案中。 如果需要,您还可以使用其他彩虹图像:

1
堆叠交换
问题 说你有N个堆命名小号1至S Ñ,其中每个小号ķ(k = 1至N)中包含数k的N份。 例如,当N = 3时,堆栈如下所示: 1 2 3 <- top of stack 1 2 3 1 2 3 <- bottom of stack ======= 1 2 3 <- stack index 这里有3个索引为1、2和3的堆栈,每个堆栈包含N个自己索引的实例。 目的是重新排列N个堆栈,以使它们中的每个堆栈都按从上到下的顺序完全包含数字1到N。 例如,对于N = 3,目标是将堆栈重新排列为: 1 1 1 2 2 2 3 3 3 ======= 1 2 3 …

11
合理排名值
任务 给定整数的输入列表中X 1 ... X Ñ,计算行列的列表- [R 1个 ...ř Ñ(的置换{1 ... N} ),使得X - [R 1 ≤X - [R 2 ≤...≤X - [R Ñ。然后,对于每个x i,用x中等于x i的所有值的秩的算术平均值替换其秩。(即,每当有相等的值之间的粘结X,相当重新分配在所有它们的行列。)输出等级的改性列表R“ 1 ... R”n。 (对于统计极客:在Mann-Whitney U检验中使用了这样的观察结果排名(方法2,步骤1。)) 例 给定输入列表[3,-6,3,3,14,3],排名的第一个列表将是[2,1,3,4,6,5],将列表分类为[-6, 3,3,3,3,14]。然后,输入列表中所有3 s 的等级被平均为(2 + 3 + 4 + 5)÷4 = 3.5。最终输出为[3.5,1,3.5,3.5,6,3.5]。 测试用例 [4, 1, 4] -> [2.5, …

30
输入可除的最小回文
给定一个正整数N,输出最小的正整数,以使该数字是回文数(即它本身的逆数)并且可以被整除N。 回文(即输出)必须不需要前导零才能成为回文,例如080,不是的有效答案16。 由于先前的原因,输入将永远不会是10的倍数。 您的程序可能需要花费尽可能多的时间,即使在实践中输出答案的时间太长。 输入和输出 您可以通过接受输入STDIN,作为函数参数,或类似的东西。 您可以将输出打印到STDOUT,从函数返回它或类似的东西。 输入和输出必须以十进制为基础。 测试用例 N Output 1 1 2 2 16 272 17 272 42 252 111 111 302 87278 1234 28382 计分 这是代码高尔夫球,因此最短的答案以字节为单位。

8
我还需要多少声望?
编程拼图和Code Golf已从Beta毕业。很快,我们将获得一个自定义的网站设计,并且特权的声誉边界将上升。许多用户将失去该网站的特权。因此,您的任务是编写一个程序,该程序告诉我们保持特权所需的额外声誉。 任务 您的任务是编写最短的代码,以找到在给定信誉点数量的情况下,用户在网站设计后仍需要保留其当前特权所需的额外信誉。 输入输出 您可以接受输入并以您喜欢的任何方式提供输出,只要它遵循以下规则: 输入 -1到250000(含)之间的整数。您的程序或函数应该能够接受大于此的数字,但是它必须接受该范围内的数字。 输出 -一个整数,代表用户毕业后保持其现有特权所需的声誉点数。 请没有标准漏洞。 示例算法 将变量设置i为输入 将变量设置r为variable i。 虽然r不在列表中beta: 减去1从r。 设置n到的位置r在beta。 设置r项n的graduated。 将变量设置o为的结果r - i。 如果o < 0: 将变量设置o为0。 输出变量o。 桌子 特权表将改变 | privilege name | beta rep | graduation rep | -+-----------------------------+----------+----------------+- | create tags | 150 | 1500 | | access …
23 code-golf  number 

8
平均图像
这是一张图片: %%%%%%%%%%%%% % Hello, % % world! % %%%%%%%%%%%%% 但这太小了,我们的大脑无法计算。因此,我们将其平均如下: 将其分成2 x 2的部分。如果图片在一个部分完成之前结束,请想象那里有空格。 平均每个部分中ASCII字符的值。 四舍五入此平均值并将其转换为ASCII字符。 最后,将部分中的所有字符替换为平均字符。 对所有部分重复此操作。 因此,上图的平均值如下所示: $$>>II99###### $$>>II99###### $$##88KKGG#### $$##88KKGG#### 您的任务:编写一个程序,以ASCII图像作为输入并输出其平均值。 注意整数按函数floor(x+0.5)或类似函数取整-换句话说,向上对半取整。

5
写一个摩尔斯计算器
编写一个程序或函数,以摩尔斯电码的数学表达式作为输入,然后以摩尔斯电码返回解决方案。 有效操作为加号:+和减号:(_下划线)。您可以假设您只会收到非负整数输入,并且结果将是非负整数。 该表达式将至少包含两个词,最多包含十个词。不会有两个相邻的运算符.----+_-....,也就不会有括号。 数字用单个空格分隔。您可以选择将运算符与数字分开,每边用一个空格隔开(请参见示例)。 数字0-9的摩尔斯等效项是: 0 ----- 1 .---- 2 ..--- 3 ...-- 4 ....- 5 ..... 6 -.... 7 --... 8 ---.. 9 ----. 例子: Input Output .----+.---- (1+1=2) Optional input: .---- + .---- ..--- -...._...-- (6-3=3) Optional input: -.... _ ...-- ...-- ..---_...--+..--- (2-3+2=1) 1 ..---+...--_....-+---.._..... (2+3-4+8-5=4) ....- …

28
创建一个交叉的正方形
创建一个交叉的正方形 您将输入一个或多个整数,然后输出一个由您选择的任何可打印字符构成的正方形,并在中心穿过对角线。 通常的想法是输出是一个空心正方形,其中有一个对角交叉。 Input: 7 Output: ******* *# #* * # # * * # * * # # * *# #* ******* 在上面的示例中,“ *”表示外框,“#”表示对角线。 请注意,上面的示例使用两个不同的字符,以便更轻松地查看输出内容,程序应仅使用一个字符。 输入项 1或更大的整数,保证是奇数。 输出量 由您选择的字符组成的正方形,中间有一个十字。 十字架必须是对角线 平方可以通过函数输出或写入输出 尾随换行符可以 如果您愿意,也可以输出为图形,图表或图像 例子 Input: 1 Output: * Input: 3 Output: *** *** *** Input: 5 Output: ***** ** …

9
排序嵌套列表
您必须编写对嵌套列表进行排序的程序或函数。以下是对嵌套列表进行排序的规则: 让我们以这个清单为例: ((5, 2), 2, 7, (2, 1, (3, 4)), 9) 此列表中的每个元素都有一个“优先级”。元素计为数字或子列表。首先,在相同深度获得每个元素的优先级。如果元素只是数字,则其优先级与数字本身相同。如果元素是子列表,则其优先级是其中所有数字的总和,不包括任何子子列表。 因此,深度1的所有元素的优先级为: ( 7 ) 2 7 ( 3 ) 9 ((5, 2), 2, 7, (2, 1, (3, 4)), 9) 按优先级对每个元素进行排序。如果有平局,则必须保持与原始列表相同的顺序。 2 ( 3 ) ( 7 ) 7 9 (2, (2, 1, (3, 4)), (5, 2), 7, 9) …

10
高度复合数
甲高合成数是具有多个除数比任何小的正整数具有一个正整数。这是OEIS序列A002182。它的前20个学期是 1, 2, 4, 6, 12, 24, 36, 48, 60, 120, 180, 240, 360, 720, 840, 1260, 1680, 2520, 5040, 7560 例如,4由于序列中有3个除数(即1、2、4),而3中只有2个除数,所以2也具有2个除数,而1具有1个除数。 挑战 给定正整数输入n,根据您的选择输出第n个高复合数或前n个高复合数(但每个输入n的选择必须相同)。 规则 程序或函数在理论上应该在给定无限时间和内存的情况下用于任意大的输入,而不考虑数据类型的限制。本质上,这意味着无需对有限数量的值进行硬编码。 在实践中,程序或函数应在合理的时间内运行,例如少于1分钟,最多n到20。最大输入或输出可能受您的语言标准数据类型的限制(但同样,算法在理论上应该可以工作对于任意大数)。 允许使用任何合理的输入和输出格式,包括一元。 代码高尔夫。最少的字节数获胜。

3
画一个随机的六字形
上面的图像称为六字形。六字形是我在DiffEq课堂上涂鸦时制作的一些很酷的图案。制作方法如下: 考虑以下点集,它们的形状像规则六边形。内部的六边形将包含最终的字形,而外部的6个点将形成星形,这是我们开始绘制线条的地方。 从外部的六个点中,随机选择一对。为了提高效率,两个选定的点之间应该至少有一个其他点(否则,它将对最终图形没有影响)。然后,从两个点中的每个点向另一个方向投射射线。该光线被前几行遮挡了。 重复此过程,直到形成所有9个边缘,如以下几幅图像所示。 这是光线被遮挡的示例。射线段的末端仍然可见,但是中间部分被我们绘制的前两个段所遮挡。 这两条光线也被“阻挡”,但这不会造成任何可见的差异,因为它们被同一条其他线阻挡了。 快进直到画完所有9条线。如果您想对这些跳过的步骤进行更详细的说明,我可以进行阐述。 最后,删除星星的点。为了使其看起来更漂亮,还将删除粗点。 挑战 您面临的挑战是输出随机六字形的视觉表示。这是代码高尔夫球,最少的字节获胜。 所有可能的六字形都应以一定的概率出现。通过更改绘制9条边的顺序来生成不同的六字形。 此外,程序输出的所有图像都必须是有效的六字形。某些样式(例如内部六边形的完整轮廓)可能无法显示为六字形,因此您编程时不得输出这些样式。 输出应为图形图像(打印到屏幕或文件)。 六边形必须是规则的,但可以以任何方向出现。 反射/旋转不是唯一的。(这可能使要求1易于遵循)。

3
排序这些债券评级
任务 该信用评级机构指定分级债券根据发行人的信用度,而“三巨头”信用评级机构使用类似(虽然不完全相同)分层分级系统。它们具有明确的逻辑顺序-使用S&P层,AAA> AA +> AA> AA-> A +> ...> BBB> B> ...> C.穆迪使用相似的系统,但对它们的层命名不同( Aaa> Aa1> Aa2> ...> Baa1> ...> C)。 您的任务是设计一个程序,该程序将代表债券评级层的字符串列表作为输入,并输出相同的列表,并按从最高层(AAA / Aaa)到最低层(C)的降序排列。 输入输出 您可以选择输入的格式(列表,每个自变量一个,CSV文件)。您可以假定输入列表中的每个项目都是有效的评级字符串,并且列表中的所有评级字符串均来自同一评级机构。此外,您可能会假设不包含任何时髦的NA风格评级,例如“ NR”或“ WR”-严格从“ Aaa / AAA”到“ C”。输入列表中可能有重复的评分,如果发现,则不应删除它们。 您还可以选择适合您的语言的输出格式,唯一的限制是输出的格式应该是一些标准的文本编码,例如UTF-8或ASCII。 规则和计分 这是代码高尔夫,因此最低字节数获胜,不允许出现标准漏洞。请指定输入和输出格式。 示例程序和测试用例 下面的示例Python程序可以用作正确排序顺序的标准示例。列表Moody和SP是要使用的订购。 Moody = ['Aaa', 'Aa1', 'Aa2', 'Aa3', 'A1', 'A2', 'A3', 'Baa1', 'Baa2', 'Baa3', 'Ba1', 'Ba2', …

3
彩虹化图像
这个挑战是关于逐渐改变图像的色调来制作漂亮的图片,如下所示: (原始) 挑战 编写一个程序或函数,该程序或函数使用两个非负整数和一个您选择的任何常见图像文件格式的图像(您可以采用指向图像或原始图像数据的路径)。 我们将第一个整数称为循环,将第二个整数称为offset。 我们还将浮点步长定义为360倍周期除以图像面积,即step = 360 * cycles / (image width * image height)。 对于图像中的每个像素P,从左到右,从上到下一次移动一行(即,如果像素是字母,则按读取顺序),请执行以下操作: 增加色调的P由偏移度(如果必要的话,从360循环周围为0)。 然后增加抵消由步骤。 以任何常见图像文件格式保存,显示或原始输出结果图像。 此过程递增地增加了图像中的所有像素的色调,使得循环满环周围的色调的彩虹,通过最初偏移色调通过开始偏移。 当周期为1且偏移为0时,如上面的“星夜”图片所示,像素的顶行和底行几乎没有色相偏移,但在这之间有一个完整的颜色周期。 细节 循环可以是任何非负整数,但是您可以假定偏移量是从0到359(含)。 当cycles为0时,图像中的每个像素的色相都会偏移精确的偏移量,因为step也必须为0。(在这种情况下,如果offset为0,则图像根本不会改变。) 如果需要,您可以假设周期和偏移量输入为浮点数(即1.0代替1)。(我意识到它们根本不需要是整数,这只是使挑战变得更加简单。) “色相”是指HSL / HSV颜色模型中常见的RGB颜色空间版本。 例子 原版的: 周期= 1,偏移= 0: 周期= 1,偏移= 180: 原版的: 周期= 2,偏移= 60: 原版的: (感谢ArtOfCode。) 周期= 1,偏移= 120: 原版的: (感谢门把手。) 周期= 1,偏移= …

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.