Questions tagged «code-golf»

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

17
打印分层蛋糕
挑战 给定输入后n,n从侧面看,打印一个高ASCII的艺术蛋糕,上面放着两个蜡烛。有关详细信息,请参见以下示例。 输出量 >> cake(1) _|_|_ | | +-----+ >> cake(3) _|_|_ | | +---------+ | | +-------------+ | | +-------------+ ...等等。 规则 禁止标准漏洞 请尝试一个聪明的解决方案 这是代码高尔夫球,因此最短答案以字节为单位。但是,将不会选择答案。 玩得开心!

14
搭载顺序
我最近创建了自己的序列(称为背负序列),其工作方式如下: P(1),P(2)和P(3)= 1。 对于所有P(n)where n>3,序列的工作方式如下: P(n) = P(n-3) + P(n-2)/P(n-1) 因此,继续执行以下步骤: P(4)= 1 + 1/1=2 P(5)= 1 + 1/2= 3/2 =1.5 P(6)= 1 + 2/(3/2)= 7/3 =2.33333... P(7)= 2 + (3/2)/(7/3)= 37/14=2.6428571428... P(8)= 3/2 + (7/3)/(37/14)= 529/222 =2.3828828828... 给定任务后,您可以将其n计算P(n)为浮点数或适当的分数。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。 如果有人可以找到序列的名称,请相应地编辑帖子。 现任领导人:MATL和Jelly(均为15字节)。
14 code-golf  math 

9
代码高尔夫ABC:ASCII Box挑战赛
给定两个正整数'a'和'b',输出一个ascii-art“ box”,它是一个字符宽而b个字符高的字符。例如,使用“ 4”和“ 6”: **** * * * * * * * * **** 简单吧?这是一个转折点:框的边框必须是交替的“ a”和“ b”字符​​。此操作从左上角开始,并以顺时针螺旋线继续。例如,前面的示例4和6应该是 4646 6 4 4 6 6 4 4 6 6464 A和B 可以是两位数字。例如,输入“ 10”和“ 3”应输出以下内容: 1031031031 1 0 3013013013 为了使输出保持相对较小,您不必支持三个或更多数字。同样,由于输入被限制为正数整数,因此“ 0”是无效输入,您不必处理。 这是更多测试用例: Input: (3, 5) Output: 353 5 5 3 3 5 5 353 …

4
一次小小的冒险
文字冒险游戏有一个固定的公式;有一个由一系列房间/空间组成的世界,玩家可以在这些房间中移动,并且房间中有一些物品。物品可以由玩家拿起,放下,用于进入其他房间(例如钥匙),并与其他物品组合以制成新物品。 挑战 您面临的挑战是以最小的字节(代码高尔夫球)编写文本冒险运行时。为了简单起见,您所要做的就是根据给定的一系列命令是否会赢得给定的游戏输出真值或假值(无交互性,无人类友好输出等)。 游戏规则 世界总是由具有10个连通房间的走廊组成。每个房间都需要一个钥匙才能进入,但是可以在没有钥匙的情况下随时退出(所以我想这是一种闩锁)。 玩家从房间0开始,如果进入房间9,则获胜(一旦进入房间9,他们可以做任何自己想做的事,包括去另一个房间,他们仍然会赢); 每个房间可以容纳任意数量的物品; 最多有26个项目(称为AZ),并且世界上不会再出现任何项目。 玩家可以从当前房间中拾取物品并将其放入库存中(他们也可以将物品从其库存中放入当前房间中); 玩家的最大存货数量是有限的,并将提供等级细节; 在游戏开始时,玩家的库存总是空的。 一个房间中的最大物品数没有限制(尽管隐式限制为26,因为这是物品总数); 项目AJ是可用于钥匙进入房间0-9(即玩家可以到另一个房间0,如果他们有项目A,室温1,如果他们有B,等等。注意,密钥不被要求离开房间,并且玩家开始在房间0中,因此仅当玩家想返回房间0 时才需要键“ A” ; 可以合并玩家库存中的物品以创建新物品(将在玩家库存中创建)-允许的组合将提供等级详细信息; 合并项目将消耗原始项目(即,如果其中一个项目是密钥,将无法再使用该密钥); 如果玩家尝试做一些不可能的事情(例如,拿走当前房间中没有的物品/丢掉他们没有的物品/组合他们没有的物品/进入没有钥匙的房间)因为),什么也没有发生,所以他们可以继续; 玩家将永远不会胡说八道(例如去房间11)。 因此,一个简单的游戏可能看起来像这样: v +---+---+---+---+---+---+---+---+---+---+ | C | | J | | | | | | | | +---+---+---+---+---+---+---+---+---+---+ | CORRIDOR | +---------------------------------------+ Inventory capacity: 99 房间0包含项目“ C”(这是房间2的钥匙)。2号房间包含项目“ J”(这是9号房间的钥匙)。玩家可以通过拾取C,移至房间2,拾取J,然后移至房间9,赢得比赛。 一个更复杂的游戏可能是: v +---+---+---+---+---+---+---+---+---+---+ …

12
生成Linus序列
定义 根据OEIS A006345的描述: 要查找a(n),请考虑a 1或a 2。对于每个a(n)=1,2序列,找到最长的重复后缀,即对于每个序列,找到s具有序列a(1),...,a(n)结尾的最长序列ss。使用导致后缀较短的数字。a(1) = 1。 解决的例子 a(1)=1。 如果是a(2)=1,我们将得到1 1从末尾最长的一倍子串是的序列1。如果a(2)=2不是,那么它将是空的子字符串。因此a(2)=2。 什么时候n=6,我们在1 2 1 1 2 1和之间选择1 2 1 1 2 2。在首选中,1 2 1从末尾开始连续翻倍。在第二选择中,它是2。因此,a(6)=2。 什么时候n=9,我们在1 2 1 1 2 2 1 2 1 和之间选择1 2 1 1 2 2 1 2 2。在第一种选择中,最长的双倍连续子字符串是2 1,而在第二种选择1 2 2中,最后连续地双倍连续。因此a(9)=1。 任务 给定n,退货a(n)。 眼镜 n …

14
验证沃尔斯滕霍姆定理
定义 沃尔斯滕霍姆定理指出: 其中 a和b是正整数,p是素数,大括号是二项式系数。 任务 为了验证这一点,你将有三个输入:a,b,p,其中a和b是正整数且p是素数。 计算: 其中 a和b是正整数,p是质数,括号thing是二项式系数。 眼镜 以来: 其中,圆括号是二项式系数。 您可以假设 2b <= a 测试用例 a b p output 6 2 5 240360 3 1 13 3697053 7 3 13 37403621741662802118325

6
电网资源成本
电网资源成本 介绍 在棋盘游戏《电力网格》中,游戏不可或缺的一部分是购买资源为发电厂加油的行为。游戏中使用了四种资源(五种,如果您包括可再生能源,但是显然您不能为此购买资源)。这些是煤炭,石油,垃圾和铀。资源市场如下所示: 1---- | 2---- | 3---- | 4---- | 5---- | 6---- | 7---- | 8---- | 10 | 12 CCC | CCC | CCC | CCC | CCC | CCC | CCC | CCC | U | U OOO U | OOO U | OOO U | …
14 code-golf 

12
反转索引列表的列表
灵感来自这个 StackOverflow的职位。 介绍 Bob的工作是创建电子表格并对其进行组织。除Bob以外,很少有人知道他组织这些文件的方式,但是他创建了属于同一组的每个电子表格的列表。他创建的电子表格中有很多数据,但是现在我们只查看其中的一条数据:从他开始工作到创建电子表格之间的天数。第一天,他创建了两个电子表格,将它们都记录下来,0然后将它们分类到正确的位置。 现在,他的老板要求对每天发生的电子表格种类进行审查,编写一些代码来为Bob找出答案是您的工作。他手头上有太多电子表格。 输入值 鲍勃(Bob)提供给您的信息是以(0或1索引)锯齿状数组的形式出现的,每个数据的形式都是x = a[i][j]。 a是我所说的锯齿状数组本身,i是电子表格的类型,x也是数组创建的日期。 j不重要。 任务 给定按类型划分的电子表格创建日期的锯齿形数组,返回按电子表格创建日组织的电子表格类型的锯齿形数组。 例子 Bob不会只留下这些抽象数据。他给了我一些电子表格的一个子集,以帮助您弄清楚应该是什么。 输入示例(0索引): a = [ [3,2,5,0], # Bob doesn't necessarily sort his lists [1,3], [2,1,0,4], [4,5,3], [6,6] ] 输出示例(带注释,当然不是必需的): output = [ [0,2] # On day 0, Bob made one type 0 and one type 2 …

5
代数曲线绘图仪
代数曲线是“ 2D平面”的某个“ 1D子集”,可以描述为{(x,y) in R^2 : f(x,y)=0 }多项式的零集f。在这里,我们将2D平面视为真实平面R^2这样我们就可以轻松想象出这种曲线的样子,基本上是可以用铅笔绘制的东西。 例子: 0 = x^2 + y^2 -1 半径为1的圆 0 = x^2 + 2y^2 -1 椭圆 0 = xy 一个十字形状,在x轴的基本上联合和y轴 0 = y^2 - x 抛物线 0 = y^2 - (x^3 - x + 1)一个椭圆曲线 0 = x^3 + y^3 - 3xy 笛卡尔的叶 …

13
是最大堆吗?
甲堆,也被称为优先级的队列,是一个抽象的数据类型。从概念上讲,它是一个二叉树,其中每个节点的子代小于或等于节点本身。(假定它是一个最大堆。)当元素被推入或弹出时,堆会重新排列自身,因此最大的元素是下一个要弹出的元素。它可以很容易地实现为树或数组。 您应该选择接受的挑战是,确定数组是否为有效堆。如果每个元素的子元素小于或等于元素本身,则该数组为堆形式。以以下数组为例: [90, 15, 10, 7, 12, 2] 实际上,这是一个以数组形式排列的二叉树。这是因为每个元素都有孩子。90岁有两个孩子15和10。 15, 10, [(90), 7, 12, 2] 15岁还有7岁和12岁的孩子: 7, 12, [90, (15), 10, 2] 10个有孩子: 2 [90, 15, (10), 7, 12, ] 而下一个元素也将是10的孩子,除了没有空间。如果数组足够长,则7、12和2也都将有子级。这是堆的另一个示例: [16, 14, 10, 8, 7, 9, 3, 2, 4, 1] 这是先前数组制作的树的可视化效果: 以防万一这还不够清楚,这是获取第i个元素的子元素的显式公式 //0-indexing: child1 = (i * 2) + …

2
棋盘迷宫
棋子(国王,皇后,新人,主教和骑士)和棋子在板上,但不在a1或h8广场上。您的任务是从空的a1到空的h8正方形,仅通过空正方形。行动规则如下: 您可以从任何空白方块继续到其旁边的空白方块(相同等级,下一个或上一个文件;或相同文件,下一个或上一个文件)。 您可以从任何一个空方块到对角线旁边的任何一个空方块(下一个或上一个等级,下一个或上一个文件),条件是每斤角方块包含(a)两个棋子或(b)相反的棋子/棋子颜色。(两个颜色相同的非典当棋子,或一个非典当棋子与典当棋子的强度足以阻止您过弯,但两个典当棋子都不行;相反颜色的棋子/棋子在例如,如果您在c4上并且d5为空,则可以继续进行下去,前提是c5和d4包含典当或包含相反颜色的棋子/棋子。有关图片,请参见下面的“对角线示例”部分。 输入值 FEN的板说明。即:输入将是一个字符串,其中包含等级8的描述,斜杠(/),等级7的描述,斜杠…和等级1的描述。每个等级的描述都包含数字和字母,从文件a到文件h,其中字母表示棋子和棋子(黑色的棋子是p= pawn,n= knight,b= bishop,r= rook,q= queen,k= king和白色1是相同的大写形式),数字表示连续的空方块数。例如,rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBN移动一层后的木板(国王的棋子到e4)在国际象棋游戏中。 输入中a1和h8为空;即,第一个斜杠前面有一个数字,最后一个斜杠后面有一个数字。 输出量 真假,表明是否有可能成功传递到h8。 如果输入不是有效的FEN板描述(即与我上面的解释相符的描述),或者如果a1或h8被占用,则输出可以是任何东西或什么都不是。(换句话说:您可以假设输入满足以上要求。) 计分 这就是代码高尔夫:最少的字节数获胜。 输入和输出示例 请注意,您的代码必须适用于所有有效输入,而不仅仅是示例。 w在每个FEN之后添加一个空格和一个以使其可视化http://www.dhtmlgoodies.com/scripts/chess-fen/chess-fen-3.html。(请注意,其他一些在线FEN可视化工具不允许使用棋类中非法的棋盘,例如,棋子的等级为1或8,因此不能用于我们的目的。) 真实的例子 8/8/8/8/8/8/8/8 —空板 1p1Q4/2p1Q3/2p1Q3/2p1Q3/2p1Q3/2p1Q3/Q1p1Q3/1q3q2—有一条路径a1,b2,b3,b4,b5,b6,b7,c8,d7,(不是 e8,但被遮挡了)d6,d5,d4, d3,d2,d1,e1,f2,f3,f4,f5,f6,f7,f8,g8,h8 8/8/KKKKK3/K3K3/K1K1p3/Kp1K4/K1KK4/2KK4 —一个示例,其中稍后必须通过在某个点被遮挡的正方形(以确保您不会将正方形设置为不可通过) K1k1K1K1/1K1k1K1k/K1K1k1K1/1k1K1K1k/K1k1K1k1/1K1k1k1K/K1K1k1K1/1k1k1K1k—只有一条路可以走(只要顺着鼻子走:每一步只有一个正方形,除非向后走一步);这也是一个正方形在某个点被阻塞但稍后需要的示例 虚假的例子 6Q1/5N2/4Q3/3N4/2Q5/1N6/2Q5/1N6 —任何尝试在路径上的操作都必须穿过两个对角线放置的相同颜色的片段 N1q1K1P1/1R1b1p1n/r1B1B1Q1/1p1Q1p1b/B1P1R1N1/1B1P1Q1R/k1k1K1q1/1K1R1P1r-穿过a8-h1对角线的唯一方法是在f2-g3处,但这将需要穿过e1-d2或f2-e3,这都是不可能的。 4Q3/4q3/4Q3/5Q2/6Q1/3QqP2/2Q5/1Q6 4q3/4Q3/4q3/5q2/6q1/3qQp2/2q5/1q6 对角线示例 如果上面的散文不清楚,这里有一些图片。 可通过对角线 不可逾越的对角线
14 code-golf  chess  maze 

11
我只用美元付款
作为标题-尽管是离散的-暗示,我只用美元支付。 挑战 编写一个将字符串作为输入的函数/程序,该字符串是货币值,后跟一个符号。ex) £4.99。然后,将相同的金额返回转换为美元。 输入值 您将获得一个字符串作为输入。它将带有货币符号,后跟一个带两位小数的数字(可能是.00)。用小数点.和/或逗号,分隔数字。以下货币符号将出现在输入中: 欧元:€ 英镑:£ 人民币:¥ 另外,根据货币的不同,会用逗号或小数点将“美元”与“美分”分开: 欧元:#。###,## 英镑:#,###。## 人民币:#,###。## 输出量 您将输入内容从符号确定的货币转换为USD,四舍五入到小数点后两位。输出将采用format格式$#,###.##,如果需要的话,输出的左边当然会有更多数字(编辑:这意味着输出中有任意数量的逗号,就像输入中一样)。我们将使用的货币汇率如下。 您可以假定输入中包含的符号仅是上述(€ £ ¥ . ,)之一-始终有效。 汇率 €1 : $1.10 £1 : $1.37 ¥1 : $0.15 例子 Input: €1,37 £4.00 ¥2,782,122.78 Respective output: $1.51 $5.48 $417,318.42 最后的话 如果您使用上述符号之一(€,£,¥),则可以将它们计为1个字节 这是代码高尔夫,所以最短的代码以字节为单位!
14 code-golf  math  string 

19
截断连续字符到n个长度
挑战 给定输入字符串和整数n-将连续字符的所有游程截断为最大n个长度。字符可以是任何字符,包括特殊字符。该函数应区分大小写,并且n的范围可以从0到无穷大。 输入/输出示例: f("aaaaaaabbbccCCCcc", 2) //"aabbccCCcc" f("aaabbbc", 1) //"abc" f("abcdefg", 0) //"" f("aaaaaaabccccccccCCCCCC@", 4) //"aaaabccccCCCC@" 计分 评分基于使用的字节数。从而 function f(s,n){return s.replace(new RegExp("(.)\\1{"+n+",}","g"),function(x){return x.substr(0, n);});} 将是104分。 打高尔夫球快乐! 编辑:删除语言限制,但我还是很想看看javascript答案
14 code-golf  string 

21
高尔夫球位编织
注意:此挑战的前半部分来自Martin Ender的先前挑战, Visualize Bit Weaving。 深奥的编程语言 Evil对字节值进行了有趣的操作,称之为“编织”。 本质上是字节的八位的排列(因为模式是对称的,所以我们从哪一端开始计数并不重要): 位0移至位2 位1移至位0 位2移到位4 位3移至位1 位4移至位6 位5移至位3 位6移至位7 位7移至位5 为方便起见,这是置换的其他三种表示形式。作为一个周期: (02467531) 作为映射: 57361402 -> 76543210 -> 64725031 并作为映射对的列表: [[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]] 后 8织品,字节基本复位。 例如,编织数字10011101(157以10 为底)将产生01110110(118以10底)。 输入值 只有256有效输入,即0和之间的所有整数255。可以采用任何基数,但是必须保持一致,并且如果选择的基数不是十进制,则必须指定它。 你可能不会对输入进行零填充。 输出量 您应该以任何基数输出位编织的结果,该结果还必须一致,并且如果不是十进制,则必须指定。 您可以将输出零填充。 相关:可视化位编织

9
最接近7个主要产品的产品
(通过聊天) OEIS条目A123321列出了由七个不同素数组成的数字序列。为简便起见,我们将其称为7DP号。前几个数字及其对应的除数如下: 510510 = 2 * 3 * 5 * 7 * 11 * 13 * 17 570570 = 2 * 3 * 5 * 7 * 11 * 13 * 19 690690 = 2 * 3 * 5 * 7 * 11 * 13 * 23 746130 = 2 …

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.