编程拼图和代码高尔夫

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

9
展开六角形源代码
介绍 如果您不熟悉Hexagony,那是MartinBüttner创建的一种深奥的语言。问题是该语言接受程序的多种形式。以下程序都是等效的: abcdefg 和 a b c d e f g 因此,基本上,代码已汇总为规则的六边形。但是请注意,在代码中添加新命令abcdefgh将导致以下程序: a b c d e f g h . . . . . . . . . . . 如您所见,第一步是将代码汇总成一个六边形,然后在六边形中用no-ops(.)填充到下一个居中的六边形数字。 您的任务很简单,当给定字符串(源代码)时,输出完整的六角形源代码。 规则 您可以提供程序或功能。 允许前导空格,但仅当六角形不变形时才允许 允许尾随空格。 请注意,程序中的空格将被忽略。所以a b c等于abc 仅使用可打印的ASCII字符(32 - 126),因此仅常规Space字符被忽略。 假设字符串的长度大于0。 这是代码高尔夫球,因此以最少的字节提交为准! 测试用例 Input: ?({{&2'2':{):!/)'*/ Output: ? …

24
在没有Y的情况下做X
通常,据说“不做Y就做X”可能是初学者写作挑战的陷阱(来源)。但是,我很自大,并且认为我绝对可以在没有Y的情况下做出X。随便 哦,是的,这会很好。 挑战:给定一个n大于或等于1 的奇数整数,输出n由无可打印的ascii字符(“ y”和“ Y”)组成的边长的ex ,以及空格。所有允许的字符都必须有非零的出现机会,但不一定是统一的。这是一个代码高尔夫球,因此以字节为单位的最短代码获胜。但是,您应该将每个字符随机化-也就是说,除非有偶然的机会,否则ex的支撑不应相等。 出现的字符 !#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXZ[\]^_`abcdefghijklmnopqrstuvwxz{|}~" 构建前 边长1 x 边长3: x x x x x 边长5: x x x x x x x x x 等等 输出示例 input output empty line 3 h 2 ^ 9 5 1 : 5 D 1 W z W q j …

9
帮我解决微积分!
我喜欢编程并且知道每种语言,但是我很喜欢数学。不幸的是,我的学校要求计算机专业的学生必须修一年的微积分。下周有测试,我不知道任何衍生公式! 请帮助我找到公式。我需要备忘单-一个程序(要尽可能短,这样我的老师就不会注意到它),需要一个表达式(如4*x^3-2)作为输入并输出导数。(我不在乎输入和输出是否使用命令行参数,STDIN,STDOUT或其他参数,因为无论如何我都是在脑海中进行所有计算。) 该测试涵盖以下类型的功能: 常数,例如-3或8.5 幂函数,例如x^0.5或x^-7 指数函数,例如0.5^x或7^x(基数始终为正) 常数乘以函数,例如3*x^5或-0.1*0.3^x 多种功能的总和与差,例如 -5*x^2+10-3^x 我的老师总是按照完全相同的方式来格式化他的问题,如上所述。他也不使用任何小数,pi或e之类的数字,也不使用任何大数(大于1000)。他从不使用括号,并且始终使用星号(*)显示乘法。使用的唯一变量始终是x。 另一方面,我的老师对答案很宽容。只要很清楚答案在说什么,就不需要完全简化它们或完全按照上面显示的格式设置它们。 虽然我可以使用任何语言,但请记住,我自己无法弄清楚派生词。因此,如果程序使用内置函数来处理方程式或计算导数,则将无法使用它。 在测试期间,除了备忘单上的程序之外,我将无法访问Internet或任何文件。 注意:这种情况完全是虚构的。在现实生活中,欺骗和帮助他人作弊是错误的,绝不应该这样做。

16
从侧视图确定骰子值
编写程序或函数,将骰子的左和右值作为整数(1-6),并在顶部返回值。 骰子布局: +---+ | 1 | +---+---+---+---+ | 2 | 3 | 5 | 4 | +---+---+---+---+ | 6 | +---+ ,^. <´ 5 `> <-- Top value |`._,´| .6 | 4, <-- Side values `.|,´ 因此输入6 4将返回5。 顺序很重要: 2 3 -> 1 3 2 -> 6 程序不必使用无效的输入值。 为了阻止明显的方法(将表与所有组合一起使用),不允许使用任何内置的文本编码或解压缩程序,基本编码或任何其他类似的减小大小的方法。请注意,只要未使用某些现成的库函数完成操作,仍允许使用table并允许滚动自己的解压缩。 仅供参考,以下是所有组合(即所有可能的输入和输出)的表格: …
52 code-golf 

7
机器人发现小猫
挑战 按字符数计算的最短代码,可以帮助Robot以尽可能少的步骤找到小猫。 高尔夫球手,这是一个危机时刻-小猫失踪了,找到它是机器人的工作!机器人需要以最短的路径到达小猫。但是,Robot的方式存在很多障碍,他需要您为他编写解决方案。 机器人曾经有个程序可以帮他做,但是那个程序丢失了,机器人也没有备份:(。 Robot的运行时间不是最好的,Robot必须从源代码中读取最少的字符,花费的时间最少,这意味着可以更快地找到Kitten! 机器人的记忆包含他当前所在位置的地图,其中顶部代表北,底部代表南,右代表东,左代表西。机器人总是处在一个未知尺寸的矩形房间中,周围环绕着墙壁,这#在他的雷达图中表示。机器人可以进入的区域以空格表示。 机器人的雷达还会扫描房间中的许多障碍物,并以各种ASCII字母标记它们。机器人不能走过这些障碍。雷达会将Kitten标记为特殊的ASCII字符K,而Robot的位置标记为R。 机器人的导航系统是这样工作的:他可以理解二重方向和应该移动的运动单位数-例如,N 3意思是“向北移动3个运动单位”。制作机器人的雷达图,使运动单位为一个ASCII字符。机器人只能沿4个方向行驶,不能对角线行驶。 勇敢的小猫保护者,您的任务是一次读取机器人的雷达图,并输出最少的方向,最小的移动单位行进距离。确保机器人至少有一条通往小猫的路径。 为确保Robot不会浪费时间执行有故障的程序,该程序不会帮助Robot找到Kitten,我鼓励您,勇敢的Kitten Saver,使用Robot过去的程序的此输出,以确保没有时间浪费在寻找Kitten上! 测试用例 Input: ###################### # d 3 Kj # # # # R # # q # ###################### Output: E 13 N 2 Input: ###################### # d r 3 Kj # # p p # # T X # …

14
Python到底有多慢(第二部分)?
这是Python到底有多慢?(或者您的语言有多快?)。 事实证明,对于我的最后一个问题,获得x100加速有点太容易了。对于那些喜欢挑战但又想要更艰苦,可以真正使用其低水平技能的人,这是第二部分。挑战是要在我的计算机上测试以下python代码的速度提高100倍。 为了更加困难,我这次使用pypy。对于我来说,当前时间是使用pypy 2.2.1的1分7秒。 规则 第一个提交我可以运行的代码的人是正确的,并且在我的计算机上运行的速度快100倍,将获得50分的奖励。 一周后,我将以最快的代码奖励胜利。 import itertools import operator import random n = 8 m = 8 iters = 1000 # creates an array of 0s with length m # [0, 0, 0, 0, 0, 0, 0, 0] leadingzerocounts = [0]*m # itertools.product creates an array of all …

14
数字之间的引力
重力是一种可以吸引任意两个物体的力。在这个挑战中,我们的对象将是数字,质量将是它们的价值。为此,我们不在乎力的大小,而在意力的方向。 想象一下这组数字 [1 6 9 4 6 9 7 6 4 4 9 8 7] 它们中的每一个都会在自身与相邻数字之间产生作用力。在某些情况下,这将导致另一个数字被吸引(移动)到一个数字上。当数字大于相邻数字时,它会吸引它。让我们看一下我们之前的示例: [1 → 6 → 9 ← 4 6 → 9 ← 7 ← 6 ← 4 4 → 9 ← 8 ← 7] 该数字1不够大,无法移动6,但是数字6等等。基本上,数字将移动到最大的相邻数字(也大于数字本身)。如果两个相邻的数字相等,则不吸引它们。当数字和相邻数字相等时也会发生这种情况。 这仅是为了显示吸引力,但是之后会发生什么呢?由于吸引而发生碰撞的数字相加: [20 32 28] 因此,基本的挑战是,给定一组数字,输出吸引的一组数字的结果。 例子1 Input => [10 15 …
52 code-golf 

11
将一对整数相等
这是受到我在互联网上某个地方看到的数学问题的启发,但不记得在哪里(更新:原始问题是在数学谜语subreddit上找到的,并提供了一个证明,如果有可能,还请参见此Math SE帖子),询问证明以下过程是否可以用于任意任意整数对(据我所记得,任何给定的整数对都可以): 给定一对整数j和k,将它们中的一个加倍并将另一个相加,得到一对新的整数,即(j,k)->(j + 1,k * 2)或(j * 2,k + 1)。然后,使用那些整数重复此过程,以使一对整数相等。 这些给定的示例不一定是最佳的,但是显示了如何对正整数,负整数或零整数进行此过程: (2, 5) -> (3, 10) -> (6, 11) -> (12, 12) (5, 6) -> (6, 12) -> (7, 24) -> (14, 25) -> (28, 26) -> (56, 27) -> (112, 28) -> (113, 56) -> (226, 57) -> …

12
5、2、16、3580,接下来是什么?
考虑十进制的五的正整数幂。这是前25个,右对齐: X 5^X 1 5 2 25 3 125 4 625 5 3125 6 15625 7 78125 8 390625 9 1953125 10 9765625 11 48828125 12 244140625 13 1220703125 14 6103515625 15 30517578125 16 152587890625 17 762939453125 18 3814697265625 19 19073486328125 20 95367431640625 21 476837158203125 22 2384185791015625 23 11920928955078125 24 …

29
将日期编码为平安夜格式
这篇文章发表的那天是平安夜。明天将是圣诞节。昨天是平安夜。两天后 Christmas Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve Eve …
51 code-golf  string  date 

25
创建一个Paint程序!
介绍 有一天,您正在向孩子展示如何在计算机上绘画。您mspaint.exe在运行栏中键入。令您惊恐的是,“没有符合您搜索条件的项目”。您必须创建一个简单的绘画版本,以便您的孩子可以绘画! 挑战 您必须创建一个简单的绘图程序。为此,请打开白色显示窗口(大于99x99像素)。每当按下鼠标时,请将鼠标打开的像素更改为黑色。 这是代码高尔夫球,因此最短答案以字节为单位!

30
互素高达N
给定一个数字n >= 2,输出小于nwhere的所有正整数gcd(n, k) == 1(k输出数字中的任何一个)。这类数字互为互质。 示例:10给出输出[1, 3, 7, 9](只要您喜欢的任何形式,只要数字明确地分开并以某种形式列出即可)。该列表不能有重复的条目,也不必进行排序。 更多测试用例: 2 -> [1] 3 -> [1, 2] 6 -> [1, 5] 10 -> [1, 3, 7, 9] 20 -> [1, 3, 7, 9, 11, 13, 17, 19] 25 -> [1, 2, 3, 4, 6, 7, 8, 9, 11, 12, …

30
创建一个复选框
编写一个程序,创建一个两个状态的复选框,人们可以使用鼠标进行交互。 具体来说,您的程序应实现以下所有目的: 在屏幕上有一个8×8像素(或更大的像素)区域,该区域是复选框的可单击区域。此后,此区域简称为复选框。 当鼠标光标在复选框内移动并按下默认*鼠标按钮时,复选框应切换状态。 已检查变为未检查。未选中变为选中。 切换复选框后,该复选框不应移动。 在选中状态,复选框可以是任何颜色。 在未检查状态下,复选框可以是任何颜色,只要至少16个像素在视觉上与已检查状态不同即可。 在一个程序实例中,所有选中状态在视觉上都应该彼此相同,而所有未选中状态在视觉上都应该彼此相同。 在程序被明确终止之前(例如,通过退出按钮或Alt + F4)不要结束程序,这样用户可以根据需要单击任意复选框。 *您可以假设默认鼠标按钮始终是左键单击,但是也可以使用由鼠标软件或操作系统定义的默认按钮,根据用户的不同,默认情况下可能不会真正单击鼠标左键。 笔记 复选框区域之外的内容无关紧要。它可能只是桌面。它可能是控制台的一部分,每次切换都会更改。 复选框以什么状态开始都没有关系。 复选框区域可以具有等于或大于8×8像素的任何尺寸。它不必是正方形的。 您可以为超出控制范围的设置(例如控制台字体大小,浏览器缩放,监视器分辨率等)留出少量余地。只要您的程序在合理的测试设置下运行,它就应该有效。 如果您的程序打开了一个窗口,则可以假定它已被拖动到屏幕上的适当位置(例如,左上角)。 您可以使用标记语言,例如HTML或其他我们通常不认为是成熟的编程语言的语言。 您的复选框必须是可使用默认鼠标按钮切换的。如果它还能切换其他形式的输入(例如,鼠标右键),也可以,鼠标移动除外。也就是说,如果仅在复选框内移动鼠标,则状态不应更改。 强烈建议您使用复选框的屏幕截图! 计分 以字节为单位的最短代码获胜。 例 一个23字节的规范HTML示例。 <input type="checkbox"> 运行代码段隐藏结果展开摘要 对我来说,在Google Chrome浏览器中,这会形成12×12像素的复选框,并且大约30像素会在选中状态和未选中状态之间明显变化。 我将浏览器缩放比例设为100%。

30
追加字符串长度
挑战: 给定s字符a- z,A- Z,0- 上的字符串9,将其长度附加s到其自身,将长度中的其他字符计为的总长度s。 输入: 只是任意长度的字符串(可以为空)。 输出: 相同的字符串,但其长度附加到末尾。代表长度的字符也应算作长度的一部分。如果要附加多个有效长度,请选择最小的长度(有关示例,请参见测试用例)。 测试用例: INPUT -> OUTPUT // Comment aaa -> aaa4 -> 1 // Empty string aaaaaaaa -> aaaaaaaa9 // aaaaaaaa10 would also normally be valid, but violates using the smallest number rule mentioned above aaaaaaaaa -> aaaaaaaaa11 a1 -> a13 // Input …
51 code-golf  string  code-golf  string  random  code-golf  array-manipulation  code-golf  ascii-art  kolmogorov-complexity  random  code-golf  array-manipulation  code-golf  stateful  code-golf  hello-world  code-golf  string  code-golf  interpreter  lisp  code-golf  restricted-source  quine  palindrome  code-golf  ascii-art  random  generation  challenge-writing  ascii-art  random  polyglot  maze  answer-chaining  string  cops-and-robbers  whitespace  code-golf  string  cops-and-robbers  whitespace  code-golf  number  sequence  code-golf  date  code-golf  ascii-art  decision-problem  code-golf  combinatorics  chemistry  code-golf  kolmogorov-complexity  source-layout  radiation-hardening  code-golf  ascii-art  path-finding  maze  code-golf  string  ascii-art  game  animation  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  restricted-source  new-years 

25
重要空白:警察
为了解决这一挑战,我们将空白定义为仅换行(0x0A)和空格(0x20)。请注意,大多数语言和正则表达式都将许多其他字符也视为空格,无论是在ASCII范围内还是在ASCII范围之外,因此您可能无法使用相应的内置函数。 警察的挑战 您应该使用自己选择的语言编写程序或函数,该程序或函数采用由ASCII(NUL除外)字符组成的字符串作为输入,并输出删除了所有空白的字符串。例如,如果您收到以下输入: H e l l o, W o r l d! 你应该输出 Hello,World! 然后,您提交的内容将是您的源代码,其中所有空格都将被删除(与将解决方案作为输入传递给自己的过程相同,尽管您的解决方案也可能包含ASCII范围之外的字符)。您的目标是尽可能地找出需要插入空白的位置,以便以您选择的语言恢复有效的解决方案。请注意,强盗插入的空格可能少于您删除的空格,但不会更多。还要记住,强盗不必匹配您的确切代码,他们只需要找到任何有效的解决方案即可。 您的答案应包含以下内容: 解决方案的编写语言(如有必要,还提供版本)。 删除空格之前,解决方案的字节数。 删除空格的解决方案。 您的解决方案可以是程序或函数,但不能是代码段,并且您不得使用REPL环境。您可以通过STDIN,命令行参数或函数参数进行输入,并通过STDOUT,函数返回值或函数(输出)参数进行输出。 为了公平起见,必须为您选择的语言提供免费的解释器或编译器。 您不得使用内置函数进行散列,加密或随机数生成(即使您将随机数生成器植入固定值)。您的解决方案必须能够在合理的台式机上在10秒内处理100个字符以内的字符串。 如果您的答案在7天(168小时)内没有被破解,则可以透露自己的解决方案,此时您的答案被认为是安全的。只要您不公开解决方案,即使7天已经过去,它也可能会被强盗破解。最短的安全答案将获胜(在删除空格之前进行测量)。 如果您的答案确实不完整,请在答案的标题中指出,并提供指向相应强盗答案的链接。 去这里抢劫犯的一部分。 完整的提交 <script>site = 'meta.codegolf'; postID = 5686; isAnswer = false; QUESTION_ID = 103182;</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script> …

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.