编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

2
薛定ding的激光
厌倦了对微小家畜的实验,诺贝尔奖获得者ErwinSchrödinger决定寻找最接近的激光,然后将其发射到物体上。因为……科学! 描述 您将得到两分,激光通过和激光束的大小,你必须确定激光束必须走了,可能已经走了,不能去了。 激光束可以是水平,垂直或对角线。对于1号激光束,它们分别如下所示: # # # # ##### # # # # # # 对角激光束也可以翻转。2号激光束看起来像这样: ### ## ##### ### ### ##### ### ### ##### ### ### ### ## 通常,要获得大小为(n)的激光束,只需获取大小为(n-1)的激光束,并在两侧添加大小为(1)的激光束。作为最后一个示例,这是所有大小为3的激光束,在同一“面板”上显示: ###.....#####.....## ####....#####....### #####...#####...#### .#####..#####..##### ..#####.#####.#####. ...###############.. ....#############... .....###########.... #################### #################### #################### #################### #################### .....###########.... ....#############... ...###############.. ..#####.#####.#####. .#####..#####..##### #####...#####...#### ####....#####....### …
24 code-golf 

30
非唯一元素
编写一个程序,查找有符号整数数组的非唯一元素。结果数组可以是任何顺序。 您的答案可能是一个片段,该片段假定输入要存储在变量中(d例如),并求值以得出正确的结果。 测试用例 每个测试用例都是以下格式的一行 input => output。请注意,输出的其他排列也是有效的。 [] => [] [-1, 0, 1] => [] [1, 1] => [1] [3, 0, 0, 1, 1, 0, 5, 3] => [3, 0, 1] [-34, 0, 1, -34, 4, 8, 4] => [-34, 4] 元素的顺序无关紧要。 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。

12
伟大的正弦
介绍 每个人都听说过正弦(sin),余弦(cos),正切(tan),余切(cot),割线(sec)和割线(csc)。几乎每个角度都有它们。 远不如已知的,或记住的,是exsecant(exsec) ,excosecant(excsc) ,正矢(正矢量),和coversine(CVS) 。几乎每个角度都具有这些角度。有些甚至鲜为人知,但我们会坚持下去。 我为这些角度为45°的角度创建了可视化效果。 挑战 创建一个程序,该程序接受一个angle n(以度为单位)的输入,并将输出: 角度正弦 n 角度的余弦 n 角正切 n 角度的割线 n 以下至少之一。此列表中的所有其他项目都将获得-5%的奖励,最多-25%。 角度角度 n 角度余割 n 角形剂 n 角度的 n 角度的正弦 n 角余切 n 如果应用奖金后分数为小数,则四舍五入至最接近的整数。 输入项 您可以通过STDIN或函数调用接受输入。n将传递一个参数。 n 将始终是一个大于0但小于或等于90的整数。 输出量 这是一个正弦为45°的输出示例。所有输出项目必须采用这种格式。项目的顺序无关紧要。 sine: 0.70710678118 所有项目的小数点后必须精确到4个数字(精确到千分之一)。以下是一些四舍五入的示例。 0 -> 0.0000 1 -> 1.0000 0.2588190451 -> 0.2588 …

16
显示树木年轮的年龄
介绍 昨天我看到一个生日难题。恭喜!! 同样在这周,我看了电视节目《骨头》中的一集,其中发现一具尸体被埋在树下。为了计算死亡时间,他们计算了年轮。 之所以形成年轮,是因为树木在冬季生长较慢,在夏季生长较快。因此,您可以通过计算环数来计算树的年龄。您还可以看到自然事件,例如雨季或旱季。 挑战 给定一个整数n >= 1作为输入,编写一个完整的程序以输出树龄轮。 由于环的形状会发生变化,因此请使用三个不同的字符(“ 0”,“ *”,“ +”)来显示气候周期。 1岁 0 2岁 *** *0* *** 3岁 +++++ +***+ +*0*+ +***+ +++++ 4岁 0000000 0+++++0 0+***+0 0+*0*+0 0+***+0 0+++++0 0000000 树的大小是边的平方 2*n - 1 获奖 以字节为单位的最短代码获胜。

7
与其他程序的源进行XOR加密程序
编写两个程序,以便当它们的源代码字节一起进行XOR-d运算时,将生成第三个有效程序,并且所有程序都使用相同的语言。三个程序中每个程序的长度(以字节为单位)必须相同。 第一个程序应该输出A。第二个程序应该输出B。第三个程序应该输出C。 换行符是可选的,但是如果其中一个输出换行符,则其他两个也都必须换行。 如果使用任何命令行标志,则每个程序都必须使用相同的标志,即,所有三个程序必须以相同的方式执行。如果您使用的是PHP之类的语言,传统上是以相同的字符组合开头的,例如,<?但是有一个命令行选项可以删除那些字符,那么您可以改用它,即PHP必须仅从命令行运行。 不允许输入。每个程序必须是独立的。 如果您的程序是完全用ASCII编写的,则下表可能会有所帮助: Codes 0x20 - 0x3F !"#$%&'()*+,-./ 0123456789:;<=>? Codes 0x40 - 0x5F @ABCDEFGHIJKLMNO PQRSTUVWXYZ[\]^_ Codes 0x60 - 0x7E `abcdefghijklmno pqrstuvwxyz{|}~ 编辑 允许使用非印刷字符,因为我最初并未明确禁止使用。但是,如果您要发布仅使用可打印字符的版本,那就太好了!(以最短者为准。)现在,使用控制代码的“明智因素”已经逐渐消失... 结束编辑 对来自同一块的任何两个代码进行XOR运算将生成小于0x20的代码,因此这不是有效的可打印ASCII代码,例如0x41(A)XOR 0x5A(Z)= 0x1B。对来自不同块的任何两个代码进行XOR运算,将从第三个块产生一个代码,例如0x61(a)XOR 0x54(T)= 0x35(5)。 | @` !Aa "Bb #Cc $Dd %Ee &Ff 'Gg (Hh )Ii *Jj +Kk ,Ll -Mm .Nn /Oo 0Pp …

16
星期一迷你高尔夫#3:字谜距离
星期一迷你高尔夫:每周一发布(希望!)一系列简短的代码高尔夫挑战赛。 (对不起,这有点晚。) 我敢肯定,你们大多数人都听说过Levenshtein distance,一种用于计算两个琴弦之间距离的算法。嗯,这个挑战是关于实现我自己的发明*的类似算法,即anagram distance。主要区别在于字符的顺序无关紧要。而是仅测量一个字符串或另一个字符串唯一的字符。 挑战 挑战的目标是编写一个程序或函数,该程序或函数接受两个字符串并返回它们之间的字谜距离。实现此目的的主要方法是使用以下逻辑: 将两个字符串都转换为小写,并(可选)按字母顺序对每个字符进行排序。 当字符串中至少包含一个相等的字符时,请从每个字符串中删除该字符的第一个实例。 添加剩余字符串的长度,并返回/输出结果。 例 如果输入是: Hello, world! Code golf! 然后,将它们转换为小写并排序:(按JS的默认排序;请注意前导空格) !,dehllloorw !cdefgloo 删除两个字符串中的所有字符,我们最终得到: ,hllrw cfg 因此,原始两个字符串之间的字谜距离= 6 + 3 = 9。 细节 字符串可以采用任何明智的格式。 字符串将仅包含可打印的ASCII。 字符串本身将不包含除常规空格以外的任何空格。(没有选项卡,换行符等) 只要结果相同,就无需使用此精确算法。 测试用例 输入1: Hello, world! Code golf! 输出1: 9 输入2: 12345 This is some text. .txet emos si …
24 code-golf  string 

3
您可以将六聚氰胺折叠成立方体吗?
我的孩子最喜欢的玩具之一就是这样的玩具。实际上,它是我最喜欢的玩具之一-我一直在玩它,它给了我一些PPCG挑战的想法。这是一个: 编写一个程序或函数,将ASCII线条图作为输入,并确定是否折成立方体。 输入项 输入将仅由一个这样的正方形构成的六边形组成: +-+ | | +-+ 例如,有效的输入heximino为: +-+ | | +-+-+-+-+ | | | | | +-+-+-+-+ | | +-+ 输出量 如果六氨基可以折叠成立方体,则为真实值,或者 否则为假值。 为了节省我们的工作量,维基百科具有以下出色的图形: 所有35种六聚氰胺: 折叠成立方体的所有11种六聚氰胺: 笔记 输入的六胺可能会发生旋转或反射,而不仅仅是上图所示 输入的六氨基酸可能有前导空格,但会相对于它们正确对齐 输入的六边形可能在行的末尾有尾随空格,在输入的末尾有尾随新行

16
让我们看看一些动作!
谁不喜欢快速嘈杂的汽车动作电影,尤其是那些发生大量车祸的电影?谁不喜欢ASCII艺术动作镜头? 场景是: 两辆汽车从一条直线道路的相对两侧开始(之间有60个间隔)。他们开始以恒定的速度向彼此行驶。左边的汽车以每秒1个车位的速度行驶,右边的汽车以每秒2个车位的速度行驶。 显然,汽车无法相互通过,因此对于n ≥ 20场景,将是两辆坠毁的汽车,它们在发生碰撞的位置举起了引擎盖。 作为电影爱好者,我想时不时地暂停场景,只是为了欣赏它的美丽。 给定一个整数n(函数自变量或STDIN),表示从场景开始算起的秒数,请显示该时刻的场景。 这是开始的场景,前轮之间有60个空格: __ __ _/ \_ _/ \_ o o o o 这是11秒后的场景: __ __ _/ \_ _/ \_ o o o o 这就是崩溃后的样子(请注意,崩溃后引擎盖已打开): __ __ _/ \/\/ \_ o oo o 我只想看两辆车相撞,所以空格,换行符,++都没关系。 这是代码高尔夫,因此以字节为单位的最短代码获胜。如果后来添加的答案比当前接受的答案短,则仍然可以获胜。

10
两路回文闭合发生器
介绍 输入字符串的回文式闭合是可以从输入字符串中构造的最短回文,其中最终回文以输入字符串开头。 对于这一挑战,我们将考虑双向回文封闭 输入字符串的左回文闭合是从输入字符串开始的最短回文。 输入字符串的正确回文闭合是以输入字符串结尾的最短回文。 输入字符串的双向回文闭合是输入字符串的左回合或右回文中的较短者。 任务 您的任务很简单。给定一个字符串(仅由可打印的ASCII,换行和空白组成),输出该字符串的双向回文式闭包。如果打成平局,则左或右回文式封条都是有效输出。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,然后将结果打印到STDOUT(或最接近的替代方案)或将其作为字符串返回。 您可以假定输入永远不会是空字符串。 几个例子: <Input> -> <Output> "abcdef" -> "abcdefedcba" (or "fedcbabcdef") "abcba" -> "abcba" "abcb" -> "abcba" "cbca" -> "acbca" 最初的想法归功于VisualMelon,最后的想法归功于Martin和Zgarb 本文首先使用并定义了回文封闭,左回文封闭和右回文封闭这两个术语。

30
计算字符串的平均字符
任务 您的任务是产生包含字符串平均字符的字符串。结果的第一个字符是第一个字符的平均字符(即第一个字符)和两个第一个字符的第二个字符的平均值,依此类推。 什么是普通字符? 字符串是字节数组。平均字符串的可以通过计算平均字符的ASCII值的字符串,并采取相应的ASCII字符被发现。 例如,字符串"Hello!"可以写为字节序列72 101 108 108 111 33。ASCII值的平均值为533/6 = 88.833 ...,将其四舍五入为最接近的整数时,我们得到89,这是大写字母的ASCII码Y。 规则 您可以假定输入仅包含可打印的ASCII字符 输入可以从stdin读取,也可以作为命令行参数或函数参数读取 输出必须是标准输出。如果您的程序是函数,则还可以返回否则将打印的字符串。 它必须是整个程序或函数,而不是摘要 适用标准漏洞 整数按函数floor(x+0.5)或类似函数进行取整。 我怎么赢? 这是代码高尔夫球,因此获胜时的最短答案(以字节为单位)。 例子 Hello! → HW^adY test → tmop 42 → 43 StackExchange → Sdccd_ccccddd
24 code-golf  string 

23
凯撒等效
如果相应字符之间的距离(向上计数)相同,则两个字符串为“凯撒等效项”。是的,我补了这个学期。这是一个例子: “ Abc”和“ Cde”是等效的,因为 distance from a-c == 2 distance from b-d == 2 distance from c-e == 2 大写字母没有任何区别。 “ Hello”和“ World”不等同于Caesar,因为 distance from h-w == 15 distance from e-o == 10 distance from l-r == 6 distance from l-l == 0 distance from o-d == 15 “ Abcd”和“ …
24 code-golf  string 

4
围起来1009像素
输出是包围1009像素的形状。 形状必须采用单个,闭合,不相交的环的形式。 输入是一个正的非零整数。 每个输入必须产生唯一的输出-也就是说,每个输出必须与使用较低输入生成的输出唯一。 胜利取决于最大的输入限制: 您提交内容的输入限制被认为比提供非唯一或无效输出的最低输入少1。 例如,如果为输入1、2或3而不是4产生有效且唯一的输出,则您的输入限制为3。 源代码限制为1009字节。如果有平局,则字节数最少的条目获胜。 限制和说明: 形状的最大尺寸为109 x 109像素。大小包括用于绘制形状的线。 一条线是恒定的宽度。 封闭的空间必须完全由线条封闭-您不能使用图像文件的边界。 封闭的1009像素仅指封闭的空间。它不包括该行。 输出是图像。 没有其他图形限制-例如颜色,线条粗细等。 输出的唯一性仅指封闭的空间。如果封闭的空间不是唯一的,则线的更改或其他图形更改将是无关紧要的。 形状的转换并非唯一。旋转,反射和任何其他变换算作唯一的。 输出必须可重现-相同的输入将始终提供相同的输出 输出之间不需要有关系,连续的或其他的关系。 在提交的“输入限制”之外,没有定义的输出。 不允许其他输入或获取外部数据。 一条线必须是连续的,即像素必须接触(接触角点计数)。 像素是您的绘图方法使用的“绘图”的最小单位,不一定与屏幕像素相对应。 例子: 这是有效形状的示例: 以下形状无效: 编辑:线接触: 封闭空间必须是连续的,定义为像素接触。触角至关重要。 线不能在其外侧封闭任何空间。@Sparr发布的这张图片说明了这一点-仅每行的第一个形状有效: 线的外侧可以接触,但不能以包围空间的方式接触。 触摸线可能不会重叠-例如,两条触摸1像素粗的线的总厚度为2px,从不为1px。

6
砖结构稳定吗?
让我们将标准砖石表示为[__](忽略顶部开放的事实)。当这些砖块堆叠在一起时,每隔一层就会偏移一半砖块,这在砖块构造中很常见: [__][__][__][__] [__][__][__][__] [__][__][__][__] [__][__][__][__] 因此,每个砖块最多具有六个邻居,并且不可能有两个砖块直接垂直排列。 关键是这些砖的布置不是用灰泥砌成的,而只是靠重力保持在一起。因此,重要的是结构中的每个砖块都必须稳定,否则整个结构都将不稳定。 单个积木可以通过三种方式稳定: 地面上的任何砖块(最低的砖块)都是稳定的。 任何在其正下方有两个砖块的砖块都是稳定的: [__] <- this brick is stable [__][__] <- because these bricks hold it up 在同一侧上,下两面都具有砖块的任何砖块都是稳定的: [__] [__] [__] [__] <- these middle bricks are stable [__] [__] because the upper and lower bricks clamp them in [__] [__] [__] [__] …

26
用散列包围字符串
我已经在Python中做到了这一点,但似乎可以将其缩短很多: txt = input("Type something.. ") c = "#" b = " " print(c * (len(txt) + 4)) print(c, b * len(txt), c) print(c, txt, c) print(c, b * len(txt), c) print(c * (len(txt) + 4)) 因此,如果用户键入: Hello World 程序打印: ############### # # # Hello World # # # ############### …
24 code-golf  string 

14
打印所有国家代码
ISO 3166-1是定义所有国家/地区代码的标准。众所周知的两个字母的代码(US,GB,JP等)称为Alpha-2代码。 有两个字母,只有26 2 = 676个可能的代码,可以很好地排列在网格中。该表可以用作概述,以查看实际使用,保留等的代码。 这个挑战很简单:您将使用纯ASCII将这个网格的所有分配的代码打印到STDOUT,如下所示: AA AC AD AE AF AG AI AL AM AN AO AP AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BJ BL BM BN BO BQ BR BS BT BU BV BW BX BY BZ …

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.