Questions tagged «code-golf»

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

9
在跷跷板上平衡一组重量
平衡技术 总览 给定一个表示一组权重的3个一位数字正整数的输入,输出一个跷跷板的ASCII表示形式,并在其上放置权重,以便考虑到杠杆效应,使该跷跷板围绕中心枢轴保持平衡。 每个数字的权重等于其值。每个数字的扭矩是重量乘以其到中心的距离(以字符为单位)。对于跷跷板是平衡的,在跷跷板上左侧的权重之和扭矩必须等于那些在右边,像这样。 输入值 1至9之间的3个整数。您可以输入整数,但是很方便,例如,元组,3个逗号分隔的值等。但是,您的程序必须能够处理以任何顺序输入的数字(即,假定值将不排序)。可以输入重复的数字(例如2,3,2)。 输入将始终在数学上允许有效输出,否则输入无效。 输出量 输出应该是跷跷板的2行ASCII表示形式,并带有权重。第一行上的数字是隔开的,以便在跷跷板上保持平衡。 数字可能不会放置在刻度的正中,因为距离和扭矩都为零。到中心的有效距离范围是1到10个字符(包括1至10个字符),到枢轴的左侧或右侧。 在数字未占用的空间中,有18个下划线字符(中心下划线,每侧10个,减去数字所占的3个位置)。在最后一行是与刻度中心对齐的单个插入符号,表示支点。 例子 输入: 4,7,2 输出: ________7___42_______ ^ 7 * 2 = 4 * 2 + 2 * 3 数字可以在任一侧输出,例如,这也将是有效的: _______24___7________ ^ 2 * 3 + 4 * 2 = 7 * 2 只要平衡,数字就可以放在秤的任何位置,例如: 输入: 3,1,5 输出: _____5________1__3___ ^ 5 * …

30
我如何获得一个repdigit?
为了纪念我几个小时前第一次想到这个挑战时的代表人数: 像这样由一个数字重复组成的数字称为repdigits。Repdigits很有趣!每一个身体是,如果销售代表他们的用量是一个纯位数更幸福¹,但我是个急性子,所以你要帮我找出去一个纯位数的最快方式。 这是您的挑战: 鉴于代表的声誉正整数,输出他们需要代表最小量的增益,以获得一个纯位数。例如,在撰写本挑战时,用户Martin Ender有102,856个代表。最接近的代表数字是111,111,因此他需要获得:8255代表才能成为代表数字。 由于人们不喜欢丢失代表,因此我们将仅考虑非负变化。这意味着,例如,如果某人的成绩为12个代表,而不是损失1个代表,则解决方案是获得10个代表。这允许“ 0”为有效输出,因为拥有111个代表的任何人都已经在一个代表位。 输入和输出可以采用任何合理的格式,并且由于在任何Stack Exchange站点上不可能有少于1个代表,因此可以假定输入不小于1。 需要注意的一个角落: 如果用户的代表少于10个,则他们已经是一个代表,因此他们也需要为“ 0”。 测试IO: #Input #Ouput 8 0 100 11 113 109 87654321 1234567 42 2 20000 2222 11132 11090 存在标准漏洞,最短的解决方案以字节为单位!
32 code-golf  math  number 

3
击倒PPCG用户名
我在聊天室中进行的评论以及随后的谈话激发了我挑战这一挑战。 我是这里唯一的缩写缩写人吗?我们都在打高尔夫球。我们可以有MB和D-nob以及...O。 如果我被称为“ CH”,那么我认为其他所有人也应该有一个以缩写开头的昵称。 以下是按声誉使用的排名前100位的编程难题和代码高尔夫用户的列表: Martin Büttner Doorknob Peter Taylor Howard marinus Dennis DigitalTrauma David Carraher primo squeamish ossifrage Keith Randall Ilmari Karonen Quincunx Optimizer grc Calvin's Hobbies ugoren Mig gnibbler Sp3000 aditsu histocrat Ventero xnor mniip Geobits J B Joe Z. Gareth Jan Dvorak isaacg edc65 Victor steveverrill feersum …
32 code-golf  string 

8
箭头指向哪里?
箭头指向哪里? 在此挑战中,您的目标是跟随箭头并输出其指向的字符。 例子 输入: d S------+ b | | c +--->a 输出: a 输入: S-----+---a->c | V b 输出: b 箭头未指向,c因为它被分隔a,这意味着该路径永远不会导致箭头。 输入: a S s | | V V b c 输出: b 输入: d s<+S+--V ||| Q -++ 输出: Q 此路径从开始S,向下,向右,向上,向右,然后指向Q。请注意,路径并非直接从S到+。 输入: d s-+ +-S +--+ +-->b | | …
32 code-golf 

29
爆炸子串
介绍 让我们观察一下字符串abc。可以从中创建的子字符串为: a, ab, abc, b, bc, c 现在,我们需要将它们对齐在初始字符串下,如下所示: abc a b c ab bc abc 字符串的顺序无关紧要,因此这也是完全有效的: abc a ab abc b bc c 因此,子字符串位于初始字符串中子字符串位置的下方。因此,对于abcdef和子字符串cde,它看起来像这样: abcdef cde 任务 如上所示,任务是对齐所有长度大于0的子字符串。您可以假设字符串本身仅包含字母字符,并且至少包含1个字符。对于填充,您可以使用空格或其他一些非字母可打印的ASCII字符(32 - 127)。也许不必提,但是字符串本身将仅包含唯一字符,因此不喜欢aba,因为它a发生了两次。 测试用例 输入: abcde 可能的输出: a ab abc abcd abcde b bc bcd bcde c cd cde d de e …
32 code-golf  string 

4
代码说明格式化程序
从本质上讲,成功提交高尔夫球规则的代码到处都是疯狂的符号。为了使提交的内容易于理解,许多代码高尔夫球手选择对代码进行解释。在他们的解释中,代码行变成了垂直分解图。 例如,如果这是我的代码: 1_'[3:~2@+]` 我可以创建的许多可能的图之一如下所示: 1 _' [ ] [3: ] [ ~ ] [ 2@ ] [ +] ` 目标 在此挑战中,您将编写一个说明自动格式化工具,该工具采用一行代码并创建一个可轻松添加说明文字的图表。 为了使此挑战更为有用,用户将能够通过提供格式字符串来指定每行的内容。格式化字符串将是第二行,仅包含字母A-Za-z,与程序长度相同。字母表示在解释中应打印程序字符的顺序。 这是一个没有任何类似于括号的格式的I / O示例: 123423 AabcBC 1 2 3 2 3 4 括号 如果程序中有多个字符具有相同的优先级,则该字符集将充当单个代码块(如果它们构成一个组)或一组括号(如果它们之间包含其他字符)。一般规则很简单: 直到更高优先级的所有其他字符都已经出现在图表上方的行上,字符才会出现在图表的一行中。 优先级相同的字符始终打印在同一行上。如果某个字符出现在一行上,则所有其他优先级相同的字符都出现在该行上。 一组具有相同优先级的字符将继续出现在每一行上,直到其所包围的所有其他字符都至少出现过一次为止。这允许“类似托架”的构造。如果bceab是优先级,则b字符将出现在第二行(它们是第二高的优先级),并将继续出现,直到所有cea字符都出现为止。如果优先级字符串为abcadeafga,则所有优先级字符串bcdefg都视为包含在其中,则所有4 as将继续出现,直到出现为止g。 更多格式要求 输出的所有行应具有相同的长度(输入行的长度),并在必要时用空格填充。输入程序行可能包含空格,尽管这些空格也将被赋予优先级字母。输出/输入上的尾随换行符是可选的。 计分 这是代码高尔夫,最少的字节数获胜。 例子 这是一段带有复杂格式的代码的注释示例。 1_'[3:~2@+]` abbcddeffgch 1 #highest priority …

3
自相交多边形的面积
考虑一个潜在的自相交多边形,由2D空间中的一系列顶点定义。例如 {{0, 0}, {5, 0}, {5, 4}, {1, 4}, {1, 2}, {3, 2}, {3, 3}, {2, 3}, {2, 1}, {4, 1}, {4, 5}, {0, 5}} 有几种方法可以定义这种多边形的面积,但是最有趣的一种是奇偶规则。选取平面中的任何点,从该点到无穷远(沿任何方向)画一条线。如果该线与多边形交叉的次数是奇数次,则该点是该多边形区域的一部分;如果该线与多边形交叉的次数是偶数,则该点不属于多边形的一部分。对于上面的示例多边形,这是它的轮廓以及奇数面积: 多边形通常不会正交。我只选择了这样一个简单的示例,以便更轻松地计算面积。 此示例的区域为17(不是,24或者33不像其他定义或区域那样)。 请注意,在此定义下,多边形的面积与其缠绕顺序无关。 挑战 给定具有定义多边形的整数坐标的顶点列表,请确定其在奇偶规则下的面积。 您可以编写函数或程序,通过STDIN或最接近的替代方法,命令行参数或函数参数获取输入,然后返回结果或将结果打印到STDOUT或最接近的替代方法。 您可以采用任何方便的列表或字符串格式的输入,只要不进行预处理即可。 结果应该是浮点数,精确到6个有效数字(十进制),或者是一个有理结果,其浮点表示形式精确到6个有效数字。(如果您得出合理的结果,它们可能会是准确的,但是我不能要求这样做,因为我没有确切的结果可供参考。) 您必须能够在合理的台式机上在10秒内解决以下每个测试用例。(此规则有一定的余地,因此请使用您的最佳判断。如果在我的笔记本电脑上花费20秒,我会带给您疑问的好处,如果花费一分钟,我不会。)我认为这个限制应该非常大方,但是应该排除那些仅在足够细的网格上离散多边形并计数的方法,或者使用诸如蒙特卡洛这样的概率方法。做一个好运动员,不要试图优化这些方法,以使您无论如何都可以满足时间限制。;) 您不得使用任何与多边形直接相关的现有功能。 这是代码高尔夫球,因此最短的提交(以字节为单位)获胜。 假设条件 所有的坐标都在范围内的整数0 ≤ x ≤ 100,0 ≤ y ≤ 100。 会有至少3在最50顶点。 不会有任何重复的顶点。顶点也不会位于另一边上。(不过,列表中可能有共线的点。) 测试用例 …

30
俄罗斯轮盘,已重装
让我们玩俄罗斯轮盘! 通常,这是编写最短的MOD 6程序的竞赛,但这不是很现实,因为每次单击获胜的机会都会减少。规则如下: 模拟一个真实的六射手: 将一颗子弹放入六个弹药室之一中,然后仅在比赛之前将枪管旋转一次。 第n次尝试失败的机会是1/6。 n次尝试后 输球的机会是1 /(6-n) 您保证最多只能尝试6次。 输: 显示文字 *BANG!* 终止程序。 获奖情况: “胜利”是指枪不射击,但子弹距离锤子较近。 显示文字 *click* 向用户展示“触发器”以及终止程序的能力(例如,“ ctrl + c”,请参见下文)。 程序特定: 拉动触发器是某种形式的用户输入,包括第一次尝试。(这可以是击键,单击鼠标等等;不需要文本提示。) 该程序仅允许一个实例,直到被终止。(运行该程序的新实例类似于使桶具有良好的旋转度,即,下次单击失败的概率重置为1/6。) 最短的代码胜出! 排行榜 显示代码段 <style>body { text-align: left !important} #answer-list { padding: 10px; width: 290px; float: left; } #language-list { padding: 10px; width: 290px; float: left; …
32 code-golf  game  random 

13
5318008-计算器带来的乐趣
在世界各地的学校中,孩子们在LCD计算器中键入数字后,将其倒置并在创建“笨蛋”一词后大笑。当然,这是最受欢迎的词,但是还有许多其他词可以被产生。 但是,所有单词的长度必须少于10个字母(但是词典中包含的单词长度不超过10个字母,因此您必须在程序中执行过滤器)。在此词典中,有一些大写单词,因此将所有单词都转换为小写。 使用英语词典,创建一个数字列表,可以将这些数字输入到LCD计算器中并生成一个单词。与所有代码高尔夫球问题一样,以最短的程序完成此任务将获胜。 对于我的测试,我使用了UNIX单词列表,该单词列表是通过键入以下内容收集的: ln -s /usr/dict/words w.txt 或者,在这里获取它。 例如,上面的图像是通过35007在计算器中键入数字并将其上下颠倒而创建的。 字母及其相应的数字: b:8 g:6 l:7 我:1 o:0 s:5 z:2 h:4 e:3 请注意,如果数字以零开头,则在该零后需要一个小数点。该数字不能以小数点开头。 我认为这是MartinBüttner的代码,只是想向您致谢:) /* Configuration */ var QUESTION_ID = 51871; // Obtain this from the url // It will be like http://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe"; /* …
32 code-golf 

9
每日ASCII艺术#2-流蛇
甲流蛇,也称为高斯帕曲线,是分形曲线,用一个简单的过程的每个顺序/迭代中大小呈指数增长。以下是有关构造的详细信息以及各种订单的一些示例: 订单1流蛇: ____ \__ \ __/ 2级流蛇: ____ ____ \__ \ \__ \__/ / __ __/ ____ \ \ \ / __ \__ \ \/ \ \ \__/ / __ \/ ____ \/ / \__ \__/ __/ 3级流蛇: ____ ____ \__ \ \__ \__/ / __ __/ ____ \ \ …

4
魔方上的身份序列
移动序列是在魔方上的一系列移动(转弯)(在下面的符号中向下查找)。除了空移动序列之外,还有许多其他移动序列,这些移动序列对多维数据集完全没有影响。我们称这些移动序列为同一性序列。 这些身份序列中的某些很明显可以确定,例如U2 R R' U2或U D2 U' D2。在第一个步骤中,进行了两次随机移动U2 R,然后立即撤消R' U2。第二个类似。前两个随机动作U D2,然后撤消,但顺序相反U' D2。这仅起作用,因为U移动D2仅影响上层的片段,而移动仅影响下层的片段。您可以看到这两个移动序列的可视化。 其他身份序列可能一点都不明显。例如序列R' U' R' F' U F U' R' F R F' U' R U2 R。它很长,但是对多维数据集完全没有任何作用。 移动符号 移动描述了立方体六个面之一的一层的旋转。一个移动由一个代表面部的字母和一个可选的后缀(代表转角)组成。 字母及其对应的面是U(上-面向上的侧面),D(下-面向下的侧面),R(右-面向右侧的侧面),L(左-面向左侧的侧面) ,F(正面-面向您的一面)和B(背面- 背对您的一面)。 如果没有后缀,则将脸部顺时针旋转90度,后缀'表示将脸部逆时针旋转90度,而后缀2是指脸部顺时针旋转180度。 如果您在表示法上有任何问题,只需使用http://alg.cubing.net,您就可以在其中可视化此类移动序列。 挑战 您的任务是编写一个程序,该程序确定移动序列是否为身份。 您可以编写完整的程序或函数。它应接收一个包含移动序列(移动由空格分隔)的字符串作为输入(通过STDIN,命令行参数,提示或函数参数),并输出(通过返回值或STDOUT)布尔值或相应的整数( True-1-身份序列/ False-0-非身份序列)。 如果后缀'在编程语言中造成问题,则可以使用其他符号,但不能使用数字。R F2 U3不允许。 这是codegolf,因此最短的代码(以字节为单位)获胜。 测试用例 "" -> True "U2 R R' …

8
总共三本钱中有几内亚几内亚?
直到1971年十进制化,英国货币的基础是将英镑分为240便士。一先令为12便士,所以20先令等于一磅。最小的面额是一分钱的四分之一。硬币还有许多其他面额和昵称,如果您不习惯该系统,可能会造成很多困惑。 挑战 编写一个程序或函数,可以将(几乎)任何面额的旧英语货币转换为其他任何货币。为了使用户更轻松,您需要支持复数形式和昵称。 这些是您必须支持的面额及其同义词。为方便起见,它们在零食中的价值领先于每一行。 1: farthing, farthings 2: halfpence, halfpenny, halfpennies 4: penny, pennies, pence, copper, coppers 8: twopenny, twopennies, twopence, tuppence, half groat, half groats 12: threepence, threepenny, threepennies, threepenny bit, threepenny bits, thruppence, thrupenny, thrupennies, thrupenny bit, thrupenny bits 16: groat, groats 24: sixpence, sixpenny, sixpennies, sixpenny bit, …

2
标准化电话号码
背景 这里的大多数人应该熟悉一些整数基数系统:十进制,二进制,十六进制,八进制。例如,在十六进制系统中,数字abc.de 16表示 a*16^2 + b*16^1 + c*16^0 + d*16^-1 + e*16^-2 但是,也可以使用非整数基数,例如无理数。一旦这样的碱使用黄金比例φ=(1 +√5)/ 2≈1.618 ...。这些定义类似于整数基数。所以一些abc.de φ(其中一个以ê是整数位)将代表 a*φ^2 + b*φ^1 + c*φ^0 + d*φ^-1 + e*φ^-2 请注意,原则上任何数字都可以为负(尽管我们不习惯于此)-我们将以负号表示一个负数~。对于这个问题,我们限制自己,从数字的目的~9来9的,所以我们可以毫不含糊地写(在与之间的波浪线),一个数字作为一个字符串。所以 -2*φ^2 + 9*φ^1 + 0*φ^0 + -4*φ^-1 + 3*φ^-2 将被写为~290.~43。我们称这样的数字为非凡数字。 索号始终可以以标准形式表示,这意味着该表示仅使用数字1和0,而不包含11任何位置,并带有可选的减号表示整个数字为负。(有趣的是,每个整数都有标准形式的唯一有限表示形式。) 非标准格式的表示始终可以使用以下观察结果转换为标准格式: 011 φ = 100 φ(因为φ 2 =φ+ 1) 0200 φ = …

7
牛顿法递归法
您的任务是使用牛顿法计算2的平方根-稍有扭曲。您的程序将使用牛顿法计算迭代,并输出后续迭代的源代码(必须能够执行相同的操作)。 牛顿的方法已在Wikipedia上进行了详尽的描述。 要使用牛顿法计算平方根2,您: 限定 f(x) = x^2 - 2 限定 f'(x) = 2x 定义x[0](初步猜测)= 1 限定 x[n+1] = x[n] - (f[n] / f'[n]) 每次迭代会将x [n]移到更接近于2的平方根。所以- x[0] = 1 x[1] = x[0] - f(x[0])/f'(x[0]) = 1 - (1 ^ 2 - 2) / (2 * 1) = 1.5 x[2] = x[1] …
32 code-golf  math  quine 

6
镜子奎因(或我的头很痛)
我正在阅读将您的代码向后打印-反向quine,我想,如果您的向后代码也是可执行的,这可能会更有趣。因此,此挑战将具有其他挑战的所有规则和要求,但一旦反向(以相同或另一种语言显示,也必须向后打印其来源),也必须是有效的来源。 逆向拉网挑战的所有规则和计分均适用,因此该问题的所有答案都将回答该问题(但得分也不相同)。 编辑: 根据要求,所有规则现在都复制到此处。 规则: 编写程序p,该程序在执行时会产生输出p',其中p'向后p,而在执行时会产生p'。 请勿使用其他文件(例如reverse.txt) 最小代码长度为两个字符。 您的程序不能是回文。 得分: +50(如果您使用来自互联网的提取数据)。 +25,如果您阅读自己的源代码。 每个字符+1点。 最低分获胜。
32 code-golf  quine 

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.