Questions tagged «code-golf»

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

7
建筑拆除
挑战 编写完整的程序/功能,以每秒1层的速度拆除给定的建筑物。 输入 输入是通过STDIN(或使用您的语言所说的任何东西)或通过函数的ARGUMENT 构建的。 t = 0秒 | |#| {#} |# #| |# # #| |# # #| |# # #| TTTTTTT 输入包括: | 标记楼层的开始和结束。 {,}用炸药在地板上做标记。 # 是装饰用的窗户。 是空间,它在地板内无处不在的#任何地方。 T 标记为地面(无法拆除)。 * 标志着引爆的地板。 输入规则: 建筑物从顶部开始|并在地面上结束(no(T)= no(char used in ground floor))。 #在每一层楼的每个奇怪的地方都有一扇窗户。 T 标记您输入的结尾。 只有一个地板由炸药。 每层楼都由奇数制成。字符。 当您爬下楼层时,楼层可以等于前一层的大小,也可以大2个字符。 输入可以作为chars或的数组strings。 输出: t …

14
救救我,我迷失在海洋中!
介绍 今天我独自乘独木舟去钓鱼,不幸的是我睡着了,溪流把我带走了,我失去了桨,现在是晚上,我迷失在大海中!我看不到海岸,所以我必须很远! 我有手机,但由于被咸水弄湿而出现故障,由于麦克风和电话扬声器坏了,所以我无法讲话或听到任何声音,但是我可以向沿海海滩上的朋友发送短信! 我的朋友有一个非常强大的手电筒,他把它举在竹bamboo上,向我展示正确的方向,但是由于我没有桨,所以我不能划船,所以我必须告诉他我有多远,这样他就可以派人去抓住我! 我的朋友告诉我,他将手电筒保持在海平面11.50米处,我可以看到地平线上的光。现在,我只从学校里记得地球半径在海平面应为6371 Km,而且我坐在独木舟中,因此您可以假设我的眼睛也在海平面上。 任务 由于潮流使我时时刻刻在移动,我的朋友不时地举起火炬(现在是12.30米),请编写完整的程序或函数,以帮助我计算与朋友的位置之间的距离! 这是一个图(不按比例): 标记M为我的橙色点,标记T为火炬的红色点。绿线是M和之间的线性距离T 输入值 从标准输入中获取h在海平面以米为单位的火炬高度,我在地平线上以浮点数的形式显示该浮点数,精度为小数点后两位(精度为1厘米或0.01米)。范围从0到100。 输出量 您应该以1 cm的精度返回绿线的欧几里得长度。例如,如果以米为单位输出,则应至少使用两个小数。输出可以是米或公里,但要注意精度。 测试用例: 所有值以米为单位。 11.5 > 12105.08 13.8 > 13260.45 规则 最短的代码获胜。

2
解释重复!
这项挑战是有关重复的两个挑战系列中的第一个。第二个即将到来。 在一种叫做重复的语言(我刚刚写的东西)中,包含一个无限的字符串12345678901234567890...,带有1234567890永远重复。 以下语法可用于输出数字: +-*/:这会将运算符插入重复数字的字符串中。 例子: +-> 1+2= 3(在和之间+插入一个)+12 +*-> 1+2*3= 1+6= 7(与上面相同,但现在使用两个运算符) /-> 1/2= 0(重复使用整数除法) //-> 1/2/3= 0/3= 0(重复使用带有多个减法和除法的“左关联”) 插入每个运算符时,除非有,否则它的左边有一位数字c(请参阅下文)。 c:与字符串中的下一位数字连接。 例子: c+-> 12+3= 15(c“继续” 1并将其与下一位数字串联起来2,形成12) +c-> 1+23=24 ccc -> 1234 ():用于处理数字的括号。 例子: (c+)*-> (12+3)*4= 15*4= 60(重复使用操作顺序) (c+)/c-> (12+3)/45= 15/45=0 (cc+c)/-> (123+45)/6= 168/6=28 s:跳过数字(从无限字符串中删除数字)。 s+-> 2+3= 5(s跳过1) csc- > 124(第一cconcats …

3
预购+后购到有序
任务 给定完整二叉树的前遍历和后遍历,返回其有序遍历。 遍历将表示为两个列表,两个列表均包含n个不同的正整数,每个列表唯一地标识一个节点。您的程序可能会采用这些列表,并使用任何合理的I / O格式输出结果顺序遍历。 您可以假设输入是有效的(也就是说,列表实际上表示对某些树的遍历)。 这是code-golf,因此以字节为单位的最短代码获胜。 定义 一个满二叉树是有限的结构节点,这里由唯一的正整数表示。 完整的二叉树是由单个节点组成的叶子: 1 或一个分支,由一个带有两个子树的节点组成(称为左子树和右子树),每个子树又是一个完整的二叉树: 1 / \ … … 这是完整的二叉树的完整示例: 6 / \ 3 4 / \ / \ 1 8 5 7 / \ 2 9 该前序遍历的满二叉树的递归定义如下: 包含节点n的叶子的预遍历是列表[ n ]。 包含节点n和子树(L,R)的分支的预排序遍历是列表[ n ] + 预排序(L)+ 预排序(R),其中+是列表串联运算符。 对于上面的树,就是[6,3,1,8,2,9,9,4,5,7]。 完整二叉树的后遍历定义如下: 包含节点n的叶子的后序遍历是列表[ n ]。 …

5
神话般的魅力射门
今天在网上找到了这张照片。作为一个懒惰的程序员,我不想打开谷歌并输入几个字符。太多的工作!这是一项非常重要的任务,应该将其自动化。 挑战 每个人都知道,google搜索结果中的第一张图片始终是最好的。因此,应将其呈现给用户。 您要编写一个程序或函数,该程序或函数使用字符串作为参数,并在搜索该名称及其glamour shot后面的单词时显示它在google上找到的第一个图像。 Google搜索查询 要在Google上搜索图片,该网址应包含查询参数tbm=isch和q=query,并query为您要搜索的名称。 我的名字有效的查询字符串Bas会www.google.com/search?tbm=isch&q=Bas 输入值 您的程序或函数采用单个输入参数,即您要在Google上搜索的名称。该字符串将包括人物[a-z],[A-Z],[0-9]和(空间)。此字符串可以用空格分隔,要在google上搜索以空格分隔的字符串,应使用替换空格+。例如,这是一个有效的查询: www.google.com/search?tbm=isch&q=Bassdrop+Cumberwubwubwub+glamour+shot 输出量 图像可以绘制到屏幕上,也可以保存到文件中(任何格式)。 如果Google上的第一个搜索结果是gif文件,则可以显示gif或显示该gif的任何框架。 测试用例 运行此代码段以查看预期结果 显示代码段 <pre>f('Bas') // www.google.com/search?tbm=isch&q=Bas+glamour+shot <img src="http://i.stack.imgur.com/IViaM.jpg" style="width:40%;height:40%"/> <pre>f('Bassdrop Cumberwubwubwub') // www.google.com/search?tbm=isch&q=Bassdrop+Cumberwubwubwub+glamour+shot <img src="http://i.stack.imgur.com/tdhvW.png" style="width:40%;height:40%"/> 运行代码段隐藏结果展开摘要 这是代码高尔夫球,以字节为单位的最短代码胜出!

2
成为冠军
井字游戏拉丁! 这是一个真实的故事,因此名称已更改。 我的拉丁老师拉丁先生创建了自己的专有(无笑话)井字游戏变体。我们称其为tic-tac-latin。这款游戏很简单,基本上是井字游戏,四格四格。 正式规则声明 线可以是行,列或对角线。有两个符号,“ X”和“ O”,但是一个或两个都可以代替一个不同的符号。 当您的符号中有三个而另一个字符中的一个时,您得分为一。 这些安排得分: --- -O-- XXXO XOOX O -XX - 哦 - - X - --- Ø 这些不得分: ---- XXXX ---- OOOO ---- XXX- ---- OOO- 只要一个玩家获得的积分多于另一个,就会赢得比赛。仅当棋盘被填满时,游戏才是平局。 挑战 解决这个游戏。您的工作是提供一种保证双赢的方法,以最佳结果为准。 您的解决方案可以选择从第一开始或从第二开始(因此可以选择它的符号)。在用户输入动作并相应显示更改的情况下,实现交互式游戏不是强制性的。它也可以是将输入作为游戏状态并输出新棋盘或其动作描述的功能或程序。每种选择每次移动都必须在大约十秒钟内运行。 与任何顺序的比赛对战时,玩家都必须获得最佳结果。这意味着您可以假设输入位置是您在播放器中可以到达的位置。提交的内容必须是确定性的,并不一定需要提供最佳的证明,但是,如果提交的内容(被殴打)被破译,您的提交将被视为无效(您可以将其保留,但可以在标题中添加(破译))。 这是一项艰巨的任务,因此任何有效的提交都是令人印象深刻的,值得我们接受,但是我将使代码高尔夫球成为主要的获胜标准。 通过从该列表中向下选择直到选择一名获胜者来选择获胜者。 最短的解决方案实现,总能取胜 最短的实施
11 code-golf  game 

8
数字三角形
信用 我感谢Rand Al'Thor提出的基于字母的问题,感谢他提出了此代码高尔夫挑战赛的灵感。 背景 挑战的本质基于兰德在他的“由三个字母组成的三角形”中提到的算法: 以10个字母开头,每个字母分别是X,Y或Z。 在每一行的下面,构造下一行,如下所示。如果两个相邻的字母相同,请在它们下面写下相同的字母;如果它们不同,则在它们下面写下第三个字母。 然后,您将重复上一步,直到第十行中有一个字母为止。 挑战 我们将对上述算法进行数学上的旋转: 让我们从一个10位数字的序列开始,每个数字用空格隔开,每个数字分别为1、2或3。 在每一行的下面,构造下一行,如下所示。如果两个相邻的数字相同,请在它们下面写下相同的数字;如果它们不同,则在它们下面写下第三位数字。 重复上一步,直到获得一个最终编号。 因此,遵循此算法,1 2 3 3 1 3 1 3 1 2例如,如果从row开始,则会生成以下三角形: Input: 1 2 3 3 1 3 1 3 1 2 Output: 1 2 3 3 1 3 1 3 1 2 3 1 3 2 2 …

6
连续素数的产品
提交到沙箱时,我的信誉为17017,你们都可以将其素为7×11×13×17,这是四个连续素数的乘积。 请编写一个函数或程序以输出两个或多个连续素数的所有乘积,直到一个输入整数n。例如,给定n=143您应该输出6, 15, 30, 35, 77, 105, 143(或等效的输出格式)。 对I / O和漏洞的一般限制适用。 这是代码高尔夫球,因此最短的程序为准。

2
Marcel Proust和Markov解密安全服务的T9文本
好像这个挑战可能在本质上是更多的Python风格 ... 不需要先验的Markov链或加密技术知识。 您是间谍,需要从英国安全服务M1S获得一些关键信息。M1S的代理很清楚,他们的Wi-Fi信号可以被拦截,利用了他们的Android / iOS安全漏洞等,因此他们所有人都使用Nokia 3310来传输使用T9自动完成功能键入的文本信息。 您以前曾破解过要交付给情报机构的电话,并在光荣的塑料键盘下安装了键盘记录程序,所以现在您收到的数字序列与他们键入的字母相对应,因此“ 鹰离开了巢穴提醒代理商 ” 84303245304270533808430637802537808430243687 可是等等!某些T9序列含糊不清(“ 6263”可能是“名称”,“鬃毛”或“双簧管”;模糊性越大,可疑性就越大!),那么您该怎么办?您知道,M1S唯一使用的入学考试是在15秒内总结Marcel Proust的杰作“回忆过去的事”,因此您要根据整个主厨中的频率分布来选择上一个单词之后的单词。普鲁斯特的魅力! 您可以破解代码并获取原始消息吗? T9的原理 T9自动完成机制可以描述如下。如上图所示,它将字母字符映射为数字。 abc -> 2 def -> 3 ghi -> 4 jkl -> 5 mno -> 6 pqrs -> 7 tuv -> 8 wxyz -> 9 <space> -> 0 <other> -> <is deleted> T9解密器接收到一个数字序列,并尝试猜测可以通过这些按键键入的单词。它可能使用标准的频率表,但我们要进一步走一步,并使用马尔可夫链预测下一个单词! 学习样本 …

7
创建无限的反串
一个counterstring是某种形式是在软件测试中使用自描述的测试数据。不知道它实际上是James Bach发明的,但我从那里知道。 想法如下:测试数据包含许多星号(*)。星号前面的数字告诉您此时的测试数据有多长时间。如果您需要知道测试数据中不是星号的位置,请找到最后一个星号,查看前面的数字,然后加上后面的数字。 序列开始如下: 2*4*6*8*11*14*17*20*23* ^ 如您所见,标记的星号位于位置14。 如果文件碰巧被截断,如下所示 [...]2045*20 那么你就可以得到,有2047个字符的地方(2045其中星号是加2的限制2和0)。 创建最短的程序(这是code-golf)是您的任务,该程序输出(std :: out或file或其他文件)该格式的任意长测试字符串。以字符为单位的长度作为参数给出。该程序最多应支持2 GB的测试数据(输入值2147483647字符)。 2 GB文件中的“危险”位置: 8*11* 98*102* 998*1003* 9998*10004* 99998*100005* 999995*1000003* 9999995*10000004* 99999995*100000005* 999999995*1000000006* 如果决定在995 * 999 *和995 * 1000 *或类似范围内做出决定,这应该回答@Leaky Nun的问题:否。 输入值为2147483647的2 GB文件的末尾是: 2147483640*2147483

2
电视上有什么?
挑战 编写一个程序,该程序使用来自此处站点的XML数据显示当前在BBC 1上显示的程序的名称。 信息 所有时间均为伦敦时间(发布时为GMT + 1,10月30日之后为GMT + 0)。因此,您应该将当地时间转换为伦敦时间。 每个程序都有一个开始和结束时间。如果当前时间在程序的开始时间之后和结束时间之前,则该程序当前正在显示。您的程序可能会以您希望的任何方式处理重叠。 您的输出必须是程序标题,如下所示: BBC News 但是,如果程序有字幕(由字幕标签显示),则输出应如下所示: Steptoe and Son: The Piano 其中“ 斯特普托和儿子”为标题,“钢琴”为副标题。带有字幕的示例程序如下: <programme> <subtitle>Newcastle</subtitle> <title>Flog It!</title> <end>1710</end> <start>1610</start> <desc> Antiques series. Paul Martin presents from the Discovery Museum in Newcastle. The items uncovered include a book of autographs with a local …

6
此按钮有什​​么作用?
目前,在我的工作中,我们搬到了新建筑物。它应该是最先进的,并具有自动照明,自动卷帘百叶窗,现在被称为该镇最环保的建筑。 但是,它并不是真的工作得很好。.阴天有时会卷起百叶窗,当太阳开始发光时会向上卷起,并且有时每隔5-10次交替打开和关闭,灯光有时会导致迪斯科效果分钟。另外,我们没有任何手动方式来控制这些下拉式百叶窗,也没有温度,但是我们确实有一个遥控器来控制灯光。 但是,这些遥控器没有说明手册,并且包含20多个按钮,用于执行除您似乎需要的操作之外的所有操作。 PS:我在1.5个月前在沙盒中编写了此挑战。目前,我们有点了解遥控器的工作原理。. 这栋建筑的一大优势是,室外温度为摄氏30度以上,而内部温度始终保持在21摄氏度。 因此,这就是介绍,灯光的遥控器激发了这一挑战。 挑战: 假设我们最初关闭了灯: L 然后我们按下所有按钮,然后输出灯的状态。 对于灯泡遥控器的不同功能,我们使用以下数字。当该数字前面有减号时,我们做相反的事情。 1=开; -1=关。 2=增加力量25%;-2=降低(昏暗)强度25%。 3=点差增加50%;-3=减少点差50%。 4 =切换灯光类型。 所以,这一切都非常模糊,因此让我们更深入地了解每件事的含义: 因此,-1(OFF)很明显,1它将进入初始的ON状态(表示为50%,表示为250%3): // // L ==== \\ \\ 2以及-2光的传播距离(==每25%附加一个): 0% (equal to a light bulb that is OFF) L 25% L == 50% L ==== 75% L ====== 100% L ======== 3并且-3是光差多远: 0%: …

2
兰福德琴弦
挑战说明 甲Langford的字符串的顺序N被定义为如下: 字符串的长度等于2*N, 该字符串包含N英语字母的第一个字母,每个字母出现两次, 对于每一对相同的字母,还有M他们之间的信件,其中M是字母的字母表中的位置(A = 1,B = 2,...,Z = 26)。 举例来说,秩序的只有两种可能兰福德字符串3是BCABAC和CABACB。如您所见,在这两个字符串中A,两个之间都有一个字母,两个之间有两个字母,两个之间有B三个字母C。给定一个正整数N,输出所有兰福德顺序的字符串N(以任何合理的格式:用换行符将它们一一打印,返回列表/数组...)。 样本输入/输出 3: [CABACB, BCABAC] 4: [DACABDCB, BCDBACAD] 5: # no output # 7: [GCFBECBDGFEADA, GBFCBDECGFDAEA, GBDFBCEDGCFAEA, GCAFACDEGBFDBE, GADAFCEDGCBFEB, GACAFDCEGBDFBE, GDAEAFDCGEBCFB, GBDEBFCDGECAFA, EGBFCBEDCGFADA, CGDFCBEDBGFAEA, EGDAFAEDCGBFCB, EGBCFBECDGAFAD, AGABFDBECGDFCE, EGADAFECDGBCFB, AGABEFBCDGECFD, BGDBCEFDCGAEAF, FBGDBCEFDCGAEA, BFGBAEADFCGEDC, CFGACADEFBGDBE, EAGAFBEDBCGFDC, BCGBFCEADAGFED, DAGAFDBECBGFCE, EBGCBFECDAGAFD, CEGDCFBEDBGAFA, CEGBCFBEDAGAFD, …
11 code-golf  string 

17
宠物小精灵GO Evolution费用计算器
厌倦了总是想知道要获得这些高级进化,还需要捕获多少个神奇宝贝?不再感到奇怪!现在,您将编写一个完整的程序或函数来为您计算! 挑战: 作为输入,您的程序将收到糖果成本清单,以将神奇宝贝升级到下一层。(此列表可以由您选择的任何分隔符分隔,也可以作为函数参数分隔)。然后,您的程序将返回或打印必须捕获的Pokémon的数量,包括将要进化的数量,以在给定的所有层中进化。 您如何计算?像这样: 1.将所有糖果成本12 + 50 = 62 相加:2.从总数中减去3个糖果,这是您为不断进化而保留的一个神奇宝贝的62 - 3 = 59 数量:3.将这个数字除以4(3个为捕捉数量,1个为分配给教授),始终取ceil()结果ceil(59/4) = 15 的取值:4.最后,在总数中加1,以获取必须捕获的神奇宝贝总数,即16! 范例Input -> Output: [4] -> 2 [50] -> 13 [12, 50] -> 16 [25, 100] -> 32 [19, 35, 5, 200] -> 65 获奖情况: 该应用程序已经占用了手机上的大部分空间,因此您的程序需要尽可能短。字节数最少的完整程序或功能将在两周内被接受!(任何联系均由最早提交的参赛作品解决!)
11 code-golf  game 

2
正确和可截短的素数
可右截断的素数是素数,其中每个前缀都是素数(以10为底)。可向左截短的素数正好相反,其中每个后缀都是素数(不允许以0开头的素数)。这两个序列都是有限的(只有83个右切线,而有4260个左切线)。 您需要编写一个接受单个数字作为输入并生成第n个可右截断的质数的程序。但是,当程序以向后排列的方式读取时,它将产生第n个可左截断的素数。 为了向后排列程序,我们将程序拆分为单词,然后反转单词的顺序。一个单词可以包含任意数量的字符。 例如,如果以下是您的程序: hello world 1234567890 尽可能允许以下所有安排: 分割每个字符: 0987654321 dlrow olleh 在空白处分割: 1234567890 world hello 任意分割(为清楚起见添加了管道): hel|lo w|orld 1|23456|7|8|90 908723456orld 1lo whel 向后排列程序时,必须像对待其他字符一样考虑并反转所有空格。 正向测试输入: 1: 2 2: 3 21: 379 60: 239933 83: 73939133 后向测试输入: 1: 2 2: 3 39: 647 187: 29173 4260: 357686312646216567629137 程序应能够在合理的时间内(少于一分钟)运行 这是一个代码高尔夫球,因此字节最少的程序将获胜!

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.