Questions tagged «code-golf»

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

27
自我成长编码编码编码编码
编写一个程序(或函数)(我们称其为P1),然后在运行时输出另一个相同语言的程序P2,并且比P1长1个字节。 程序P2运行时,应输出比P2长1个字节的第三个程序P3。P3必须输出比P3长一个字节的程序P4,依此类推。P5,P6,...,P∞相同。 程序链应无限期运行,或到达解释器不再处理的地方(但必须保留为该语言中理论上有效的程序) 规则 禁止标准漏洞 链中的所有程序都应使用一种语言 没有输入。输出转到标准输出或函数返回值 该程序必须在一段时间后结束。在特定时间点后停止生成输出但永不终止的程序不符合条件 每种语言中以字节为单位的最短程序P1获胜!
41 code-golf  quine 

21
轻松记住数字
容易记住但理论上不易制作的数字 您面临的挑战是用任何一种语言生成符合以下条件的统一随机数的程序/功能: 长度为5位数字 有两个单独的重复数字对 一组重复的数字位于开头或结尾,并且数字彼此相邻 奇数被另一对数字包围 两个数字对和另一个数字应该都是唯一的 您的程序可以自行决定是否支持带前导零的数字。如果支持前导零,则必须将其包括在输出中:06088,而不是6088。如果不支持前导零,则根本不应生成诸如06088的数字。 测试用例 接受的输出: 55373 55494 67611 61633 09033 99757 95944 22808 65622 22161 不接受的输出: 55555 77787 85855 12345 99233 12131 abcde 5033 在此pastebin链接中可以找到更多可接受的测试用例。 这些是用这个python程序制作的: 随机导入 对于我在范围(100)中: 如果random.randint(0,100)> = 50:#将对在开始时接触如果为true temp = []#工作数组 temp.append(random.randint(0,9))#附加随机数字 temp.append(temp [0])#再次追加相同的数字 x = random.randint(0,9) 而x == temp [0]: x …

11
在十进制干草堆中找到二进针
挑战 您得到: 一个非空的,未排序的正整数列表h(干草堆) 正整数n(针) 您的任务是返回h的排列的所有唯一十进制串联的列表,其二进制表示形式包含n的二进制表示形式。 例子 h = [1,2,3] n = 65 只有一个匹配的串联,因此预期的输出为[321]。 h = [1,2,3] n = 7 这次,存在包含二进制模式111的三个串联。预期输出为[123, 231, 312]。 h = [12,3] n = 7 只有两个排列可用,并且都匹配。预期输出为[123, 312]。 h = [1,2,2] n = 15 唯一匹配的串联是122(二进制1111010,包含1111),因此预期输出是[122]。需要注意的是两个置换实际上导致122,但你是不是允许输出[122, 122]。 澄清和规则 您可以将指针作为整数(65),代表十进制值"65"的字符串()或代表二进制值的字符串("1000001")。 您可以将干草堆当作本机数组/对象/整数集([11,12,13]),本机数组/对象/字符串集代表十进制值(["11","12","13"])或带分隔符的十进制值字符串("11 12 13"或"11,12,13")。您也可以选择使用数字数组(例如[[1,1],[1,2],[1,3]])作为变体。 输出必须遵循上述针对干草堆的格式之一,但不一定要相同。 您不应该处理最高十进制连接数大于语言中可表示的最高无符号整数的干草堆。 除此之外,您的代码理论上应该支持任何输入-假设有足够的时间和内存。 这是SPARTA! code-golf,所以最短答案以字节为单位! 测试用例 Haystack …

30
像兔子一样跳过!
给定任何合理格式的非负整数列表,请对其进行迭代,并跳过与您踩到的每个整数一样多的元素。 这是一个工作示例: [0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [] ^ First element, always include it [0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [0] ^ Skip 0 elements [0, 1, 0, 2, 5, 1, 3, 1, 6, 2] | [0, 1] ^ …

30
这最终将停止……
给定输入字符串S,S按以下方式打印,后跟非空分隔符: 步骤1:S有1/2机会被打印,并且有1/2程序终止的机会。 步骤2:S有2/3机会被打印,并且有1/3程序终止的机会。 步骤3:S有3/4机会被打印,并且有1/4程序终止的机会。 … 步骤n:S有n/(n+1)机会被打印,并且有1/(n+1)程序终止的机会。 笔记 输入字符串仅包含您语言的字符串类型可接受的字符。 可以使用任何非空分隔符,只要它始终相同即可。预期S在程序终止前的最后一次打印之后将打印分隔符。 该程序有1/2机会在打印任何内容之前终止。 尾随新行是可以接受的。 您的答案必须真正地尝试遵守所述的概率。显然,当n大时,这将越来越不正确。正确解释您的答案中的概率是如何计算的(以及为什么它们尊重规范,而忽略伪随机和大数问题)就足够了。 计分 这是代码高尔夫球,因此最短的答案以字节为单位。

25
像热一样将其排序
如这个问题所述: 由David Morgan-Mar设计的Dropsort是线性时间“排序算法”的一个示例,该算法可以生成一个列表,该列表实际上是经过排序的,但仅包含一些原始元素。任何不小于其最大元素数量的元素都将从列表中删除并丢弃。 要使用他们的测试用例之一,请输入{1, 2, 5, 4, 3, 7}yields {1, 2, 5, 7}as 4和as ,3因为它们小于先前的“ sorted”值5。 我们不想“排序”算法,我们希望它们成为真正的交易。因此,我希望您编写一个程序,给定一个数字列表,该程序输出一个DropSorted列表列表(作为完整的排序算法,我们需要合并这些列表,但是 之前已经完成了合并两个排序列表的操作,并且要求您再次执行此操作几乎是在问两个问题,因此,这个问题专门是我们完整的DropSort的“拆分”步骤。 但是,清单的安排和内容至关重要。程序的输出必须等同于DropSort的输出,然后是丢弃值的DropSort的输出,依此类推,直到只有一个排序链列表为止。同样,借用现有的测试套件(并添加另外两个): Input -> Output {1, 2, 5, 4, 3, 7} -> {{1, 2, 5, 7}, {4}, {3}} {10, -1, 12} -> {{10, 12}, {-1}} {-7, -8, -5, 0, -1, 1} -> {{-7, …

25
告诉我我的控制台尺寸!
任意两位十进制格式 *的输出端子尺寸(列和行)。例如,输出可能是80x25。 启示。提示。 *输出必须在单个或两个连续的行上同时具有两个度量,并且输出的前导和/或尾随行可能不超过一个(可选地,后跟换行)。(最多四行)行不得超过max(cols,1 + len(str(cols))+ len(str(ro‌ws))))。
41 code-golf 

30
提示
对于今天的挑战,您必须编写一个可替换字符串大小写的程序或函数。但是,您必须忽略非字母字符。这意味着每个字母字符必须有一个不同的情况下,比前面和下面的字母字符。例如,这比每隔一个字母大写更复杂。如果您使用诸如 hello world 并将所有其他字符转换为大写,您将获得: hElLo wOrLd 如您所见,小写字母o后面是小写字母w。这是无效的。相反,您必须忽略空格,从而得到以下结果: hElLo WoRlD 所有非字母字符必须保持相同。只要输出始终交替,输出就可以以大写或小写开头。这意味着以下内容也是可接受的输出: HeLlO wOrLd 不管输入大小写如何,您的程序都应该可以工作。 输入字符串将只包含可打印的ASCII,因此您不必担心不可打印的字符,换行符或unicode。您的提交可以是完整程序,也可以是函数,并且您可以采用任何合理的格式进行输入和输出。例如,函数自变量/返回值,STDIN / STDOUT,读/写文件等。 例子: ASCII -> AsCiI 42 -> 42 #include <iostream> -> #InClUdE <iOsTrEaM> LEAVE_my_symbols#!#&^%_ALONE!!! -> lEaVe_My_SyMbOlS#!#&^%_aLoNe!!! PPCG Rocks!!! For realz. -> PpCg RoCkS!!! fOr ReAlZ. This example will start with lowercase -> tHiS eXaMpLe WiLl …
41 code-golf  string 

30
远离零
任务 给定一个非负整数n,则输出1if n为0,并输出else的值n。 输入项 非负整数。 如果您想接受该字符串作为输入,则该字符串将与以下regex:相匹配:/^(0|[1-9][0-9]*)$/即,它不得有任何前导零,除非是0。 如果接受实整数作为输入,则可以假定该整数在语言的处理能力之内。 输出量 正整数,如上所述。不允许前导零。您的输出应与regex相匹配/^[1-9][0-9]*$/。 测试用例 input output 0 1 1 1 2 2 3 3 4 4 5 5 6 6 7 7 计分 这是代码高尔夫球,因此最短答案以字节为单位。 有标准漏洞。

30
这个数字是-2的整数次幂吗?
有很多聪明的方法来确定数字是否为2的幂。这不再是一个有趣的问题,因此让我们确定给定的整数是否为-2的整数次幂。例如: -2 => yes: (-2)¹ -1 => no 0 => no 1 => yes: (-2)⁰ 2 => no 3 => no 4 => yes: (-2)² 规则 您可以编写程序或函数,并使用接收输入和提供输出的任何标准方法。 您的输入是一个整数,如果该整数是-2的整数次幂,则输出必须是一个真实值,否则,则必须是一个虚假值。不允许其他输出(例如警告消息)。 通常的整数溢出规则适用:您的解决方案必须能够在语言的假设(或实际)版本中使用任意大整数,默认情况下,所有整数都是无界的,但是如果您的程序由于实现而在实践中失败不支持大整数,这不会使解决方案无效。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 获奖条件 这是一场代码高尔夫球比赛:字节数最少(在您选择的编码中)的答案是获胜者。

15
确定您的源代码中的数字是否为2017易写的无素数
在我一直挑战的所有年份中,2017年是第一年。因此,问题将是关于质数及其性质。 您的任务是生成一个将任意大的正整数作为输入的程序或函数,并输出或返回该数字是否为2017易碎的数字,即该数字中最大的质数是否为2017或更小。 一些示例输入及其输出: 1 (has no prime factors) true 2 (= 2) true 80 (= 2 x 2 x 2 x 2 x 5) true 2017 (= 2017) true 2019 (= 3 x 673) true 2027 (= 2027) false 11111 (= 41 x 271) true 45183 (= 3 x 15061) …

30
可以用(3 ^ x)-1格式写这个数字吗?
挑战: 创建一个接受正整数的程序,并检查它是否可以(3 ^ x)-1的形式编写,其中X是另一个正整数。 如果可以,输出X 如果不能,则输出-1或伪造的语句。 输入/输出示例 输入: 2 可以写成(3 ^ 1)-1,所以我们输出x就是1 输出: 1 输入: 26 26可以写成(3 ^ 3)-1,所以我们输出x(3) 输出: 3 输入: 1024 1024不能以​​(3 ^ x)-1的形式写入,因此我们输出-1 输出: -1 这是代码高尔夫球,因此最少的字节数获胜 相关OEIS:A024023

30
写句探测器
甲俳句是三行诗,具有5/7/5 音节计数,分别。 一个俳句-W是诗与三行,有5/7/5 字计数,分别。 挑战 编写一个程序,如果输入的是haiku-w,则返回true,否则返回false。 有效的haiku-w输入必须包含3行,并用换行符分隔。 第1行必须包含5个字,每个字之间用空格隔开。 第2行必须由7个单词组成,每个单词用空格分隔。 第3行必须包含5个字,每个字用空格隔开。 例子 The man in the suit is the same man from the store. He is a cool guy. 结果:正确 Whitecaps on the bay: A broken signboard banging In the April wind. 结果:错误 规则 这是代码高尔夫球,因此最短的答案以字节为单位。 适用标准代码高尔夫球漏洞。禁止作弊。 其他布尔返回值(例如1和0)也是可以接受的。 也可以接受长度为3的字符串列表作为输入。 有效的haiku-w输入不应包含前导或尾随空格,也不能有多个空格分隔单词。

30
挑战数组#1:交替数组
交替阵列 一个交替阵列是其中两个(不一定不同)值交替的任何长度的列表。也就是说,所有偶数索引项都相等,所有奇数索引项都相等。 您的任务是编写一个程序或函数,当给出正整数列表时,如果该程序或函数truthy是交替的,falsy则输出/返回。 这是代码高尔夫球,因此最短的代码(以字节为单位)获胜! 边缘案例: [] -> True [1] -> True [1,1] -> True [1,2,1] -> True 其他测试用例: [1,2,1,2] -> True [3,4,3] -> True [10,5,10,5,10] -> True [10,11] -> True [9,9,9,9,9] -> True [5,4,3,5,4,3] -> False [3,2,1,2,1,2] -> False [1,2,1,2,1,1,2] -> False [2,2,3,3] -> False [2,3,3,2] -> False 例 这是一个示例,您可以使用Python …

10
方形,钻石,方形,钻石
任务 给定一个非空的小写ASCII字母字符串a- z,请使用第一个字符,并: 用第二个字符的副本方块围住它, 用第三个角色的副本菱形包围它, 用第四个字符的副本方块围住… …在正方形和菱形边框之间交替,直到字符串结尾。边框之间的空白应由ASCII空格()表示。 要添加正方形边框,请在整个当前“工作数组”周围精确绘制一个正方形: sssssssssss t s t s t t s t t s t t s t t s t aaa t s t aaa t s t aca t => st aca ts t aaa t s t aaa t s t t …

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.