Questions tagged «code-golf»

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

26
可以吃的数字
给定一个正整数,请输出一个真/假值,以表明该数字是否可以吞噬自己。 规则 最左边是头,最右边是尾 如果头部大于或等于尾巴,则头部吃掉尾巴,新的头部成为它们的总和。 如果小号ü 米≥ 10sü米≥10sum \ge 10 然后头部由更换。小号ü 米模10sü米模10sum \mod 10 s u m = 0sü米=0sum=0不能忽略,但是输入数字永远不会有任何前导零。 例: number=2632 head-2, tail-2 2632 -> 463 head-4, tail-3 463 -> 76 head-7, tail-6 76 -> 3 If only one digit remains in the end, the number can eat itself. 如果头部在任何时候都不能吃掉尾巴,那么答案将是False。 number=6724 …

30
查找最近的斐波那契数
我们都熟悉著名的Fibonacci序列,该序列以0和开头1,每个元素都是前两个元素的和。以下是前几个术语(OEIS A000045): 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584 给定一个正整数,在以下规则下返回斐波那契数列的最接近的数字: 所述最接近的斐波纳契数被定义为与该给定整数的最小绝对差斐波那契数。例如,34是最接近斐波那契数30,因为|34 - 30| = 4,这是比第二最接近的一个,更小21,为此|21 - 30| = 9。 如果给定的整数属于斐波那契数列,则最接近的斐波那契数就是它本身。例如,最接近的斐波那契数13恰好是13。 如果是平局,您可以选择输出两个都最接近输入的斐波那契数之一,也可以仅输出两个。例如,如果输入的是17,以下所有的都是有效的:21,13或21, 13。如果您将它们都退回,请注明格式。 默认漏洞适用。您可以通过任何标准方法获取输入并提供输出。您的程序/函数最多只能处理10 8的值。 测试用例 输入->输出 1-> 1 3-> 3 4-> 3或5或3,5 6-> 5 7-> 8 11-> 13 …

2
帮我整理袜子!
我有一堆干净的袜子,想配对。不幸的是,我只能从堆的任何一端取袜子,而不能从中间取袜子。此外,我一次只能从配对中取出袜子。我的策略是先将桩分成一个或多个较小的桩。我认为一些例子将使这一点变得清楚。我将每只袜子表示为一个正整数(匹配的整数表示相等的袜子)。 如果最初的袜子是 1 2 3 3 2 1 那我就不用做任何分裂了 我可以先去除两只1袜子,再去除两只袜子,再去除2两只3袜子。 如果相反,最初的堆是 1 2 3 2 3 1 然后我必须先将其拆分,因为仅从末端将它们移除就无法配对所有袜子。一种可能是将其分成两堆 1 2 3 and 2 3 1 现在,我可以除去1袜子,离开2 3 and 2 3,然后是3袜子,离开2 and 2,最后是2袜子。 你的工作 给定最初的袜子堆,编写一个程序将其分成较小的堆,使我可以对袜子进行分类。您的程序应将堆分成尽可能少的堆(如果有多个最佳解决方案,则只需找到一个)。 输入将以列表,定界字符串或其他方便形式给出。它仅包含介于1和之间的一个整数,并且包含一个最大值n,每个整数恰好出现两次。 输出应包括输入列表,该输入列表分为任何较小的列表,以任何方便的形式给出。 例子 Input Sample Output 1 1 1 1 1 2 1 2 1; 2 …
30 code-golf 

10
解释///(发音为“斜杠”)
因为我们无法获得足够多的深奥语言高尔夫,我们可以吗? /// —发音 斜杠)是一种有趣的小语言,它基于s///Perl成名的正则表达式替换功能。它仅包含两个特殊字符slash /和反斜杠\。您可以在esolangs Wiki上找到完整的文章,但我将在下面复制对语言的描述以及一些示例。 简而言之,它通过/pattern/repl/rest在程序中进行标识并进行尽可能多的替换来起作用。除特殊字符外,没有其他特殊字符/和,\::/划定程序中的模式和替换,同时\允许您在代码中插入文字/或\字符。值得注意的是,这些不是正则表达式,只是纯字符串替换。 您面临的挑战是为///语言生成解释器,作为一个读取STDIN的程序或一个带有字符串参数的函数,并使用尽可能少的字符。 您可以使用///以外的任何语言。您不得使用任何解释///的库;但是,您可以使用正则表达式,正则表达式库或字符串匹配库。 执行 有四种状态,分别是print,pattern,replace和replace。在每个国家中,除了替代: 如果程序为空,则暂停执行。 否则,如果第一个字符为\,则对下一个字符(如果存在)进行操作,然后从程序中删除这两个字符。 否则,如果第一个字符是 /,请将其删除,然后更改为下一个状态。 否则,对第一个字符进行处理,然后将其从程序中删除。 重复。 状态依次遍历print,pattern,replace和替换。 在打印模式下,“执行某些操作”表示输出字符。 在模式模式下,“执行某些操作”意味着将字符添加到当前模式。 在替换模式下,“执行某些操作”意味着将字符添加到当前替换中。 在替换模式下,您遵循一组不同的规则。重复用程序中的当前替换替换当前模式的第一个匹配项,直到不再有替换可用为止。此时,清除“模式和替换”并返回打印模式。 在程序中/foo/foobar/foo foo foo,发生以下情况: /foo/foobar/foo foo foo foo foo foo foobar foo foo foobarbar foo foo foobarbarbar foo foo ... 这将永远循环,并且永远不会退出替换模式。同样,如果Pattern为空,则空字符串的第一个匹配项(在程序开头)总是匹配的,因此替换模式永远循环,永不停止。 例子 no 输出:no。 / world! world!/Hello,/ world! world! …

30
编写一个程序,用另一种语言编写功能但!
编写最短的程序,该程序从STDIN(或等效项)获取一个输入(n),并输出一个带有一个返回x + n的参数(x)的简单递增函数,但该函数必须使用另一种语言。很简单! 这是代码高尔夫球,适用常规规则,最短程序获胜。 示例:> <>到Python(非高尔夫) !v"def i(x):"a" return x+"ir! >l?!;o 输入: 3 输出: def i(x): return x+3 编辑:允许匿名函数和lambda表达式!
30 code-golf 

7
高尔夫最小的一圈!
问题: 给定笛卡尔平面中的一组非空点,请找到将它们全部包围的最小圆(Wikipedia链接)。 如果点的数量为三个或更少(如果有一个点,则圆的半径为零;如果有两个点,则连接点的线段为圆的直径;如果有),则此问题微不足道。 3个(非共线的)点,如果它们形成一个非钝角三角形,则可以得到一个全部接触它们的圆的方程;如果该三角形是钝角,则可以得到仅接触两个点并包含第三个点的圆的方程)。因此,为了应对这一挑战,积分的数量应大于三。 挑战: 输入: 4个或更多非共线点的列表。这些点应具有X和Y坐标;坐标可以是浮点数。为了缓解挑战,任何两个点都不应共享相同的X坐标。 例如:[(0,0), (2,1), (5,3), (-1,-1)] 输出:值的元组(h,k,r),使得(x−h)2+(y−k)2=r2(x−h)2+(y−k)2=r2(x-h)^2 + (y-k)^2 = r^2是包围所有点的最小圆的方程。 规则: 您可以选择适合您程序的任何输入法。 输出应打印到STDOUT函数或由函数返回。 首选“普通”,通用语言,但任何esolang都是可以接受的。 您可以假定这些点不是共线的。 这是代码高尔夫球,因此以字节为单位的最小程序为准。挑战赛发布一周后将选出优胜者。 请在回答的第一行中包括您使用的语言和以字节为单位的长度作为标题: # Language: n bytes 测试用例: 1: 输入: [(-8,0), (3,1), (-6.2,-8), (3,9.5)] 输出: [-1.6, 0.75, 9.89] 2: 输入: [(7.1,-6.9), (-7,-9), (5,10), (-9.5,-8)] 输出: [-1.73, 0.58, 11.58] 3: 输入: …

2
螺旋序列
背景 OEIS序列A272573在六角形网格上描述了一个螺旋,如下所示: 在六角形平铺上开始数字螺旋,初始六角形为a(1)=1。a(n)是不等于或先前不相邻的最小正整数。 序列开始 1, 2, 3, 4, 5, 6, 7, 4, 6, 8, 5, 9, 8, 10, 2, 11, ... 这是螺旋模式的说明: a(11) != 1因为那样的话3,1它将在两个地方相邻。 a(11) != 2因为那样的话3,2它将在两个地方相邻。 a(11) != 3因为那样3会与自己相邻。 a(11) != 4因为那样的话3,4它将在两个地方相邻。 因此a(11) = 5。 挑战 面临的挑战是编写一个计算A272573的程序。这是代码高尔夫球,因此最短的代码获胜。

11
让我们画Triforce
在三角力量是在一个虚构的神器传说塞尔达,由代表力量,智慧和勇气三个相同外观的等边三角形。当三个部分最终结合在一起时,传奇中的几款游戏都包含了动画。 这项挑战的目的是绘制具有简化动画效果的单个2D帧,其中三角形的给定宽度以及零件之间的给定间距。 输入值 输入由两个整数组成:宽度和间距值。小号≥ 0瓦特≥ 1w≥1w\ge1小号≥ 0s≥0s\ge0 输出量 必须根据以下规格绘制框架: /\ / \____________ this part is horizontally centered / \ /______\ \___ s empty lines / /\ /\ / \ / \______ w+1 backslashes / \ / \ /______\ /______\ \_______ 2w underscores |__| \_____________ 2s spaces 在上面的示例中,我们有和。s = 2w = …

20
实施霍姆斯塔克的连环世界末日骰子Cascader
挑战 我受到了盗窃的午夜船员的攻击,我需要召唤Catenative Doomsday Dice Cascader来保卫自己。由于我的空间不足,因此我需要代码尽可能短。 连环世界末日骰子级联的算法如下: 首先,将“ Prime Bubble”中的六面模具滚动,结果将确定下一步进行了多少次迭代。 从六面模具开始。对于“ Prime Bubble”骰子的滚动次数,将下一个骰子的边数乘以当前骰子滚动的结果。例如,如果在您的六面骰子的第一卷上您的骰子是2,那么您的下一个骰子将具有6 * 2 = 12面。 您的目标是编写一个不带任何输入并输出最后一次压模的最终结果的函数或程序。由于这是代码高尔夫球,因此每种语言中的最低字节数为准! 例子 示例1(直接从上面的链接获取): The Prime Bubble rolls a 6, meaning that the Cascader will iterate six times #1: We always start with a 6 sided die, and it rolls a 2, so the next …
29 code-golf  random 

15
黑匣子三角法
写一个程序或功能,可以区分以下12个三角函数: sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh。 您的程序将上面的功能之一称为黑匣子,并且应按照上面给出的名称或以您的语言命名的方式输出该函数的名称。 这是代码高尔夫球,因此每种语言中最短的答案将获胜。您应该通过包含所有12种可能的输入的测试用例来证明您的代码可以正常工作。如果您选择的语言不包含上述所有功能的内建函数,则您必须为缺失的函数提供自己的明智实现。 进一步说明 如果基础内建程序可以处理复数,则允许使用复数查询黑盒。 由于仅使用实数时,对黑盒函数的查询可能会给出域错误。在这种情况下,您应该假设黑匣子仅传达错误的存在,而不传达错误的来源。dÔ 米一个ç ö 小号ħ ∩ d Ô 中号一吨一个Ñ ħ = ∅ dØ米 一种CØsH∩dØ米 一种Ť一种ñH=∅ dom\ acosh \cap dom\ atanh = \emptyset 如果返回的不是其他错误(例如NaN或null),则您的提交应该能够处理它们。 感谢您提供有用的沙盒反馈!

15
冰箱贴替代
当写有冰箱贴一个消息,你经常会发现自己代以1一个I。在此挑战中,您的目标是找出是否可以使用另一封邮件的字母来写一封邮件。允许的替换为: A = 4 B = 8 C = U E = M = W = 3 G = 6 = 9 I = 1 L = 7 N = Z O = 0 R = 2 S = 5 例如,CIRCA 333可以将邮件重新排列为拼写ICE CREAM,其中前两个3s旋转180度以形成两个Es,最后一个s 3逆时针旋转90度以形成M。消息中可以包含空格,但是不应在解决方案中考虑空格,因为空格是通过将磁铁放在冰箱上制成的。 输入值 两个字符串(或字符数组)。所有消息都将匹配^[A-Z0-9 ]+$ 输出量 如果两个输入字符串相互有效重排,则为真,否则为假。 例子 …

18
反引号
挑战的前景是: 如果您的程序正常运行,"则应打印语音标记(-双引号)中的所有代码。 如果您的程序用双引号引起来(反过来反演语音标记),则应打印通常不在引号中的代码。 例如: 假设您有以下代码: fancyStuff("myCode"); "I like".isGreat(); 如果运行它,我期望输出: myCode I like 但是,如果将其用引号引起来,则会得到: "fancyStuff("myCode"); "I like".isGreat();" 运行此代码时,预期输出为: fancyStuff( ); .isGreat(); 显然,以上示例不是任何语言的功能响应。您的工作是编写以这种方式执行的代码。 规则 有标准漏洞。 带有引号和未引号形式的打印值必须为非空,或仅由空格组成。这也意味着所有程序都必须至少包含一组引号。 但是,允许尾随/前导空格。 无需查看您自己的代码,所需的文件名等。 不允许使用不匹配的报价 如果有多个字符串,则可以将它们打印为换行符(如示例中所示),也可以以其他人类可读的方式打印-没有数组或对象 这是代码高尔夫球,因此最短答案以字节为单位。

26
箭头那些变量!
挑战 罗宾喜欢用箭头来声明变量。他的做法如下: 输入任意数量的字符串 按长度顺序排列 将它们按中间顺序输出,大致形成一个负箭头,如下所示(以顺序最好的一个为佳): 5 or 4 3 2 1 1 2 3 4 5 测试用例 输入: bow arrows sheriffOfNottingham kingRichard maidMarian princeJohn sherwoodForest 输出: sheriffOfNottingham kingRichard maidMarian bow arrows princeJohn sherwoodForest 输入: a bb cc 输出(均有效): bb a cc cc a bb 输入: one four seven fifteen 可能的输出(唯一有效的输出是其垂直镜像): …

16
在矩阵中找到1和0的岛
给定二维矩阵0和1s。找出1和0的岛数,其中邻居仅在水平和垂直方向。 Given input: 1 1 1 0 1 1 1 0 output = 1 1 Number of 1s island = 1 xxx- xxx- Number of 0s island = 1 ---x ---x ------------------------------ Given input: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 …

21
Levi-Civita符号
三维Levi-Civita符号是一个函数f,该函数采用,至中的(i,j,k)每个数字的三进制,定义为:{1,2,3}{-1,0,1} f(i,j,k) = 0当i,j,k不显着,即,i=j或j=k或k=i f(i,j,k) = 1当(i,j,k)是的循环移位时(1,2,3),是的之一(1,2,3), (2,3,1), (3,1,2)。 f(i,j,k) = -1当(i,j,k)是的循环移位时(3,2,1),是的之一(3,2,1), (2,1,3), (1,3,2)。 结果是符号的置换的(1,2,3),具有非置换给予0。可选地,如果我们的值相关联1,2,3以正交单位基矢量e_1, e_2, e_3,然后f(i,j,k)是行列式的列3x3矩阵e_i, e_j, e_k。 输入值 {1,2,3}依次从三个数字开始。或者,您可以选择使用零索引{0,1,2}。 输出量 它们的Levi-Civita函数值来自{-1,0,1}。这是代码高尔夫。 测试用例 有27种可能的输入。 (1, 1, 1) => 0 (1, 1, 2) => 0 (1, 1, 3) => 0 (1, 2, 1) => 0 (1, 2, 2) => 0 …

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.