Questions tagged «code-golf»

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

12
重复的斐波那契数字是什么?
您可能知道,斐波那契数是一个,它是该序列中前两个数的和。 斐波那契Digit™是前两个数字的总和。 例如,对于系列开始1,1,该系列将是1,1,2,3,5,8,13,4,7,11,2...。更改发生在之后,您可以13在其中添加而不是8+13添加1+3。系列在末尾循环,其中4+7=11和和1+1=2系列开始相同。 再例如,系列开始于2,2:2,2,4,6,10,1,1,2,3,5,8,13,4,7,11,2,3...。这个开始是唯一的,但是一旦数字总和到10,您最终得到1+0=1, 0+1=1,然后该系列继续进行-并循环-与该1,1系列相同。 挑战 给定一个整数输入0≤n≤99,请从这两个数字开始计算斐波那契数字系列中的循环。(当然可以允许您考虑超出此范围的整数,但这不是必需的。)如果输入的是一位数字,则您的代码应将其解释为表示序列的开头0,n。 循环中所有两位数字都必须输出为两位数字。因此,例如,for的循环1,1将包含13,而不是1,3。 输出从循环中的第一个数字开始。因此,基于上述限制,for的循环以1,1开头2,因为1,1和11分别计数。 只要是一致的,输出的每个数字都可以用您想要的分隔。在我所有的示例中,我都使用逗号,但是只要您始终使用相同的分隔符,都允许使用空格,换行符,随机字母等。所以2g3g5g8g13g4g7g11是一个合法的输出1,但2j3g5i8s13m4g7sk11并非如此。您可以使用字符串,列表,数组等任何东西,只要您具有以一致的分隔符分隔的正确顺序的正确数字。也可以用括号括住整个输出(例如(5,9,14)或[5,9,14]等)。 测试用例: 1 -> 2,3,5,8,13,4,7,11 2 -> 2,3,5,8,13,4,7,11 3 -> 11,2,3,5,8,13,4,7 4 -> 3,5,8,13,4,7,11,2 5 -> 2,3,5,8,13,4,7,11 6 -> 3,5,8,13,4,7,11,2 7 -> 14,5,9 8 -> 13,4,7,11,2,3,5,8 9 -> 11,2,3,5,8,13,4,7 0 -> 0 14 -> 5,9,14 59 -> 5,9,14 这是code-golf,因此赢得的字节数最少。
30 code-golf 

3
乌龟找到门户
乌龟想要沿着网格移动以获取食物。他想知道要到达那里需要多少步。 同样,由于他的速度很慢,因此他在自己的域周围设置了传送器,如果它缩短了路径,他将利用它。如果延长了他的行程,或者避免使用它们。 遇见乌龟 🐢 在网格上的乌龟生活 XXXXXXXXXXXX🐢XXXXXXXXXXXXXXXXXXXXXXXX🐢XXXXXXXXXXXX\begin{matrix} X&X&X&X&X\\ X&X&X&X&X\\ X&X&🐢&X&X\\ X&X&X&X&X\\ X&X&X&X&X\\ \end{matrix} 乌龟可以移动到任何相邻方... XXXXXX↖←↙XX↑🐢↓XX↗→↘XXXXXXXXXXXX↖↑↗XX←🐢→XX↙↓↘XXXXXX\begin{matrix} X&X&X&X&X\\ X&\nwarrow&\uparrow&\nearrow&X\\ X&\leftarrow&🐢&\rightarrow&X\\ X&\swarrow&\downarrow&\searrow&X\\ X&X&X&X&X\\ \end{matrix} 然而,乌龟不能移动到一个正方形与山 XXXXX🌄↖🌄🌄🌄X↑🐢↓XX↗→↘XXXXXXX🌄XXXX↖↑↗XX🌄🐢→XX🌄↓↘XX🌄XXX\begin{matrix} X&🌄&X&X&X\\ X&\nwarrow&\uparrow&\nearrow&X\\ X&🌄&🐢&\rightarrow&X\\ X&🌄&\downarrow&\searrow&X\\ X&🌄&X&X&X\\ \end{matrix} 海龟要吃掉他的草莓,想知道需要多久才能到达他的草莓 X🐢XX🌄🌄🌄X🍓XXXX🌄🍓🐢🌄XX🌄XXXX\begin{matrix} X&🌄&🍓\\ 🐢&🌄&X\\ X&🌄&X\\ X&X&X\\ \end{matrix} 这个例子将采取龟555圈 X↓↘X🌄🌄🌄↗🍓↑↑XX🌄🍓↓🌄↑↘🌄↑X↗X\begin{matrix} X&🌄&🍓\\ \downarrow&🌄&\uparrow\\ \searrow&🌄&\uparrow\\ X&\nearrow&X\\ \end{matrix} 幸运的是,乌龟发现了一个传送点!网格上有两个相互映射的传送端口。踩到传送器后,乌龟会立即移动到相应的传送器。传送器非常不稳定,一旦使用它们,它们就会消失并且不再可用。 🔵🐢XX🌄🌄🌄X🍓🔴XX🔵🌄🍓🐢🌄🔴X🌄XXXX\begin{matrix} 🔵&🌄&🍓\\ 🐢&🌄&🔴\\ X&🌄&X\\ X&X&X\\ \end{matrix} 现在快是龟两次拉升。现在海龟最短路径是222 …

19
它是蒙克豪森数吗?
以b为底的Munchausen数(也称为完美数对数不变式或PDDI)是一种特殊类型的正整数,其中,将其b数的底位数加起来等于其自身。他们以虚构的男爵Munchausen的名字命名,男爵显然是通过自己的马尾辫将自己抬起的,以免溺水。一个相关的概念是自恋数字bbbbbb。 例如,111是平凡在每个基地Munchausen号码,因为11=111=11^1=1。另外,根据定义,每个正整数都是以1为底的Munchausen数。 更有趣的是,343534353435是一个以10为底的Munchausen数,因为33+44+33+55=343533+44+33+55=34353^3+4^4+3^3+5^5=3435,实际上是唯一的另一个以10为底的Munchausen数。 在OEIS上可以找到序列号为A166623的Munchausen数字的部分列表,最多35个基数。 给定一个正整数n>0n>0n>0,确定它是否是任何一个基Munchausen数b≥2b≥2b\geq2。 规则 默认的I / O规则适用,因此: 完整的程序或功能是可以接受的。 输入可以来自STDIN,作为函数参数,输出可以到STDOUT,作为函数返回值,等等。 默认漏洞适用。 输出必须是两个不同的,一致的结果之一。因此TRUE,对真理有好处,FALSE对虚假也可以,但您可以颠倒它,也可以None为真理和1虚假之类返回。请在答案中指定所选结果。 您的答案必须至少在理论上适用于任何正整数。 Munchausen数字使用约定00=100=10^0=1,因此222是2的Munchausen数字以11+00=211+00=21^1+0^0=2为基数。您的代码必须遵循此约定。 即使提交内容很可能使用蛮力搜索方法,也强烈建议您进行解释。 由于蒙克豪森显然是一个陌生的人,所以使用深奥的语言可以使您获得布朗尼积分。 测试用例 Truthy 1 (all bases) 2 (base 2) 5 (base 3) 28 (base 9 and base 25) 29 (base 4) 55 (base 4) 3435 (base 10) 923362 (base 9) 260 (base 128) 257 …

17
一quin
给定一个string x,x根据源代码中出现的顺序输出字符。 例子 Source: ThisIs A Test Input: Is it a Test? Output: TissI etta? Source: Harry - yer a wizard. Input: I'm a what? Output: aa wh'?Imt Source: Mr. H. Potter, The Floor, Hut-on-the-Rock, The Sea Input: Output: 规则 适用标准漏洞和I / O规则 输入和输出可以是字符串,字符列表或字节列表。 如果在源中多次使用字符,请使用第一个字符。 如果源中未出现一个或多个字符,则应将其结尾。它们的顺序无关紧要,也不必保持一致。 来源必须为非空 换行符与其他字符一样。 代码执行的顺序无关紧要;只是原始字符串。 输入采用与代码相同的编码。 …

18
自定义号码基础转换器
希望能够使用所需的任何格式将其拥有的任何数字快速转换为自己的数字基础的能力。 输入值 您的程序必须接受3个参数。 Number:要转换的字符串号 InputFormat:数字当前所在的基本字符串 OutputFormat:要将数字转换为的基本字符串。 输出量 您的程序必须将Number旧的基数InputFormat转换为新的基数OutputFormat 例子 ("1","0123456789","9876543210") = "8" ("985724","9876543210","0123456789ABCDEF") = "37C3" ("FF","0123456789ABCDEF","0123456789") = "255" ("FF","0123456789ABCDEF","01234567") = "377" ("18457184548971248772157", "0123456789","Aa0Bb1Cc2Dd3Ee4Ff5Gg6Hh7Ii8Jj9Kk,Ll.Mm[Nn]Oo@Pp#Qq}Rr{Ss-Tt+Uu=Vv_Ww!Xx%Yy*Zz") = ",sekYFg_fdXb" 额外 如果可以,新的base 77测试不是必需的道具 如果您使用的语言必须先转换为数字并且被锁定在32Bit以内,则可以跳过它。 因为这是一项附加测试。 所有示例都是由PHP 7.2使用bcmath扩展名使用以下代码生成的(vars mins,但代码已格式化)。可能会有一个更短的方法,这只是我针对需要使用此系统的系统提出的方法,很高兴看看是否有人可以提出一个较短的版本。 PHP 7.2(bcmath-扩展名)614字节 <?php function f($a, $b, $c) { $d= str_split($b,1); $e= str_split($c,1); $f= str_split($a,1); $g=strlen($b); $h=strlen($c); $k=strlen($a); …

3
素数测试公式
您的目标是确定给定数字是否以n最少的字节为质数。但是,您的代码必须是单个Python 2表达式,其数字仅包含 经营者 输入变量 n 整数常数 括号 没有循环,没有分配,没有内置函数,只有上面列出的内容。是的,有可能。 经营者 以下是Python 2中所有运算符的列表,其中包括算术运算符,按位运算符和逻辑运算符: + adddition - minus or unary negation * multiplication ** exponentiation, only with non-negative exponent / floor division % modulo << bit shift left >> bit shift right & bitwise and | bitwise or ^ bitwise xor ~ bitwise …

10
最佳字母步进
给定仅包含字母的输入字符串,请返回步长,该步长将导致从包装纸字母(从任何字母开始)开始按顺序访问所有字母所需的最少步数。 例如,使用单词dog。如果我们使用1的步长,则结果为: defghijklmnopqrstuvwxyzabcdefg Alphabet ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ defghijklmnopqrstuvwxyzabcdefg Visited letters d o g Needed letters 总共30个步骤。 但是,如果我们使用11的步长,则会得到: defghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefg ^ ^ ^ ^ ^ ^ d o z k v g Visited letters d o g Needed letters 总共6个步骤。这是最小步数,因此返回的结果dog是步长;11。 测试用例: "dog" -> 11 "age" -> 6 "apple" -> 19 "alphabet" -> 9 "aaaaaaa" …

30
具有给定位数的所有ASCII字符
(感谢@ChasBrown的称呼) 沙盒 背景 这个挑战的灵感来自于我最近在Puzzling Stack Exchange上发布的一个问题。如果您对原始问题感兴趣,请随时关注该链接。如果没有,那么我不会在这里给您带来细节。 事实 每个可打印的标准ASCII字符都有一个介于32到126之间的十进制值。可以将它们转换为100000到1111110之间的相应二进制数。当您对这些二进制数字的位求和时,您将总是以1到6之间的整数结尾。 挑战 给定一个介于1到6之间(含1和6)的整数作为输入,编写一个程序或函数,该程序或函数将以任何可接受的格式输出所有可打印的标准ASCII字符,其中其二进制值的位之和等于输入整数。 示例/测试用例 1 -> ' @' 2 -> '!"$(0ABDHP`' 3 -> '#%&)*,1248CEFIJLQRTXabdhp' 4 -> ''+-.3569:<GKMNSUVYZ\cefijlqrtx' 5 -> '/7;=>OW[]^gkmnsuvyz|' 6 -> '?_ow{}~' 此处(TIO)提供了未发布的Python参考实现。 规则 假设输入将始终是1到6之间的一个整数(或整数的字符串表示形式)。 您可以编写一个程序来显示结果,也可以编写一个函数来返回结果。 输出可以采用任何合理的格式,但对于所有输入都必须保持一致。如果选择输出带引号的字符串,则所有输入必须使用相同类型的引号。 照常禁止使用标准漏洞。 这是代码高尔夫球,因此每种语言中最短的代码获胜。
30 code-golf 

30
最大的通用子字符串
创建一个将字符串列表作为输入的程序或函数,并输出最长的字符串,该字符串是所有输入字符串的子字符串。如果有几个长度相等的子字符串,并且不再有子字符串,则输出其中任何一个。 这可能意味着输出空字符串。 如果有多个有效输出,则可以输出其中任何一个。只要输出始终有效,就不需要为给定的输入提供一致的输出。 输入中将始终至少包含一个字符串,但可能不会存在非空字符串。 所有可打印的ASCII字符都可能出现在输入中。您可以假设这些是唯一出现的字符。 您可以通过任何默认方法获取输入或产生输出。 不允许出现标准漏洞。 这是代码高尔夫球 -代码字节越少越好。 测试用例: [Inputs] -> [Valid outputs (choose one)] ["hello", "'ello"] -> ["ello"] ["very", "much", "different"] -> [""] ["empty", "", "STRING"] -> [""] ["identical", "identical"] -> ["identical"] ["string", "stRIng"] -> ["st", "ng"] ["this one", "is a substring of this one"] -> ["this one"] …

23
递增GUID
受到最近的每日WTF文章的启发... 编写一个程序或函数,该程序或函数采用GUID(格式为的字符串XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX,其中每个X代表一个十六进制数字),并输出加一的GUID。 例子 >>> increment_guid('7f128bd4-b0ba-4597-8f35-3a2f2756dfbb') '7f128bd4-b0ba-4597-8f35-3a2f2756dfbc' >>> increment_guid('06b86883-f3e7-4f9d-87c5-a047e89a19fa') '06b86883-f3e7-4f9d-87c5-a047e89a19fb' >>> increment_guid('89f25f2f-2f7b-4aa6-b9d7-46a98e3cb2cf') '89f25f2f-2f7b-4aa6-b9d7-46a98e3cb2d0' >>> increment_guid('89f25f2f-2f7b-4aa6-b9d7-46a98e3cb29f') '89f25f2f-2f7b-4aa6-b9d7-46a98e3cb2a0' >>> increment_guid('8e0f9835-4086-406b-b7a4-532da46963ff') '8e0f9835-4086-406b-b7a4-532da4696400' >>> increment_guid('7f128bd4-b0ba-4597-ffff-ffffffffffff') '7f128bd4-b0ba-4598-0000-000000000000' 笔记 与链接的文章不同,递增以F结尾的GUID必须“携带”到前一个十六进制数字。请参阅上面的示例。 您可以假设输入将不是ffffffff-ffff-ffff-ffff-ffffffffffff。 对于大于9的十六进制数字,可以使用大写(AF)或小写(af)。 是的,GUID可能以开头0。 您的输出必须准确包含32个十六进制数字和4个连字符(以预期的格式),包括任何必需的前导0s。 您不必保留GUID的版本号或其他固定位。假设它只是一个128位整数,其中没有位具有任何特殊含义。同样,假定GUID以直接的字典顺序排序,而不是以Windows GUID结构的二进制顺序排序。 如果写的函数,则输入可以是任何序列OF-的char数据类型:string,char[],List<char>,等。
30 code-golf 

24
(轻松)编码之路
输入: 整数,它保证为。ññn≥ 3≥3\ge3 整数,它是。ddd[ - 1 ,0 ,1 ][-1个,0,1个][-1,0,1] 输出: 大小为的道路,如果,则为西北方向;如果,则为北方向;如果则为东北方向。道路将始终为三处宽(如果包括外部边界,则通常为五处)。此外,底部将有一条道路分隔线,此后向上交替显示。ññnd= - 1d=-1个d=-1d= 0d=0d=0d= 1d=1个d=1 一些例子: 输入: 输出:Ñ = 7 ,d= 1ñ=7,d=1个n=7, d=1 / / / / / / / / / / / / / / / / / / 输入: 输出:Ñ = 4 ,d= - 1ñ=4,d=-1个n=4, d=-1 \ …

30
猫又吃了你的输入!
创建一个cat程序,也就是一个接受输入并打印的程序。 ...此外,该程序将随机从输入中删除字符并打印出来。 输入中的每个字符的机率通常应相等,但是很难做到,每个字符的机率最多只能相差10%。 您的程序应采用输入,然后从输入中随机删除字符,然后再次打印该版本。(如果您的语言必须打印换行符,则可以使用尾随换行符或其他字符进行打印。) 如果输入为BOOOWL,则不应以相等的机会删除所有O:应该考虑每个字符(不是唯一的),因此,每个O都应具有1的机会,而不是每个合并的O具有1/5的机会。 / 5的机率,因此,BWL与其应该有1/5的机率,不如应该有1/5的机率BOWL,BOOWL。 输入仅限于STDIN或最接近的等效项。 每个字符必须必须除去最低10%和最大30%的机会的。 每个角色的赔率应单独计算。 您可以使用语言中支持随机动作的任何组件,无论是函数还是其他组件。 输出必须通过STDOUT或最接近的等效输出。如果您的语言确实有STDOUT,请勿以任何其他方式输出。如果您的语言无法将字符串输出为文本,请使用最接近的等效字符串(此处的C的字符数组输出可以)。 这是代码高尔夫。最短的程序获胜。

30
特斯拉脱氧核糖核酸
或者,“交换每个单词的首字母和尾字母” 您面临的挑战是,给定一串字母ASCII字符以及一个用作分隔符(分隔每个单词)的其他字符,交换每个单词的第一个和最后一个字母。如果有一个字符的单词,请不要理会。 示例/测试用例使用小写字母和空格作为分隔符。 您不需要处理标点符号。所有输入将仅由字母a到z组成,并由定界符分隔,所有字母均为统一大小写。 例如,使用字符串“ hello world”: Input string: "hello world" Identify each word: "[hello] [world]" Identify the first and last letters of each word: "[[h]ell[o]] [[w]orl[d]]" Swap the first letters of each word: "[[o]ell[h]] [[d]orl[w]]" Final string: "oellh dorlw" 注意:不需要单独输入定界符。分隔符只是用于分隔单词的字符。可以是任何东西。我想为有创意的高尔夫球手提供开放的选择,所以我不想将其限制为仅空格或换行。分隔符只是一个字符,用于分隔输入字符串中的单词。 测试用例: "swap the first and last letters of each …
30 code-golf  string 

30
构建一个字梯
给定至少两个单词的列表(仅由小写字母组成),通过相对于初始方向(从左到右)先向右然后向左交替写入方向,构造并显示单词的ASCII梯形图。 当您写完一个单词时,请改变方向,然后才开始写下一个单词。 如果您的语言不支持单词列表,或者对您来说更方便,则可以将输入内容视为一串单词,并用一个空格分隔。 允许前导和尾随空格。 ["hello", "world"] 要么 "hello world" hello w o r l d 在这里,我们从书写开始,hello到下一个单词时(或者在输入为字符串的情况下-找到一个空格),我们将相对方向更改为右侧并继续书写world 测试用例: ["another", "test", "string"] or "another test string" -> another t e s tstring ["programming", "puzzles", "and", "code", "golf"] or "programming puzzles and code golf" -> programming p u z z l e sand …

29
幸运屋
超级马里奥3D世界(Super Mario 3D World)中有一个迷你游戏,称为“ 幸运屋”。它由一个具有4个区块的老虎机组成。 每个块可以是5个不同的图标(花,叶,铃,樱桃或飞旋镖)之一,并且玩家的目​​标是获得尽可能多的相同图标(请参阅视频)。 玩家将获得硬币奖励,而硬币又可以转化为额外的生命。您的任务是计算获胜的额外生命数。 根据匹配的图标数量,奖励的硬币数量如下: 没有匹配项-10个硬币 一对-100个硬币 两对-200个硬币 三种-300枚硬币 四种-777枚硬币 您每100个硬币赢取额外的生命(1UP)。因此,您可以肯定在一对中赢得1UP ,在两对中赢得2UP,并在同类3中赢得3UP 。但是,不匹配或无法获得4种生命而赢得的生命数量取决于您最初的硬币存量。 资料来源:超级马里奥维基 输入值 您将获得初始硬币存量并获得代表老虎机上最终图标的四个值的列表。0 ≤ ç &lt; 1000≤c&lt;1000 \le c < 100[ v1个,v2,v3,v4][v1,v2,v3,v4][v_1,v_2,v_3,v_4] 输出量 额外的生命的数目获得了:,,,,或。0001个11222333777888 规则 您可以采用任何合理格式的图标:例如,列表,字符串或4个不同的参数。 每个图标可以用一位整数或单个字符表示。请指定答案中使用的图标集。(但是您不必解释如何将它们映射到Flower,Leaf,Bell等,因为这一点都没有关系。) 不允许您重新映射输出值。 这是🎰 代码高尔夫球 🎰。 测试用例 在以下示例中,我们使用中的整数列表表示图标。[ 1..5 ][1..5][1..5] coins icons output explanation ------------------------------------------------------------------------- 0 [1,4,2,5] 0 no …

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.