Questions tagged «code-golf»

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

17
河内求解器塔
有关河内塔楼的信息,请用谷歌搜索或在Wikipedia页面上查看。 您的代码应该能够执行以下两项操作,它们是: 接受在河内塔楼起点指定了光盘数量的用户输入 以您选择的方式创建输出(只要出于某种逻辑即可)以显示塔式难题的解决方案。 逻辑输出的示例如下(使用4盘启动): L1L2C1L1R-2R-1L1L2C1C-1R-2C1L1L2C1 L代表左钉子,C代表中心钉子,R代表右钉子,数字是该盘在该钉子上移动的方向和方向。正数表示向最右边的钉子移动的钉子的数量(因为磁盘从最左边的钉子开始)。 河内塔的规则很简单: 一次只能移动一个磁盘。 每次移动都包括从一个钉子上取下上盘并将其滑到另一个钉子上,然后再将另一个钉子顶在该钉子上。 请勿在较小的磁盘上放置任何磁盘。 磁盘自然地从最左端的钉开始,最大的在底部,最小的在顶部。
10 code-golf  stack 

9
在源内编码图像
高尔夫挑战是在源文件中编码和压缩以下图像。 为此,您需要编写3个函数:red,green和blue,它们接受图像的x / y坐标并返回0-255之间的相应R / G / B像素值。 这是C / C ++测试代码: #include <stdio.h> #include "your_file" int main() { int x, y; for(y = 0; y < 32; ++y) for(x = 0; x < 32; ++x) printf("%i %i %i\n", red(x, y), blue(x, y), green(x, y)); } 以及输出:http : //pastebin.com/A770ckxL(您可以使用它来生成图像数据) 规则和详细信息: …

4
在迷宫中撞倒墙壁
规则: 在本游戏中,您从大小为N x M的矩形网格的顶部开始,该矩形网格由墙壁和开放空间组成。输入的是N行,每行M个字符,其中a .指定一个开放空间,a x指定一个墙。您的程序应输出最小的数字K,以使从左上角到右下角(无对角线)的路径跨越K壁。 例如,给定输入: ..x.. ..x.. xxxxx ..x.. ..x.. 您的程序应输出2。 其他例子: 输出4: xxxxx x.x.x x.x.x x..xx 输出0: .xxxxxxxx .x...x... .x.x.x.x. .x.x...x. ...xxxxx. 输出6: xx xx xx xx xx 额外花絮: 如果使您的生活更轻松,则可以将N和M指定为命令行参数。 如果可以让您的程序以某种形式打印出路径,则可以得到额外的奖励。
10 code-golf  maze 

2
通过添加空格来对齐文本
鉴于此文字 Lorem ipsum dolor坐下,私立教育专家,seu do eiusmod tempor incididunt ut Labore et dolore magna aliqua。尽量不要抽烟,不要因抽烟而锻炼。Duis aute irure dolor in reprehenderit in voltate velit esse cillum dolore eu fugiat nulla pariatur。不擅长于圣人的情节,应在负责任的犯罪活动中动工。 编写最短的程序,以产生以80个字符对齐的相同文本。上面的文本必须与以下内容完全相同: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut …

7
检查一串是否是一对双胞胎
说明 可以通过散布两个字母以形成一个新的字符串来打乱两个字符串,就像可以将两堆纸牌打乱形成一个单独的字符串一样。 例如,可以将字符串HELLO和WORLD改组为HWEOLRLLOD或HEWORLLLDO,或者简单地为HELLOWORLD。 这是不是一个洗牌如果没有保存的信件的原始顺序。例如,Din WORLD不能R在改组后出现。EHLLOWRDLO举例来说,这意味着即使其中包含所有原始字母,也不是HELLOand WORLD的改组。 如果可以通过改组两个相同的琴弦来构成双胞胎,则该琴弦是双胞胎的混洗。例如,ABACBDECDE是双胞胎的混洗,因为它可以通过改组ABCDE和形成ABCDE。DBEACBCADE不是双胞胎的混洗,因为它不能通过混洗两个相同的琴弦来形成。 计划详情 给定一个输入字符串,0如果不是一对双胞胎,则输出,如果不是一对双胞胎,则输出一个双胞胎字符串。 您可以假设输入字符串的长度(包括4到20个字符),并且完全由大写字母字符组成。它应该能够在合理的时间内运行,例如不到10分钟。 这就是代码高尔夫,所以最短的解决方案是成功的。 示例I / O > ABACBDECDE ABCDE > DBEACBCADE 0 > FFFFFF FFF > FFGGG 0 > ABBA 0 > AABB AB > AABAAB AAB 我有一个示例(非高尔夫)实现。

6
枚举具有n个节点的所有二叉树
给定一个整数n,用n个内部节点枚举所有可能的完整二叉树。(完整的二叉树在每个内部节点上恰好有2个子节点)。树结构应作为树的预遍历输出,其中1表示内部节点,0表示外部节点(空)。 以下是前n个示例: 0: 0 1: 100 2: 11000 10100 3: 1110000 1101000 1100100 1011000 1010100 这是一场代码高尔夫,奖金最少的人物。这些树应该每行输出到stdout。该程序应从命令行或标准输入中读取n。

1
Code 39条码扫描器
1974年开发的Code 39是条形码中最常用的符号或类型之一,尽管零售中最常见的是UPC / EAN系统。Code 39条形码可以对大写字母,数字和一些符号进行编码,使用特殊字体从计算机软件进行打印很容易。这导致了它们在商业和工业上的广泛使用(例如,公司ID徽章,资产跟踪,工厂自动化)。 创建最短的程序或函数,以从512x512像素灰度图像的任何方向读取Code 39条码;条形码可能未水平或垂直对齐。 您的程序必须接受标准的图像文件格式,并产生以条形码编码的数据作为其标准输出或返回值(不包括任何开始/停止字符)。 没有图像包含多个有效的Code 39条形码,并且没有条形码对空格字符(ASCII 32)进行编码。 如果图像中未显示有效的Code 39条码,则程序必须输出一个问号(?)。 我已经准备了JavaScript参考实现和 PNG格式的图像测试套件,包括有效条形码和无条形码。该参考实现在最新的Web浏览器中仅使46个测试案例中的3个失败,该参考实现旨在显示一种可能的解码算法,而不严格符合上述规范。 有效提交至少通过了这些测试的80%(37/46),并且在相当快的CPU(例如2.6 GHz四核)上为每个图像花费的时间不超过一分钟。我的参考实现通过了93%的测试,并在10秒内(在运行Google Chrome的台式机上)处理了每个图像。 (此问题是2011年5月28日在Meta上提出的。)
10 code-golf 

7
宾果卡生成器
宾果卡由5列组成,每列5个正方形,中间的正方形表示为“ FREE”。数字不能重复。 这五列中填充了以下数字范围: 乙:1-15 I:16-30 N:31-45 G:46-60 O:61-75 用尽可能少的字符输出一个可以解释为随机Bingo卡的字符串。例如: 1,2,3,4,5,16,17,18,19,20,31,32,33,34,35,46,47,48,49,50,61,62,63,64,65 此示例不是随机的,因此我可以显示第1列填充有1,2,3,4,5。另请注意,未对可用空间进行任何特殊处理,因为解释此字符串的前端将跳过它。 另一个示例是: 1,16,31,46,61,2,17,32,47,62 ... 在此示例中,输出按行而不是按列。 第三个示例可能是: 01020304051617181920313233343546474849506162636465 除固定长度外,此输出与第一个示例相同。
10 code-golf  game 

5
制作一个简单的IRC机器人。
任务 制作一个简单的IRC机器人,它执行简单的任务,例如问候用户。 详情 (您可能会看到此RFC文档。) 编写一个完整的程序来执行以下操作: 程序输入nickname和realname来自用户。 应该允许所有nickname和realname哪种形式[A-Za-z0-9]+,但是是否允许其他形式并不重要。例如,如果用户想要1234qwerty的nickname和5319009作为realname,程序应使用这些名称,但该程序是否可以使用它并不重要^^☆Rick Astley☆^^(包括非字母和小数)为(nickname或realname)或没有,甚至认为这个名字可能会被拒绝由服务器。 程序serverAddress从用户输入。 形式serverAddress为serverIP:serverPort,其中serverIP是服务器的IP地址,是服务器serverPort的端口号。 该程序连接到serverPortIRC服务器上的端口serverIP,并且应该通过发送和将其昵称设置为nickname和实名。realnameUSER realname 0 * :realnameNICK nickname 该程序输入一个channelName不包含的单#,并加入频道#channelName。 像这样Hello, world!向#channelName频道发送私人消息:PRIVMSG #channelName :Hello, world! 然后,程序执行以下操作: 答:如果有人加入,说他问候Hello, @!到#channelName,其中@是他的绰号/她。 B.如果程序被踢,请尝试重新加入。 C.如果有人被踢或被禁止,请说POW HAHA。 D.如果某人离开(PART或QUIT),请说Goodbye, @!,其中@是他/她的昵称。 E.如果有人说了一些文字,包括Turing test或turing test说I'm a human!。 F.如果有人说包括的某些文本6*9,请通过发送QUIT :42到服务器退出。 G.如果有人说一些文本all your base are belong to us(不区分大小写),请发送QUIT :What you say!到服务器退出。 H.如果某人说某些文本前面没有空格并且没有执行上述动作,请说出该文本中所有字符(第一个空格除外)的字符码总和。 如果发生错误 如果发生错误(例如连接错误或invalid …

2
Prime Grid游戏
我很开心解决了这个问题,所以我提供了这个高尔夫挑战赛。 该高尔夫的目的是找到可以使用给定指令构造的最大质数。 您应该接受3x3的一位数网格作为输入。(这取决于您要如何执行,但要在程序中指定。) 您可以沿网格正交移动(左,右,上或下),并且在移动时,会不断添加所走过的数字。 例如 1 2 3 3 5 6 1 8 9 假设我们从开始1,我们可以形成数字1236589,但不能形成15。 您必须评估每个开始位置。 如果找不到素数,请打印-1,否则将素数打印。 最短的代码获胜,请确保它在10秒内运行。 玩得开心! 编辑:一次使用一个位置,在整个数量中。 这是一个测试案例 输入: 1 2 3 4 5 6 7 8 9 输出: 69854123

5
第n个具有n个不同素数的数
创建计算A073329的最短函数,程序或表达式,即a(n)是具有n个不同素数的第n个数。输入是要返回的序列中元素的数量。。我不关心整数精度。我只想要算法。对于不支持任意大整数的语言,我们只是假装它们支持。0 < n 您可以通过上面提供的OEIS链接找到测试用例。 更新: 让我明确指出,您需要从程序,函数或表达式返回整数序列。换句话说,f(x)应该计算从1到的a(n)所有值。给定为8,您的函数应以数组或其他适当的数据结构形式返回。nxx2, 10, 60, 420, 4290, 53130, 903210, 17687670
10 code-golf  math 

3
飞机导航
您的任务是为当地飞机交付公司计划一条飞行路线。您需要将飞机从A点路由到B点。您只是无法从A点出发,将飞机指向B点,然后再走,因为盛行的风将使您偏离航向。相反,您需要考虑风向,找出应该指向飞机的方向,以便飞机直接飞向B。 输入 7个浮点数,编码为A_x,A_y,B_x,B_y,S,W_x,W_y。这些是起点和终点的坐标,飞机的空速以及沿x轴和y轴的风强度(风吹向的方向,而不是吹向的方向)。 输出 您应打印以度为单位的角度(从x轴正方向逆时针旋转),该角度应指向平面以直线到达B。GROUNDED如果风很大以至于无法旅行,请打印。 您可以四舍五入到最接近的程度,并可以使用任何您想要的方法(向上/向下/最近/ ...)进行。 例子 输入 0 0 10 0 100 0 -50 0 0 10 0 50 -55 0 3.3 9.1 -2.7 1.1 95.0 8.8 1.7 输出 30 GROUNDED 229 最短的代码获胜。
10 code-golf  math 

5
计算从素因数得出的整数序列
创建执行以下操作的函数,表达式或程序: 取任意数量的素数因子并求和。例如,28的素数是2 2 7,总和为11。 将结果乘以给定数素数的数量。例如,28有3个素因,总和为11。11 * 3为33。 递归地重复该过程,存储结果列表(以原始编号开头),直到列表中已经包含一个编号。暂停而不添加该最终编号,以便该列表不包含重复项。28的级数是28 33,因为33再次导致28。 计算结果列表中的元素。对于28,答案为2。 这是的结果0<n<=10,因此您可以检查算法。 2 1 1 10 1 11 1 9 5 10 (正如balpha所指出的higley(1),从列表1 0中得到的答案是2。由于我用J编写的原始算法中的错误,我原来只有1。) 由于我是自负的SOB,并且尚未在OEIS上找到它,因此至少在本轮代码测试期间,我们称其为“ Higley序列”。作为额外的奖励,发现前两个n具有最低的higley(n)地方n是不是素数和n>1。(我认为只有两个,但是我无法证明。) 这是标准代码高尔夫球,因此,通常击键次数最少,但是我想请您用其他语言推荐更聪明的答案,即使它们很冗长。
10 code-golf  math 

1
ASCII艺术方程式可视化器
在没有好的方程编辑器的情况下处理方程是混乱且令人不愉快的。例如,如果我想表达一个积分及其解决方案,它可能看起来像这样: 积分[x ^ 3 e ^(-mx ^ 2 b / 2),dx] =-((2 + b m x ^ 2)/(b ^ 2 * e ^((b m x ^ 2)/ 2) * m ^ 2)) 在积分.wolfram.com上,这称为“输入形式”。没有人喜欢看到“输入形式”的方程式。可视化此方程式的理想方式是: (Wolfram称之为“传统形式”) 对于此代码高尔夫球,编写一个程序,该程序将采用“输入形式”的某些方程作为输入,并以“传统形式”的ascii表示形式可视化该方程。因此,对于此示例,我们可能会得到以下内容: /\ 3 | x | ------------ dx = | 2 \/ (m x b)/2 e …

12
序列的平衡指数
序列的平衡索引是这样的索引,即较低索引处的元素之和等于较高索引处的元素之和。例如,在序列A中: A[0]=-7 A[1]=1 A[2]=5 A[3]=2 A[4]=-4 A[5]=3 A[6]=0 3是均衡指数,因为: A[0]+A[1]+A[2]=A[4]+A[5]+A[6] 6也是一个均衡指数,因为: A[0]+A[1]+A[2]+A[3]+A[4]+A[5]=0 (零元素的总和为零)7不是均衡索引,因为它不是序列A的有效索引。 想法是创建一个给定序列(数组)的程序,并返回其平衡指数(任意);如果不存在平衡指数,则返回-1。
10 code-golf 

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.