Questions tagged «code-golf»

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

5
使用ASCII艺术显示长乘法
挑战 编写一个程序,该程序从标准输入中获取两个整数,并用逗号分隔,然后将这两个整数的长倍乘积打印到标准输出中。 例如: 输入值 14, 11 程序输出 14 x11 _____ 14 14 ______ 154 输入值 -7, 20 程序输出 -7 x20 _____ 00 14 _____ -140 假设输入和数字始终在[-999,999]范围内正确 获奖标准 最短的代码胜出!

27
从字符串中删除唯一元素
我遇到了这个问题,因为在字符串中查找唯一字符似乎是非常常见的用例。但是,如果我们想摆脱它们怎么办? 输入仅包含小写字母。仅使用从a到z的字母。输入长度可以是1到1000个字符。 示例: 输入:helloworld 输出:llool 目标:最短的代码胜出 语言:TIOBE语言的前20名
12 code-golf  string 

4
绘制任意大小的平铺立方体
用ASCII艺术画一个任意大小的平铺立方体。 您将得到三个数字a,b和c,程序将输出一个a * b * c大小的立方体。 例子 3 3 3 -> ____ ____ ____ /____/____/____/| /____/____/____/|| /____/____/____/||| |____|____|____|||/ |____|____|____||/ |____|____|____|/ 5 2 3 -> ____ ____ ____ ____ ____ /____/____/____/____/____/| /____/____/____/____/____/|| /____/____/____/____/____/||/ |____|____|____|____|____||/ |____|____|____|____|____|/ 4 6 5 -> ____ ____ ____ ____ /____/____/____/____/| /____/____/____/____/|| /____/____/____/____/||| /____/____/____/____/|||| /____/____/____/____/||||| |____|____|____|____|||||| |____|____|____|____|||||/ |____|____|____|____||||/ …

2
Code Golf:宇宙飞船的命运是什么?[浮点版本]
这个问题比ASCII艺术版本要难一些。没有艺术,现在您可以进行浮点运算了! 挑战 当船上发生天文爆炸时,USS StackExchange正在穿越cg-00DLEF行星的重力场。作为该船的首席程序设计官,您的工作是模拟船的轨迹,以预测您是否会被迫撞倒cg-00DELF的太阳系中的土地。在爆炸期间,您的船严重受损。由于飞船的免费DEEEPRAROM *有限,因此您必须以尽可能少的字符编写程序。 *动态可执行电子擦除可编程随机存取只读存储器 模拟 有点像ASCII艺术版本,会有时间步伐的想法。在另一个版本中,时间步长是相对较长的时间:船舶可以在单个时间步长中超越行星的重力行进。在此,由于所涉及的距离较大,因此时间步长要小得多。然而,一个主要的区别是不存在细胞。飞船的当前位置和速度将是浮点数,以及所涉及的重力。另一个变化是,行星现在的尺寸更大。 模拟中最多有三个行星。这三个都将具有特定的位置,半径和重力。每个行星的重力是一个向量,直接向行星中心施加力。查找该矢量强度的公式为(Gravity)/(Distance**2),其中距离是从船到行星中心的精确距离。这意味着重力可以到达的地方没有限制。 在任何特定时间,飞船都有一个速度,即它从最后一个时间步到现在的距离和角度。该船也有动力。它在当前时间步与下一时间步之间行进的距离是其当前速度加到该位置所有重力矢量的总和。这成为飞船的新速度。 每个模拟的时间限制为10000个时间步。如果太空飞船在行星内部移动(比行星的半径更靠近行星的中心),则它会撞入该行星。如果到模拟结束时飞船没有坠入任何行星,则可以认为它已脱离重力。这艘船不可能如此完美地对准,以至于它能够在10000个时间步长上坠毁而设法在轨道上停留10000个时间步长。 输入值 输入到STDIN的四行。每行由四个逗号分隔的数字组成。这是数字的格式: ShipLocX,ShipLocY,ShipVelX,ShipVelY Planet1LocX,Planet1LocY,Planet1Gravity,Planet1Radius Planet2LocX,Planet2LocY,Planet2Gravity,Planet2Radius Planet3LocX,Planet3LocY,Planet3Gravity,Planet3Radius 如果少于三个行星,则剩余线将对所有值填充零。这是一个示例输入: 60,0,0,10 0,0,4000,50 100,100,4000,50 0,0,0,0 这意味着太空飞船位于(60,0),并且以“ 10个单位/时间步长”的速度直线“向上/向北”行驶。有两颗行星,一颗位于(0,0),另一颗位于(100,100)。两者的重力为4000,半径为50。即使所有这些都是整数,它们也不总是整数。 输出量 输出将是一个字到STDOUT,以告诉飞船是否坠毁。如果船舶坠毁,请打印crash。否则,请打印escape。这是上述输入的预期输出: crash 您可能想知道发生了什么。这是一个Pastebin帖子,其中包含该飞船的详细飞行日志。数字并不能很好地帮助人们可视化事件,所以这是发生了什么:飞船设法借助第二个行星(向东北)的引力逃脱了第一个行星(向西)的引力。它向北移动,然后略微经过第二个行星的西面,几乎没有丢失它。然后,它绕行星的北侧弯曲并撞向第二颗行星的东侧。 其他一些案件进行检查 60,0,10,-10 0,0,2000,50 100,100,1357.9,47.5 0,0,0,0 逃逸(由于平方反比定律,如果您离60个单位远,则2000重力不大) 0,0,0,0 100,100,20000,140 -50,-50,50,50 -100,-100,50,50 坠毁(第一颗行星非常巨大且非常接近) 0,0,0,0 0,0,0,0 0,0,0,0 0,0,0,0 逃脱(这是一个极端的情况:没有行星,直接的解释将表明飞船直接在行星的顶部) 规则,限制和注释 这是代码高尔夫。适用标准代码高尔夫规则。您的程序只能用可打印的ASCII字符编写。您无法访问任何类型的外部数据库。您可以用任何语言(除了专门用于解决此挑战的语言)编写条目。 结束传输

26
去嵌套列表
给定一个列表,该列表中嵌套有列表,请返回该列表,其中嵌套列表的项目已取消嵌套。 输入值 该列表最多具有4个深度的嵌套列表。将输入中的所有0计数为空空间。 输出量 分别打印出每个项目。不要将输出作为列表打印。您可以使用任何类型的空格分隔每个项目。 案例案例 [[1, 0], [2, 0], [2, 3]] -> 1 2 2 3 [[[4, 5, 8]], [[5, 6, 20]], [[1, 20, 500]]] -> 4 5 8 5 6 20 1 20 500 [[[1, 0], [0, 0], [0, 0]], [[1, 0], [1, 2], [2, 0]], [[2, 0], …
12 code-golf 

11
演示语言完整语法的最短程序
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 3年前关闭。 挑战 编写最短的程序来演示编程语言的全部语法:语句,表达式,运算符,保留字等。 采用该语言的语法(通常在EBNF中)并创建一个使用所有语法的程序。 该程序不需要做任何特别有用的事情,但是如果这样做的话,那是一个好处:) 规则 您必须使用该语言的所有语法:该语言定义的每种类型的语句,表达式,运算符,关键字等。 除了语言附带的标准库(它不需要使用整个标准库)以外,它必须能够无依赖地运行。 包括指向您所使用的语言规范的链接(例如,这里是Python 2.7语法)。
12 code-golf 

13
创建一个ascii进度条
好吧,这类似于这个问题,但有一点区别。您必须编写一个程序来询问进度条的宽度以及完成了多少工作。然后绘制具有以下功能的进度条: width表示绘制进度条必须使用多少个字符 进度是通过介于0.1.1之间的浮点值给出的 进度栏中的第一个和最后一个字符应与所有其他字符不同,例如“ [”和“]” 您的程序应使用两个不同的字符来表示自开始以来已完成的进度 您必须使用十进制数字+“%”符号在进度条的中间写出要完成的工作量。 处理极端输入(例如完成的150%或-5%)的奖励积分。 得分字符数*(1个不带奖金或0.75个宽度的奖金) 有效输出的一些示例 79 0.15 [|||||||||||| 15% ] 25 0.76 [##########76%#####.....] 39 -0.12 [ -12% ] 25 7.6 [##########760%#########]

16
查找单手单词
“夸大”是一个单词的示例,可以在普通的qwerty键盘图的左手输入。“垄断”就是右手的一个例子。 在unix words文件中搜索可以输入的单词。输出应为两行:左手用空格分隔的单词列表,后用右手列表。例如 a abaft abase abased abases abate abated abates abbess abbesses ... h hi hill hilly him hip hippo hippy ho hokum ... 左边的字母是: qwertasdfgzxcvb 右侧字母为: yuiophjklnm' 大写字母为单手;带变音符号的字母算作双手,因此包含它们的单词可以忽略。
12 code-golf 

4
从前缀表示法转换为前缀表示法
给定一个算术表达式,可以包括括号(()),指数(^),除法(/)和乘法(*),加法(+)和减法(-)(按该操作顺序),例如 a ^ (2 / 3) * 9 * 3 - 4 * 6 以前缀表示法输出相同的表达式。 (- (* (* (^ a (/ 2 3)) 9) 3) (* 4 6)) 输入和输出中的空格都是可选的。您可以假定所有运算符都是左关联的,并且表达式中的所有数字都是一位整数(即[0-9])。 这是一场代码挑战赛,因此最短的解决方案将获胜。
12 code-golf  math 

1
模拟(基于重力的)台球式计算机
机器 台球式游戏机仅由符号\ _ /以及大小写字母,空格和数字组成1。 \和/是坡道。来自上方的球将分别偏转到右侧或左侧。对于两个坡道,如果球从任一侧进来,它将向下偏转。 _是一个逻辑元素。它执行的逻辑是计算机中最像台球的部分。首先,来自左侧或右侧的球沿相同方向连续。来自上方的球将停止。然后,执行结束后(请参见下面的“运行机器”),如果横穿/着陆在其上的球的数量为正偶数,则从元素底部释放单个球。 一个空格什么都不做。来自任何方向的任何球都将由于重力而直线下降。 小写字母是输入。所有输入将是单个1或0。 大写字母为输出。输出的数字将是撞到其位置的台球数。 该号码1在该位置释放了一个额外的台球。它代表逻辑1。 除此以外的所有字符都会\_/导致任何方向的球由于重力而掉落。 球永远不会合并,分裂或碰撞。它们仅在从输入a _或a 释放时创建1。只有当它们掉落到地上时才会被摧毁_。 示例机器- 1 a \_/ b \_/ \/ /\ / _ _ A B 机器中永远不会有任何空白行,但是_可能会使显示空白行。 运行机器 机器按层或行运行。顶层上的所有台球运动都在第二层发生任何事情之前进行。 机器 ab \_A C 运行如下: 首先,它提示您输入a形式a:。然后,用户将输入1或0(接着回车)。它对输入重复此操作b。这是第一层的结尾。我将假设用户为两个输入都输入了1。 然后,它会跟踪第一个球(从a)的路径,该球沿着\,穿过_,进入A,然后下降到下方的位置A。然后,它跟踪出第二个球(从b)的路径,该球直接向下进入_并终止。这是第二层的结尾。 现在,在第三层之前,由于上面_有两个球交叉,因此释放了一个球。输出A上有一个球越过,因此输出A:1。 对于第三层,它跟踪第一个球的路径(从_),该球经过C并直线下降。第二个球(落入A)也直线下降。 现在,在第四层之前,由于输出上C有一个滚珠,因此输出C:1。 由于第四层为空白,因此程序终止。 总结果应该像 a:1 (the user entered the one) b:1 (same …

3
实施图形计算器
涉及计算器的问题很多。但是,似乎没有涉及实现图形计算器的事情。 挑战 您将要编写一个完整的程序,该程序将多个公式用作来自STDIN的输入并将其图形化到STDOUT。输入将采用形式f1(x)=x^2-x-1。f后面会有一个数字0-9(含0-9),然后是(x)=,然后是要绘制图形的公式。您的程序应该能够接受输入,图形,接受更多输入,图形等。 这是代码高尔夫。 您的图表的X轴范围应为-5到5,每1/2单位至少有一个点的分辨率。Y轴要求相同。与现代计算器相比,这似乎是一个很小的范围,但增加此数量很可能是微不足道的。该图应在其上绘制轴,并带有+整数形式的刻度线。 应按正常的操作顺序对公式进行评估。这些公式中将没有任何垂直渐近线/未定义区域。该变量将始终为x。如果使用相同的方程式编号输入两个公式,则最旧的一个应被擦除并用新的公式替换。空白公式的计算结果应为零。由于公式可能不会总是给出1/2的整数倍,因此您需要四舍五入到最接近的1/2。 绘制公式的图形时,其线应由公式的数字组成。当一条线与某个轴相交时,该轴应在顶部绘制。当两条线相互交叉时,显示的内容无关紧要。 输入示例 f1(x)=x+1 输出量 + 1 | 1 + 1 | 1 + 1 | 1 + 1 |1 + 1| +-+-+-+-+-+-+-+-+-+-+ 1 | 1 + 1 | 1 + 1 | 1 + 1 | 1 + | + 输入值 f2(x)=(x^2)^0.25 输出量 + …

3
节省会话的Quine
受到这个问题的启发。 创建一个程序,提示用户存储一些数据,并在退出程序时吐出程序本身,但会话数据已更改。 然后,用户打开新生成的程序,并可以从先前的程序中调出数据。 指令 KEY VALUE:KEY将会话变量设置为VALUE *:清除所有数据 ! KEY:删除 KEY ? KEY:查询KEY(如果不存在:什么都不打印然后继续) 否则,退出程序 键或值都不能包含任何空格。新生成的程序的文件名必须标识该程序的版本,您可以使用日期或计数器。 交互示例: name test store name = test data is now { name: test } 0 1 data is now { name: test, 0: 1 } ? name output: test ! 0 delete 0 data is now …
12 code-golf  quine 

7
今天是星期几(或其他日期)?
任务 编写一个程序或函数来计算用户输入的日期的星期几名称。 输入输出 输入是一个字符串,YYYYMMDD。 输入值示例: 20110617:2011年6月17日 19040229:1904年2月29日 06661225:666年12月25日 00000101:1月1日,0 99991231:9999年12月31日 您可以假设所有输入均有效。请注意,零年有效。 输出是0和之间的整数6。每个整数代表星期几的名称。您可以自由决定哪个整数代表星期几的名称,像这样 0:星期一 1:星期二 2:星期三 ... 6:星期日 (按顺序)或这一 0:星期一 1:星期三 2:周日 ... 6:星期六 (顺序不对)。 测试用例 输入周日输出(在此示例中使用[0..6-> Monday..Sunday]。) 20110617星期五4 19500101星期日6 22220202星期六5 19000228星期三2 19000301星期四3 19450815星期三2 19040229星期一0 19040301星期二1 17760704星期四3 20000228星期一0 20000229星期二1 20000301星期三2 20121223星期日6 00000401星期六5 66660606星期三2 59161021星期六5 限制 你不能使用任何类型的函数/类/ ......这些都与时间戳或日期,就像Date在课堂上Java/ JavaScript/ ActionScript,或getdate在功能上PHP。 您应该使用Gregorian压延机,现在很多人都使用它。 当然,最短的代码胜出。如果两个代码的长度相同,则得票最多的代码将获胜。 …
12 code-golf  date 

4
国际象棋骑士的最短路径
您的程序应计算国际象棋骑士到达国际象棋棋盘每个方格所需的移动次数。输入将是两个以空格分隔的整数,代表起始正方形的坐标(水平然后是垂直坐标,每个为0-7)。您的程序应输出一个数字网格,其中包含国际象棋骑士达到每个方块所需的最少移动次数。 例子 输入 0 0 输出 03232345 34123434 21432345 32323434 23234345 34343454 43434545 54545456 输入 3 1 输出 21232123 32303232 21232123 34121432 23232323 32323234 43434343 34343434 最短的代码获胜。
12 code-golf  chess 

5
多项式插值
编写一个 使用真正的任意精度有理数执行多项式插值的程序。输入看起来像这样: f(1)= 2/3 f(2)= 4/5 f(3)= 6/7 ... 您可以假设=符号前后只有一个空格,所有数字都是小数或整数。您可能还假设输入中的所有分数都是不可约的。 您可以假设不需要进行错误检查,即输入是有效的,并且f(x)中没有x被加倍。 输出应采用兼容LaTeX的形式,发出的LaTeX代码应产生与此处给出的输出相同的图形表示。 f(x)= 123x ^ 2 + \ frac {45} {2} x + \ frac {7} {4} 例如,必须尽可能减少分数。\frac{2}{4} 不允许这样的事情。如果数字是整数,请不要使用小数。 特殊规则: 您的程序应该... 适用于12级以下的多项式 不到1分钟即可完成输入 不使用任何为您完成整个计算的函数 输出最小可能次数的多项式 测试用例: 给定的测试用例只是为了澄清。您的程序应为所有正确的输入产生正确的结果。 输入值 f(1)= 2/3 f(2)= 4/5 f(3)= 6/7 输出量 f(x)=-\ frac {4} {105} x …

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.