编程拼图和代码高尔夫

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

19
切比雪夫旋转
考虑一个规则的网格,其中每个单元格都有整数坐标。我们可以将单元格分组为(方形)“环”,其中每个环中的单元格与原点的切比雪夫距离(或棋盘距离)相同。您的任务是获取一个像元坐标,并将该像元在其环内逆时针旋转一个位置。这实现了以下映射: 因此,例如,如果输入是(3, -2)您应该输出(3, -1)。请注意,这(0, 0)是唯一应映射到其自身的输入。 规则 I / O格式相当灵活。您可以使用两个单独的数字,一对数字/列表/数组/元组,单个复数,包含两个数字的字符串等。 您可能会认为-128 < x,y < 128。 您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 测试用例 (0, 0) => (0, 0) (1, 0) => (1, 1) (1, 1) => (0, 1) (0, 1) => (-1, 1) (-1, 1) => (-1, 0) (-1, 0) => (-1, -1) (-1, -1) …

30
密码梯,警察
注意:此挑战已完成。仍欢迎提交,但不能赢取。 这是警察的话题。强盗的线索在这里。 编写输出整数的代码1。如果添加,删除或替换(选择的)单个字符,则代码应输出integer 2。再更改一个字符(相同或另一个),代码应输出3。尽可能继续这样,但最多可以继续10个。ans = 1接受默认输出格式,例如。您可以忽略输出到STDERR(或等效文件)。 您必须显示语言,初始代码的字节数,其适用的整数数量以及初始代码的可选字符数。注意:您不必显露任何字符,但是请记住,显露字符可能会使强盗更难,因为他们必须在相同位置使用相同字符。您可以选择用于表示未公开字符的字符(例如,下划线),但是请确保指定此字符。 警察可以在一周后提供完整的代码,并将提交的文件称为“ SAFE”。获胜的提交将是产生数字10的最短未破解提交。如果没有未破解的提交能够打印10,则产生9的最短代码将获胜,依此类推。请注意,强盗不必进行与您相同的更改,也不必复制确切的代码(除非您揭示所有字符)。它们只能重现输出。 欢迎晚于11月24日发布的投稿,但不符合获胜资格的条件(因为可能会有更少的抢劫犯)。 示例帖子: 以下文章是该语言的呈文MyLang,长度为9个字节,适用于数字1-8。 MyLang,9个字节,8个数字 该提交适用于1-8。未公开的字符用下划线表示:_。 abc____i 排行榜 免责声明:排行榜未经测试,未破解的提交内容可能不会出现在列表中。 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><style>table th,table td{padding: 5px;}th{text-align: left;}.score{text-align: right;}table a{display: block;}.main{float: left;margin-right: 30px;}.main h3,.main div{margin: 5px;}.message{font-style: italic;}#api_error{color: red;font-weight: bold;margin: 5px;}</style> <script>QUESTION_ID=99546;var safe_list=[];var uncracked_list=[];var n=0;var bycreation=function(x,y){return (x[0][0]<y[0][0])-(x[0][0]>y[0][0]);};var byscore=function(x,y){return (x[0][1]>y[0][1])-(x[0][1]<y[0][1]);};function u(l,o){jQuery(l[1]).empty();l[0].sort(o);for(var i=0;i<l[0].length;i++) l[0][i][1].appendTo(l[1]);if(l[0].length==0) jQuery('<tr><td colspan="3" class="message">none yet.</td></tr>').appendTo(l[1]);}function …

14
递增格雷码
介绍 甲格雷码是二进制表示的替代,其中许多是通过切换只有一个位,而不是比特的可变量的递增。以下是一些格雷码及其十进制和二进制等效项: decimal | binary | gray ------------------------- 0 | 0 | 0 ------------------------- 1 | 1 | 1 ------------------------- 2 | 10 | 11 ------------------------- 3 | 11 | 10 ------------------------- 4 | 100 | 110 ------------------------- 5 | 101 | 111 ------------------------- 6 | 110 | 101 ------------------------- …

30
EvenSt环代码-g ol!f
“偶数字符串”是字符的ASCII值的奇偶校验始终交替的任何字符串。例如,字符串EvenSt-ring$!是偶数字符串,因为字符的ASCII值为: 69 118 101 110 83 116 45 114 105 110 103 36 33 这些数字的奇偶性是: Odd Even Odd Even Odd Even Odd Even Odd Even Odd Even Odd 整个过程交替进行。然而,像一个字符串Hello world!是不是一个甚至字符串,因为ASCII值是: 72 101 108 108 111 32 87 111 114 108 100 33 奇偶校验是: Even Odd Even Even Odd Even Odd …
36 code-golf  string 

20
计算Carmichael函数
任务描述 在数论中,Carmichael的函数 λ取正整数 Ñ并返回最小正整数ķ使得ķ的每个整数次幂互质到Ñ等于1个模Ñ。 给定正整数n,您的解决方案必须计算λ(n)。以字节为单位的最短代码获胜。 从理论上讲,您的程序应该可以为任意大的输入工作,但是并不需要高效。 提示 所有λ(n)的序列为OEIS A002322。 非高尔夫的Python实现看起来像 from fractions import gcd def carmichael(n): coprimes = [x for x in range(1, n) if gcd(x, n) == 1] k = 1 while not all(pow(x, k, n) == 1 for x in coprimes): k += 1 return k (在Python中,pow(A, B, …

23
数山羊入睡
有些人数羊入睡。其他人则数山羊。 编写一个程序或函数,该程序接受一个正整数N并输出N-1个清醒的山羊,然后输出一个熟睡的山羊,就好像有人在计数N个山羊,最后他们睡着了一样。 清醒的山羊看起来像这样: \ ___/o> -(___)" '' '' 睡觉的山羊看起来像这样: \ ___/-> ,(___)" `` `` 它们通过相邻山羊的胡须和尾巴之间的单个空间链接在一起: \ \ \ ___/o> ___/o> ___/-> -(___)" -(___)" ,(___)" '' '' '' '' `` `` 输出允许有尾随空格和一个尾随换行符。 以字节为单位的最短代码获胜。 例子 N = 1: \ ___/-> ,(___)" `` `` N = 2: \ \ ___/o> ___/-> -(___)" ,(___)" …

30
斐波那契
定义 F(n)正整数上的斐波那契数列定义如下: 1. F(1) = 1 2. F(2) = 1 3. F(n) = F(n-1) + F(n-2), where n is an integer and n > 2 正整数的斐波那契数是的乘积[F(1), F(2), ..., F(n)]。 任务 给定正整数n,找到的斐波那契n。 眼镜 100合理的计算机必须在5秒钟内计算出fibonacciorial 。 测试用例 n Fibonacci-orial of n 1 1 2 1 3 2 4 6 5 30 6 …

25
扩展一个C数组
在C编程语言中,数组的定义如下: int foo[] = {4, 8, 15, 16, 23, 42}; //Foo implicitly has a size of 6 数组的大小是从初始化元素推断出来的,在这种情况下为6。您还可以以这种方式编写C数组,显式调整其大小,然后按顺序定义每个元素: int foo[6]; //Give the array an explicit size of 6 foo[0] = 4; foo[1] = 8; foo[2] = 15; foo[3] = 16; foo[4] = 23; foo[5] = 42; 挑战 您必须编写将数组从第一种方式扩展到第二种方式的程序或函数。由于您正在编写使代码更长的程序,并且您很讽刺,因此必须使代码尽可能短。 输入将是代表原始数组的字符串,而输出将是扩展的数组定义。您可以放心地假设输入将始终如下所示: <type> …
36 code-golf  string  parsing  c 

13
ASCII艺术中一位老朋友的照片
我希望这张照片对您来说很熟悉。 吃了强力药后,这是吃豆人处于“脆弱”状态的幽灵之一。 挑战 使用ASCII艺术作品在一个小帧中描绘我们的幽灵。在正常比例下(稍后会对此有更多介绍),上图中的每个正方形应对应一个字符,并且框架的上,下应具有一个字符的分隔,并且在虚影的左侧和右侧应具有两个字符的分隔: #################### # # # #### # # ######## # # ########## # # ############ # # ############ # # ### ## ### # # #### ## #### # # ############## # # ############## # # ## ## ## ## # # # ## ## ## # …

14
厕纸之谜
今天,您需要解决一个非常实际的问题:您的厕纸卷上需要多少循环才能容纳一定数量的纸张?让我们看一些事实: 裸露卫生纸筒的直径为3.8厘米 一张卫生纸的长度为10厘米。 一张卫生纸的厚度为1mm。 第一次缠绕圆柱体之前,其周长为3.8 * pi(厘米)。每次在圆柱体上缠绕一张纸时,其半径都会增加.1,因此其周长会增加.2 * PI。使用此信息可以找出装入n张厕纸所需的循环次数。(注意:使用近似值Pi至少应与3.14159一样准确)。 测试用例: n = 1: 10 /(3.8 * pi)= .838循环 n = 2: (我们可以进行多少个完整循环?)1个完整循环= 3.8 * pi = 11.938。 (在第一个循环之后,我们还剩下多少?)20-11.938 = 8.062 (剩下的第二个循环产生多少?)8.062 /(4 * pi)= .642循环 答案:1.642次循环 n = 3: 第一个完整循环= 3.8 * pi = 11.938,第二个完整循环= 4 * pi = 12.566 …

30
使硬币公平
您有一枚可产生0或的硬币1。但是您怀疑硬币可能有偏差,这意味着0(或1)的概率不一定是1/2。 由冯·诺伊曼(von Neumann)提出的一种众所周知的将“有偏见的硬币”“转化”为公平硬币的过程(即获得同样可能的结果)如下。产生(不重叠)两个掷硬币的区块,直到一个区块的两个值不同为止;并在该块中输出第一个值(第二个值也可以,但是出于挑战的目的,我们选择第一个)。直观地看,1可能比更容易0,但01和10将同样有可能。 例如,输入1110...将丢弃第一个块,然后1从第二个块产生a ,... 此过程很昂贵,因为要消耗多个硬币才能产生单个结果。 挑战 取零和一的有限序列(代表原始硬币的抛弃),并根据上述过程产生最大数量的结果,直到消耗完所有输入为止。 如果输入值的数量为奇数,则最后一个块可能不完整。例如,输入序列11111将不产生结果(前两个块具有相等的值,而第三个块不完整)。 规则 输入可以具有任意数量的非负值,不一定是正数或偶数。 输入格式可以是: 零和一的数组; 一串零和一,并带有可选的分隔符。 输出格式可能是: 一串零和一,带或不带分隔符; 零和一的数组; 包含单个零或一的字符串,以换行符分隔; 适合您的语言的任何相似,合理的格式。 代码高尔夫。最少的字节数获胜。 测试用例 这里假定输入和输出为字符串。 Input --> Output '1110' --> '1' '11000110' --> '01' '1100011' --> '0' '00' --> '' '1' --> '' '' --> '' '1101001' --> '0' '1011101010' --> '1111'

2
塔会平衡吗?
介绍 给定一个ASCII塔和风的作用力,编写一个程序或函数来确定塔是否平衡或以哪种方式掉落。 例如,第一座塔平衡了,但是第二座向左倒了。 # # # # ### ### ### ### # # # # ##### ##### ### ### ### # 这是我的第一个挑战。我希望你喜欢它。 方向 塔由相连的砖块组成,#并构成一个刚性物体。每个块是一个正方形,其宽度和高度为一个单位,并且具有恒定的密度。塔上有两种作用力,即重量和风力。所有力分别作用在每个块上,并穿过块的中心。 由于其重量,每个块都具有一个作用在其上的向下力。 而且,在其迎风侧上没有与其相邻的另一个块的每个块具有在其上沿风向水平作用的力。该力的大小作为输入给出。 风的方向由输入中某处的ASCII标志指示。当且仅当风不为零时,输入中才会有一个标志。该标志不影响任何力量。 该标志将与下面显示的完全一样。 Flag design and corresponding wind direction: o~~ ~~o |~~ ~~| ---> <--- 为了澄清起见,该塔是坚固的物体,不会破碎,也不会附着在地面上。但是,您的程序应分别计算每个砌块的力,以确定塔架是否平衡。 例 o~~ |~~ # # > > ### >## …

27
建立节拍器
介绍 几天前,我需要节拍器来做一些事情。我没有空,所以我从App Store下载了一个应用。该应用程序的大小为71 MB !!! 71 MB用于制作tic-toc ...?! 所以我想到了代码高尔夫球,我想知道你们中的某些人是否可以改善这一点。 挑战 寻找一些输出声音的代码。什么样的声音是无关紧要的。如果需要,创建一些声音文件...但是系统提示音也可以完成。(这是我创建的一些声音……没什么特别的。) 输入:节拍器每分钟的节拍输出。 例 这是非高尔夫Java版本!只是为了向您展示任务。 public class Metronome { public static void main(String[] args) throws InterruptedException { int bpm = Integer.valueOf(args[0]); int interval = 60000 / bpm; while(true) { java.awt.Toolkit.getDefaultToolkit().beep(); // or start playing the sound Thread.sleep(interval); System.out.println("Beep!"); } } } …
36 code-golf  music  audio 

14
总和为15
编写一个程序或函数,该程序或函数将非负整数数组作为输入,并按顺序输出带有输入数组元素的一组向量/数组,并进行拆分,以使每个向量的总和为15。 N个元素不会“命中15个”,那么必须使通过15个元素的数字被截断,其余元素将成为下一个向量的第一个元素。直到您到达输入数组的末尾为止。如果最终向量的总和小于15,则必须在末尾添加一个数字以使总和增加。 通过查看示例,我认为规则更容易理解: Input: 3 7 5 10 Output: 3 7 5 <- Sum is 15 10 5 <- 5 is added to make the sum 15 Input: 2 4 5 9 2 3 5 0 2 4 5 0 3 Output: 2 4 5 4 <- Sum 15. 9 …

22
首字母缩略词确实可以明显缩小您的消息感应器
因此,如果短语是单词的缩写,则需要一种更好的方法来解决。您还认为,看看所涉及的短语和单词是否是递归首字母缩写是值得的。 你的任务: 给定一个单词,然后给出一个由行分隔的词组,如果该词组是首字母缩写词,然后是递归首字母缩写词,则输出。(该短语包含其含义) 输入将由字母字符以及空格组成。 您的程序不应区分大小写。 输入/输出示例: 情况1: 输入: Acronyms Acronyms can really obviously narrow your message sensors 输出: True True 情况2: 输入: FAQ frequently asked questions 输出: True False 情况3: 输入: foo bar baz 输出: False False 情况4: 输入: GNU GNU is not Unix 输出: False False 情况5: 输入: Aha …

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.