Questions tagged «code-golf»

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

11
飙车倒计时
挑战: 在假设的情况下,比赛的倒数计时器在计数之间具有随机间隔,以防止过早开始,例如 3 (0.82 seconds pass), 2 (0.67 seconds pass), 1 输入: 没有 输出: 编写一个程序(或函数),以每次计数之间0.50秒至1秒的随机时间间隔打印3个数字。 注意: 程序必须输出每个数字(3、2、1),每个数字之间具有随机的时间间隔(0.50到1到百分之一;无硬编码)。随机间隔的精度必须达到数百(例如:0.52)。您不需要输出时间间隔,只需输出计数。 正如@JoKing所阐明的,我的意思是统一随机的(您可以使用语言的伪随机生成器。 正如许多人所阐明的那样,我的意思是说2到10之间的任何十进制数字(0.50、0.51等,一直到0.98、0.99、1)。 这是代码高尔夫球,因此字节数最少的程序将获胜。
10 code-golf  random 

10
一些孤独的素数
我知道,我知道,还有另一个挑战。 有关 一个孤独的(或分离的)主要是一个素数p,使得p-2,p+2,p-4,p+4... p-2k,p+2k对于一些k都是复合材料。我们称这样的素数为k孤立的素数。 例如,第5次隔离的素数是211,因为它们201, 203, 205, 207, 209, 213, 215, 217, 219, 221都是复合的。(p-2*5=201,p-2*4=203等) 挑战 给定两个输入整数n > 3和k > 0,输出最小的kth次隔离质数严格大于n。 例如,对于k = 5及n范围内的任何值4 ... 210,输出应为211,因为它是最小的5次隔离质数,严格大于input n。 例子 n=55 k=1 67 n=500 k=1 503 n=2100 k=3 2153 n=2153 k=3 2161 n=14000 k=7 14107 n=14000 k=8 14107 规则 如果适用,您可以假定输入/输出将适合您语言的本机Integer类型。 输入和输出可以通过任何方便的方法给出。 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 禁止出现标准漏洞。 …

30
什么是文件扩展名?
您面临的挑战是找到提供的文件名的文件扩展名: hi.txt -> txt or .txt carrot.meme -> meme or .meme lol (undefined behavior) what..is..this..file -> file or .file .bashrc -> bashrc or .bashrc T00M@n3KaPZ.h0wC[]h -> h0wC[]h or .h0wC[]h agent.000 -> 000 or .000 您必须从字符串的最后. 或最后.到结尾再获取文本。正则表达式的第一个捕获组匹配/\.([^.]+)$/有效,在.s 上分割输入并返回最后一个也是如此。 文件名将始终至少包含一个.,但可能包含多个.。(请参见示例) 输入将始终匹配^[.a-zA-Z0-9^!\[\]{}@$%+=]+$。
10 code-golf  string 

3
生成流氓地图
今天,我们将为Roguelike RPG生成地图! 示例图: ########## #### F# #### ## ## C#C# # ## # # C #E # #### # # # # #P # ########## #是墙壁,P是玩家的起点,F是必须达到的终点,C是可以收集的硬币,E是可以战斗的敌人。 地图规格: 高度和宽度都应在10到39之间(包括10和39)。高度不必等于宽度。 地图边框应填满墙壁。 P 应该放在左下角。 F 应该放在右上角。 应该有1到3个敌人。 应该有2到4个硬币。 中间应该有一些墙。应该有从得到一个路径P的每一个C,E以及F,牢记玩家不能斜走。 每种可能的组合都应有发生的机会。 规则 最低字节程序获胜。 您的程序不应接受任何输入。 您的程序可能不会因错误而退出(非致命输出是STDERR可以的,但是在生成地图后我们无法出现类似流氓的崩溃!) 允许使用单个尾随换行符,并允许尾随空格。 不允许其他输出。

2
高尔夫我的Ada阵列
背景 Ada是一种编程语言,其简洁性并不十分出名。 但是,其数组文字语法在理论上可以允许相当简洁的数组规范。这是数组文字 语法的简单EBNF描述(可传递到bottlecaps.de: array ::= positional_array | named_array positional_array ::= expression ',' expression (',' expression)* | expression (',' expression)* ',' 'others' '=>' expression named_array ::= component_association (',' component_association)* component_association ::= discrete_choice_list '=>' expression discrete_choice_list ::= discrete_choice ('|' discrete_choice)* discrete_choice ::= expression ('..' expression)? | 'others' 为了简单起见,我们将自己限制为一维整数数组。这意味着我们将仅对表达式值使用整数。也许在将来的挑战中,我们可以尝试更高级的方法(例如声明变量和多维数组)。你不会有高尔夫整数文字。 为了清楚起见,以下是Ada数组文字和python式等效表示形式的一些示例: (1, 2, …

10
确定一个网格是否包含另一个网格
挑战 创建一个函数将两个二维字符数组(如果编程语言没有字符作为数据类型,则为字符串)作为输入:a和b。如果您的语言不支持这些输入,则可以使用任何其他标准的一字节变量。 您的任务是确定b是否包含a。如果是这样,则返回true。否则,返回false。 样本测试用例 a: 123 456 789 b: 123 456 789 应该返回true。 a: code golf b: thisis code!! golf!! ohyeah 应该返回true。 a: abcd efgh ijkl b: abcdef ghijkl mnopqr 应该返回false。 a: abc def b: 1abc2 3def4 5ghi6 应该返回true a: ab cd b: #ab## ##cd# 应该返回假 最少字节获胜。

6
一致的开销字节填充(COBS)
令我惊讶的是,这还没有发布! 在一致的开销字节填充(COBS)算法用于分隔字节流。 我们选择一个帧标记(我们将使用0x00),并且在流中出现0x00的任何地方都将其替换为字节数,直到下一个出现0x00为止(我们将其称为里程碑)。这将值的范围从0..255减小到1..255,从而使0x00可以明确地界定流中的帧。 在一个里程碑,如果下一个255B不包含0x00,则超出最大里程碑长度-算法必须“停顿”在255B并放置另一个里程碑。这是“一致的开销”。 第一个字节将是第一个里程碑,最后一个里程碑将是直到帧标记的字节数。 维基百科的一些示例(最好阅读彩色文章): 0x00 as frame marker Unencoded data (hex) Encoded with COBS (hex) 00 01 01 00 00 00 01 01 01 00 11 22 00 33 03 11 22 02 33 00 11 22 33 44 05 11 22 33 44 00 11 00 00 …

5
二次序列中的有效术语?
给出四个数字。对于该序列,前三个分别是,和:a一个abbbcCc Tn=an2+ b n + cŤñ=一个ñ2+bñ+CT_n=an^2+bn+c 您可以通过任何方式输入这四个数字。输出应该是在你的答案提到的两个不同的输出中的一个,一个装置,所述第四数目是序列中的项(上述方程具有用于至少一个溶液这是当一个整数,,和是替换给定值),另一个则相反。ññn一个一个abbbCCcŤñŤñT_n 这是代码高尔夫,所以最短的答案以字节为单位。您的程序应适用于任何输入其中数字为负或正(或0),十进制或整数。为了避免出现问题但保持一定的复杂性,非整数总是以结尾。不允许使用标准漏洞。a ,b ,c ,Tñ一个,b,C,Ťña, b, c, T_n.5.5.5 测试用例 a |b |c |T_n |Y/N ------------------------ 1 |1 |1 |1 |Y #n=0 2 |3 |5 |2 |N 0.5 |1 |-2 |-0.5|Y #n=1 0.5 |1 |-2 |15.5|Y #n=5 0.5 |1 |-2 |3 |N -3.5|2 |-6 |-934|Y …

3
键入需要多长时间?
介绍 我可以使用QWERTY键盘布局以适当的速度打字。但是,如果像yellowwooddoor这样的单词有很多重复的字母,则键入它会花费更长的时间。更糟的是,当像“跳”这样的单词的同一根手指用于多个不同的连续字母时。 这是我在每个手指上键入字母所花费的时间(非常不科学地衡量): 列是手指名称,每秒击键,秒/击键以及每个手指使用的键 Typing same letter twice: L Pinky 5.2 0.1923076923 1qaz L Ring 5 0.2 2wsx L Mid 5.3 0.1886792453 3edc L Index 5.5 0.1818181818 4rfv5tgb R Thumb 6.5 0.1538461538 [space] R Index 6.9 0.1449275362 6yhn7ujm R Mid 6.3 0.1587301587 8ik, R Ring 6.2 0.1612903226 9ol. R Pinky …

6
又是万圣节!
问题描述 我们都喜欢Twix(因为它是最好的糖果),但这是孩子们的第一个万圣节---我们必须为他们抓住每种糖果中的至少一种。每个万圣节,Numberline大街上的所有居民都会发送一封电子邮件,说明他们今年将赠送的糖果类型。 哦! 我们生活在一维世界中。 在某些方面(而不是其他方面)非常懒惰,我们绘制了房屋的地图,并给出了他们在街上的位置。我们还注意到了他们所拥有的糖果类型。这是我们今年制作的地图: [(-2, {"Kisses", "KitKats"}), (1, {"KitKats", "Peanut Butter Cups"}), (6, {"Kisses", "Twix"}), (9, {"Skittles"}), (10, {"Twix"})] 为了孩子们的小腿,我们需要找到从附近任何房子开始的最短步行路程,以至少收集每种糖果中的一种。 例子 在几个用户(包括Shaggy)的请求下,我将介绍一些可行的示例。希望这可以清除一切。:) 输入: [(-2, {"Kisses", "KitKats"}), (1, {"KitKats", "Peanut Butter Cups"}), (6, {"Kisses", "Twix"}), (9, {"Skittles"}), (10, {"Twix"})] 输出: [1, 2, 3] 另一个地图和解决方案... 输入: [(-3, {"KitKats", "Twix"}), (-1, {"Hundred …
10 code-golf 

13
有没有更小的重图检查器?[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 去年关闭。 我最近开始玩代码搜索,并尝试编写最小的互写检查器。 一个tautogram是所有单词用相同字母开头,例如一句话:花来自法国蓬勃发展。 给定一个句子作为输入,请确定它是否是一个互变符号。 测试用例 Flowers flourish from France True This is not a Tautogram False 我想出了这个python代码(因为这是我的主要语言): print(True if len(list(set([x.upper()[0] for x in __import__('sys').argv[1:]]))) == 1 else False) 用法: python3 tautogram.py Flowers flourish from France # True python3 tautogram.py This is not a Tautogram # False 该句子可以包含逗号和句点,但不能包含其他特殊字符,只能包含大小写字母和空格。 它的大小是98字节。是否有任何语言的较小解决方案?

10
在任何基础上进行Fizzbuzz
挑战 输入: 2到62(含)之间的整数bbb。 输出: 使用任何合理的数字表示形式,从111到以b为底的5000105000105000_{10}的等值数。bbb 然而: 如果该数量是由整除⌊b÷2+1⌋⌊b÷2+1⌋\lfloor b÷2+1\rfloor(四舍五入,例如基体7将是7/2 = 3.5,3.5 + 1 = 4.5,四舍五入到4),则输出'嘶嘶声',而不是数。 如果该数量是由整除⌈b÷3+3⌉⌈b÷3+3⌉\lceil b÷3+3\rceil(四舍五入,例如11/3 = 3.666,3.666 + 3 = 6.666,四舍五入到7),则输出'巴兹'。 您可能会猜到,如果您的电话号码可被两者整除,则输出“ Fizzbuzz”。 例子 使用[0-9],[AZ]和[az]作为数字 (为了使示例简短,我仅包括前10个值-通常每个序列中有4990个以上的项目) 输入: 10(因此“ Fizz” = 6,“ Buzz” = 7) 输出: 1,2,3,4,4,嘶嘶声,嗡嗡声,8,9,10 输入: 2(因此'Fizz'= 2和'Buzz'= 4) 输出: 1,Fizz,11,Fizzbuzz,101,Fizz,111,Fizzbuzz,1001,Fizz (我已包含以下内容的前50个值,以更好地展示它们的工作原理) 输入: 55(因此'Fizz'= 2810281028_{10} = s55s55s_{55}和'Buzz'= 2210221022_{10} …
10 code-golf  math  binary 

4
手机充电
挑战经我的大学代码挑战竞赛许可 我们对手机的依赖性使我们每天晚上都对手机充电直至达到电池的最大电量,因此,我们不会在第二天的中间出现断电的风险。甚至有些人在白天看到免费的插座时,会对可能发生的事情收取费用。 我是他们其中的一员。 多年以来,我不断完善自己的技术,以使每晚不给电池充电到最大程度。通过众所周知的重复程序,我可以清楚地知道一天中的哪些时间可以进行部分充电(以及电量将增加多少个单位)以及每次充电之间会降低电池电量的原因。利用这些数据,每天晚上我都要计算出第二天必须离开房屋的最低电池电量,以使其永远不会低于我自己设定的两个门槛。 当我离开已建立的例行程序时,我还没有掌握的是相同的计算方法,但我有几种选择可以做事。例如,这发生在我前往另一个可以以不同方式到达的城市的路上。 在解决该问题的第一种方法中,我假设我想绕着“棋盘”从左上角到右下角移动。在每个“小区”中,我可以为移动电话充电一定的金额,或者我不能对其充电,并且其负载水平会下降。 挑战 给定一个整数的FxC矩阵,输出我需要从左上角到右下角的最小电池电量,而负载水平不得低于2个单位。 在矩阵中,正数表示在必须继续沿自己的路径行驶之前我可以为手机充电多少,而负数表示没有插座,并且移动电话的电池电量降低了该数量。确保源单元格和目标单元格中​​的数量(左上角和右下角)始终为0,其余值(绝对值)不超过100。 给定的示例: ⎡⎣⎢⎢⎢📱−1−11−1−1111−1−1−1−1−1−10⎤⎦⎥⎥⎥[📱−11−1−1−1−1−1−11−1−111−10] \begin{bmatrix} 📱&-1&1&-1 \\ -1&-1&-1&-1 \\ -1&1&-1&-1 \\ 1&1&-1&0 \end{bmatrix} 我需要更少电池的路径是: ⎡⎣⎢⎢⎢📱− 1− 11个− 1− 11个1个1个− 1− 1− 1− 1− 1− 10⎤⎦⎥⎥⎥[📱-1个1个-1个-1个-1个-1个-1个-1个1个-1个-1个1个1个-1个0] \begin{bmatrix} 📱&-1&1&-1 \\ \color{blue}{-1}&-1&-1&-1 \\ \color{blue}{-1}&1&-1&-1 \\ \color{blue}{1}&\color{blue}{1}&\color{blue}{-1}&0 \end{bmatrix} 我需要的最小电池电量是4 笔记 起点总是在左上角 终点总是在右下角 您无法进入已通过的单元。示例:位置(0,1)后,您将无法到达起始点(0,0) 您的电池电量不能(出于任何原因)低于2 您可以假设总会有起点和终点 如果需要,可以将一维数组作为多维数组 [1,2,3] …

8
左中右(LCR)码高尔夫
在一个聚会上,我被介绍给游戏LCR。现在这不是一个伟大的游戏,因为没有技能,只有随机的机会。但是这让我开始思考,我可以编写代码,然后用R编写了一个快速程序来对游戏进行建模。 维基百科修改了游戏规则,以匹配我们的游戏方式: 每个玩家至少获得3个筹码。玩家轮流掷出三个六边形的骰子,每个骰子的一侧都标有“ L”,“ C”,“ R”,而在其余三个面上标有一个点。对于投出的每个“ L”或“ R”,玩家必须分别向其左侧或右侧传递一个筹码给玩家。“ C”表示到中心(底池)的筹码。点不起作用。 如果玩家剩下的筹码少于三个,则他们仍在游戏中,但筹码数量是他们在回合中掷骰子的数量,而不是全部掷出三个。当玩家的筹码为零时,他们在回合中通过骰子,但可能会从其他人那里获得筹码,并相应地进行下一回合。获胜者是最后一个将筹码放入中心的玩家。 比赛:使用您选择的语言编写一个程序,该程序输入玩家人数和起始筹码数量,并模拟LCR游戏,显示每个玩家滚动后的游戏状态。 例如,一个游戏可能输出为: [[[3,3,3,3],0],[[1,4,3,4],0],[[1,4,3,4],0],[[1,4,1,4],2],[[1,4,1,2],4], [[0,4,1,3],4],[[0,3,2,3],4],[[0,3,0,3],6],[[0,3,1,1],7],[[0,3,1,1],7], [[2,0,1,1],8],[[2,0,0,1],9],[[2,0,0,0],10],[[0,1,0,0],11], [[1,0,0,0],11],[[1,0,0,0],11],[[1,0,0,0],11],[[0,0,0,0],12]] ht:乔纳森·艾伦 输出不必看起来完全像这样,但是应该容易分辨骰子掷骰,每个玩家拥有多少筹码以及每回合中锋拥有多少筹码。 这是代码高尔夫球,所以最短的代码获胜。
10 code-golf  random 

3
被困骑士序列
介绍 受最近录像带《被困的骑士-菲利普》的启发,我提出了一个挑战。 被捕获的骑士序列是长度为2016的有限整数序列,从1开始,具有以下构造规则: 用以下方式写一个数字螺旋: 17 16 15 14 13 ... 18 5 4 3 12 ... 19 6 1 2 11 ... 20 7 8 9 10 ... 21 22 23 24 25 ... 在1上放置一个骑士。 根据国际象棋的规则,将骑士移至网格数量最少的网格,该网格以前从未被访问过(即垂直2个单位,水平1个单位,反之亦然)。 重复直到骑士被卡住。 这是前三个步骤: 步骤1 17 [16] 15 [14] 13 [18] 5 4 3 [12] 19 …
10 code-golf  number 

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.