Questions tagged «code-golf»

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

12
用总和填充矩阵
挑战: 给定一个方形输入矩阵A,在矩阵的所有四个边上分别填充一行和一列。 顶行和底行中每个元素的值应为每个对应列中元素的总和。 左右列中每个元素的值应为每个对应行中元素的总和。 左上角和右下角的元素值应为对角线上的元素之和 右上角和左下角的元素值应为反对角线中元素的总和。 例: A = 1 5 3 3 2 4 2 5 5 Output: 8 6 12 12 7 9 1 5 3 9 9 3 2 4 9 12 2 5 5 12 7 6 12 12 8 说明: 左上和右下元素是对角线1 + 2 + 5 …

14
色度成功的关键
RGB颜色值#00FF00是一个相当重要的值:它用于制作电影,电视节目,天气通告等。它是著名的“电视绿色”或“绿色屏幕”颜色。 挑战 您的任务是编写一个程序,以获取两个输入图像,这些输入图像均为PNG格式(或图像库的图像对象类型),并且尺寸相同。一个图像可以是任何旧图像。另一个是具有颜色背景的图像#00FF00。输出图像将由第二个图像覆盖,第一个图像重叠在第一个图像上,不#00FF00存在任何颜色(第一个图像除外)。输入和输出可以通过文件,一个GUI,等你被允许采取的RGB值的数组作为输入来完成,因为看到这里。您可以假定图像仅具有完全不透明的像素。 基本上... 制作一个程序,将#00FF00一个图像中的每个像素都替换为背景图像中的相应像素。 测试用例 @dzaima慷慨提供的:背景: 前景: 输出: 当然,严格禁止标准漏洞。这包括使用在线资源为您做到这一点。 这是代码高尔夫,所以最短的代码胜利和最好的程序员可能会繁荣...

5
复杂骰子滚动表达式
背景 我定期和一些朋友一起玩D&D。在谈论某些系统/版本在掷骰子时的复杂性以及应用奖金和罚金时,我们开玩笑地为骰子掷骰表达了一些额外的复杂性。它们中的一些太离谱了(例如扩展简单的dice表达式,例如2d6对参数1进行矩阵化),但是其余的组成了一个有趣的系统。 挑战 给定一个复杂的骰子表达式,请根据以下规则对其进行评估并输出结果。 基本评估规则 每当运算符需要整数但收到操作数的列表时,都会使用该列表的总和 每当运算符需要一个列表但收到一个操作数的整数时,该整数就被视为包含该整数的单元素列表 经营者 所有运算符都是二进制中缀运算符。为了便于说明,a将为左操作数,b并将为右操作数。列表符号将用于运算符可以将列表作为操作数的示例,但实际表达式仅由正整数和运算符组成。 d:输出a范围内的独立均匀随机整数[1, b] 优先顺序:3 两个操作数都是整数 范例:3d4 => [1, 4, 3],[1, 2]d6 => [3, 2, 6] t:取b最低值a 优先顺序:2 a是列表,b是整数 如果为b > len(a),则返回所有值 例如:[1, 5, 7]t1 => [1],[5, 18, 3, 9]t2 => [3, 5],3t5 => [3] T:从中获取b最高值a 优先顺序:2 a是列表,b是整数 如果为b > len(a),则返回所有值 例如:[1, 5, …

12
Divinacci序列
Divinacci(OEIS) 执行斐波那契数列,但不要使用: f(n) = f(n-1)+f(n-2) 使用: f(n) = sum(divisors(f(n-1))) + sum(divisors(f(n-2))) 对于输入n,输出第n个项,您的程序应该只有1个输入。 前14个字词(0索引,您可以1索引;使用的状态): 0 | 0 # Initial | [] 1 | 1 # Initial | [1] => 1 2 | 1 # [] + [1] | [1] => 1 3 | 2 # [1] + [1] | [1,2] => …

1
是仙人掌吗?
在图论中,仙人掌是一个连通图,因此图中任何不同的两个简单循环最多共享一个顶点。 这是一个仙人掌,带有3个简单的虚线框。 下图类似于上图,但不是仙人掌,因为用红色标记的两个顶点由两个简单的循环共享。 事情可能会变得有些棘手,例如下图: 可能看起来像仙人掌,但事实并非如此。可以通过突出显示以下周期来表明这一点: 该循环与图中许多更明显的循环共享一个以上的点。 定义 连通图是这样的图:在任意两个顶点之间至少存在一条路径。 一个简单的循环是图形上一条路径,该路径在相同的顶点处开始和结束,并且访问一个顶点不超过一次。 简单图是无向的,无权的图,因此没有一个顶点通过一个以上的边彼此连接,并且没有顶点与其自身连接。简单图是图的最基本类型,也是大多数人说图时的意思。 任务 以一个简单的图作为输入,并确定它是否是仙人掌图。您应该输出两个不同的值,一个为True,另一个为False。您可以采用您认为合适的任何格式输入。 这是代码高尔夫球,因此您应尽量减少答案的字节数。 测试用例 测试用例作为邻接矩阵

7
最短加法链
加法链是从1开始的整数序列,其中除初始1之外的每个整数都是两个先前整数的总和。 例如,这是一个附加链: [1, 2, 3, 4, 7, 8, 16, 32, 39, 71] 这是使它成为加法链的总和: 1 + 1 = 2 1 + 2 = 3 1 + 3 = 4 3 + 4 = 7 1 + 7 = 8 8 + 8 = 16 16 + 16 = 32 7 + …

16
在框中绘制ASCII框
问题 给定输入 a,b,c a,b,c正整数在哪里 和 a > b > c 用尺寸允许的任何字符组成一个盒子 a x a 将具有不同允许字符的框居中,且尺寸b x b在上一个框内 将另一个不同允许字符的框居中,其尺寸c x c在上一个框内 允许的字符为ASCII字符 [a-zA-z0-9!@#$%^&*()+,./<>?:";=_-+] 输入项 a=6, b=4, c=2 ###### #****# #*@@*# #*@@*# #****# ###### 输入项 a=8, b=6, c=2 ######## #******# #******# #**@@**# #**@@**# #******# #******# ######## 输入项 a=12, b=6, c=2 ############ ############ …

17
它与数字模式匹配吗?
最近,我进行了一次数学测试,并注意到测试中的某个数字与一个有趣的模式匹配。数字(28384)与看起来像这样的通用数字序列匹配 (n)(x)(n+1)(x)(n+2)(x)(n+3) etc... 其中n和x是一位数字整数。该序列可与开始x或n并用端任一x或n+y。 给定一个多位数的正整数,您的任务将根据输入是否匹配模式输出真值或假值。输入的长度在4到18位之间。您可以将输入作为整数的字符串表示形式。输入将不会以0开头,而可以包含或以0结尾。 n+y 将始终是一个数字(因此长度限制为18)。 测试用例 这些应该输出真实值 182838485868788898 4344 85868 12223242526 这些应该是假的 12345 6724013635 36842478324836 1222232425 5859510511 与所有代码高尔夫球一样,最短的代码获胜!祝您好运,万事如意!

30
龙曲线序列
所述龙曲线序列(或常规纸张折叠序列)是一个二进制序列。 a(n)通过对的最低有效1的左位求反得到n。例如要进行计算,a(2136)我们首先将其转换为二进制: 100001011000 我们发现我们的最低有效位 100001011000 ^ 左移一点 100001011000 ^ 并返回其否定 0 任务 给定一个正整数作为输入,输出a(n)。(您可以按整数或布尔值输出)。您应该努力使代码尽可能地小(以字节为单位)。 测试用例 这是顺序的前100个条目 1 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 1 1 0 0 0 1 1 0 0 1 0 0 1 1 1 0 …

10
雨滴落在我的……眼镜上?
我住在英国,那里下雨。很多。不幸的是,我也有必要戴眼镜看,这意味着当下雨时(现在),我几乎看不到它们。这项挑战使您所有人都可以体验到相同! 任务 输出ASCII艺术眼镜,每秒加一滴水。 输入项 没有 输出量 一副眼镜与水滴的在他们的。 眼镜 ________________________ | /__\ | | / \ | | / \ | \_______/ \_______/ 雨滴 雨滴用表示.。眼镜的镜片上随机放置一个雨滴。因此,当放置雨滴时,眼镜可能看起来像这样 ________________________ | /__\ | | . / \ | | / \ | \_______/ \_______/ 如果将其放在空白处(),则会.在图像上放置一个。如果将其放置在已经有雨滴的正方形上,则该水滴会逐渐消失。 滴的步骤是 没有放置水滴: 1滴放置: . 放置2滴: o 放置3滴: O 放置了4滴以上: @ …

30
分割字符串
挑战 给定一个字符串和一个数字,将字符串分成许多相等大小的部分。例如,如果数字为3,则无论字符串有多长,都应将其分为3个部分。 如果字符串的长度未均匀地除以所提供的数字,则应四舍五入每一小节的大小并返回“剩余”字符串。例如,如果输入字符串的长度为13,数字为4,则应返回四个大小均为3的字符串,再加上大小为1的其余字符串。 如果没有余数,您可能根本不返回一个或返回空字符串。 所提供的数字保证小于或等于字符串的长度。例如,"PPCG", 7将不会出现输入,因为"PPCG"无法将其分为7个字符串。(我想正确的结果将是(["", "", "", "", "", "", ""], "PPCG")。将其简单地禁止作为输入会更容易。) 像往常一样,I / O是灵活的。您可以返回一对字符串和余数字符串,或者返回一个以余数结尾的字符串列表。 测试用例 "Hello, world!", 4 -> (["Hel", "lo,", " wo", "rld"], "!") ("!" is the remainder) "Hello, world!", 5 -> (["He", "ll", "o,", " w", "or"], "ld!") "ABCDEFGH", 2 -> (["ABCD", "EFGH"], "") (no remainder; …
23 code-golf  string 

6
追加还是追加?要看
明天将迎来一岁高龄!为了纪念它的生日,我们举办了一个PPCG风格的生日聚会,几个用户在其中发布与大脑flak相关的问题!帮助我们庆祝!:) Brain-flak是我写的一种深奥的语言,其中所有命令都是方括号,并且所有方括号必须完全匹配。借用我自己的定义: 出于此挑战的目的,“括号”是以下任意字符:()[]{}<>。 如果左括号和右括号的顺序正确且其中没有字符,则将一对括号视为“匹配” () []{} 或者,如果其中的每个子元素也都匹配。 [()()()()] {<[]>} (()()) 子元素也可以嵌套在几层深处。 [(){<><>[()]}<>()] <[{((()))}]> 仅在以下情况下,字符串才被视为“完全匹配”: 每个字符都是一个括号, 每对支架都有正确的打开和关闭支架,并且顺序正确 为了庆祝flask的第一个生日,今天的挑战是要采取一组不平衡的括号,并确定要使其成为有效flask所需的操作类型。 例如,((不是有效的脑筋代码,但是如果我们附加))它,它将变为(()),它是完全平衡的,因此是有效的脑筋。这使得此输入可追加。 同样,>}无效,但是我们可以{<在make之前添加{<>},这是有效的。这使该输入成为可前置的。 一些输入稍微复杂一些。例如,)][({不能仅通过追加或前置来使之有效。但是可以通过在前面[(和后面添加来使它有效})]。因此,这种投入既是prependable和追加。 最后,通过附加或前置的任何组合都不能使某些输入成为有效的大脑标志。例如,(>永远不能使之有效。(正在<创建<(>,并且正在)创建(>),这两个都无效)因此,此输入既不可添加也不可添加。 对于当今的挑战,您必须编写一个程序或函数,该程序或函数带有方括号,并确定该字符串是否为 appendable prependable both neither 您可以选择用于每种情况的值。例如,输出1, 2, 3, 4,或'a', 'p', 'b', 'n',或1, 'foo', 3.1415, -17,等等。只要每个输出都是不同且一致的,就可以了。你必须但是,明确指定哪种输出对应于哪种情况。 您可以以最方便的格式返回此值(例如,从函数返回,打印到STDOUT,修改参数,写入文件等)。 您可以假设输入永远不会是有效的大脑或空的。 例子 以下所有输入都是可添加的: )) (((()()())))} )>}] ()[]{}<>) 这些都是可附加的: (({}{}) (((( ([]()())( {<<{ 这些都是两个: …

18
打印一张随机播放的纸牌
输入项 没有 输出量 52张牌。无重复。卡用其Unicode字符表示,例如🂹。 该Unicode代码点遵循以下格式: 前三位数字是1F0。 下一个数字是A,B,C,或D分别为黑桃,红桃,方块,和俱乐部。 下一个数字是1通过C与E用于各种数字/花牌。1是王牌2- A是数字牌,和B,D和E分别是千斤顶,王后和国王。(C是骑士,不是大多数甲板上的骑士。) 输出示例: 🂶🃁🃛🃎🂧🂵🃗🂦🂽🂹🂣🃊🃚🂲🂡🂥🂷🃄🃃🃞🂺🂭🃑🃙🂪🃖🂳🃘🃒🂻🃆🂮🃍🂱🂴🃋🂸🃈🃅🃂🂨🃓🃉🂾🃇🂩🂢🂫🃔🃕 🂤🃝 规则: 这是代码高尔夫球。最短答案胜出。 禁止漏洞。 您的卡组实际上必须是随机的。如果运行20次,则必须生成20个随机(并且很可能是唯一的)输出。 注意 如果仅看到方框,请安装DejaVu字体。

15
查找一个数字可以组成多少个字母数字字符
字母数字字符具有ASCII值: 0-9 -> 48-57 A-Z -> 65-90 a-z -> 97-122 您面临的挑战是采用整数作为输入,并输出使用该数字的连续数字可以输入多少个字符。字符代码可能重叠。666应该有2,因为您有66两次。 测试用例: Input: 5698 Possible characters: '8' (56), 'E' (69), 'b' (98) Output: 3 Input: 564693 Possible characters: '8' (56), 'E' (69) Output: 2 Input: 530923864209124521 Possible characters: '5' (53), 'V' (86), '4' (52) Output: 3 Input: 1111111 Possible characters: …
23 code-golf  string 

16
每日随机高尔夫#8:随机播放无数人
关于系列 首先,您可以像对待其他任何代码高尔夫挑战赛一样对待它,并回答它而不必担心系列赛。但是,在所有挑战中都有排行榜。您可以在第一篇文章中找到排行榜以及有关该系列的更多信息。 漏洞8:随机播放一个无限列表 您应该编写一个函数或程序,该函数或程序将一个无限列表作为输入并返回该列表的改组版本。 关于无限I / O 您可以通过多种方法来输入和产生此挑战的输出: 您可以采用正整数列表或其字符串表示形式,也可以采用字符串或可打印ASCII字符列表(0x20至0x7E,包括0x20至0x7E)。输出格式必须与输入格式匹配。从现在开始,无论您选择哪个选项,我都将数据称为“列表”。 您可以从无限标准输入流中读取列表,并将输出连续写入无限标准输出流中。解决方案不应依赖任何特定值或值序列来确保输出流被定期写入和刷新(例如5,输入列表中只有a时,您不能仅写入输出)。当然,如果您读取列表的字符串表示形式,则可以等到遇到列表分隔符后再试。 在支持它们的语言中,您可以编写一个函数,该函数接受并返回一个惰性无限列表或字​​符串。 在支持它们的语言中,您可以实现一个无限生成器,该生成器将另一个生成器作为输入。 另外,您可以编写一个不带参数的函数,并在每次调用时返回一个输出值。在这种情况下,可以假定已定义一个不带任何参数的函数,并且每次调用时都返回下一个输入值。您可以自由选择该函数的名称。 您可能会假设您的程序可以永远运行并且可以使用无限内存。(可以通过有限的内存来解决此问题,但这意味着您可以泄漏内存。) 关于随机性 对于在无穷大输入的位置i上读取的任何值v,它必须有一个正概率使其最终在无穷大输出的位置i-9到i + 9中(除非该位置为负) )。对于不同的输出位置甚至不同的输入位置,这些概率不必相同。如果您的解决方案还可以将值改组到更远的其他位置,那就很好。 因此,您的解决方案不必将第一个值拖曳到列表后面很远的地方,也不需要将最后一个值拖曳到第一个位置,尽管这样做可以,只要所有位置都离列表9步即可。输入是可能的。 例如,如果您将以下字符串用作输入,则___表示X必须能够在输出中结束的所有位置: ___________________ abcdefghijklmnopqrstuvwxyzXabcdefghijklmnopqrstuvwxyz... 如果您的语言缺少内置的随机数生成器,或者您不想使用它,则可以使用其他种子值作为输入,并使用种子实现自己适合的RNG。此页面可能对此有所帮助。 无论您的解决方案使用哪种实际分布,它都必须几乎肯定在有限(但任意)的时间后产生下一个值。 请简要说明您的实现如何满足这些要求。 计分 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 排行榜 该系列的第一篇文章将产生一个排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头每个答案: # Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes (目前未显示该语言,但是该代码段确实需要并对其进行解析,并且将来我可能会添加一个语言排行榜。)

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.