Questions tagged «code-golf»

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

30
和的平方差
求和与平方和之差。 这是数学表达式: (∑ n )2− ∑ n2(∑n)2−∑n2\left(\sum n\right)^2-\sum n^2 您的程序/方法应采用两个输入,这是范围的上限和下限,包括上限和下限。限制将是大于0的整数。 您的程序/方法应返回答案。 您可以使用任何基准,但是请在答案中说明使用的基准。 测试案例(基础10) 5,9 970 91,123 12087152 1,10 2640 这是通常的代码高尔夫球,因此答案越短越好。

28
利兰数字
给定自然数n,返回n第Leyland数。 利兰数 莱兰数是k形式的正整数 k = x^y + y^x 其中x,y,整数严格大于1。 它们按升序枚举。 编辑: @DigitalTrauma建议我包括以下“定义”: 试想一下,我们扔x^y+y^x在一个袋子的所有可能值x和y,然后在副本中避免抛出。然后,我们对那个袋子进行分类。排序的袋子是我们的顺序。 细节 您可以使用最适合您的索引(基于0或1)。 您的程序必须至少能够输出小于有符号32位整数最大值的所有Leyland数字。(低于此限制的最后一个Leyland数1996813914为index 82。) 测试用例 前几个术语如下: 8, 17, 32, 54, 57, 100, 145, 177, 320, 368, 512, 593, 945, 1124 OEIS中的A076980,但第一个条目除外。请注意,由于该额外的第一项,OEIS上的索引移动了一个。 可以在OEIS b文件中找到更多内容

30
生成100个Java Tuple类
编写一个脚本,将其写到标准输出或您的语言的等效输出中,以以下内容开头的100行Java代码: class Tuple1 {public Object _0;} class Tuple2 {public Object _0,_1;} class Tuple3 {public Object _0,_1,_2;} class Tuple4 {public Object _0,_1,_2,_3;} class Tuple5 {public Object _0,_1,_2,_3,_4;} class Tuple6 {public Object _0,_1,_2,_3,_4,_5;} class Tuple7 {public Object _0,_1,_2,_3,_4,_5,_6;} class Tuple8 {public Object _0,_1,_2,_3,_4,_5,_6,_7;} class Tuple9 {public Object _0,_1,_2,_3,_4,_5,_6,_7,_8;} class Tuple10 {public Object …

5
世界大披萨
您是一位才华横溢的年轻厨师,您刚刚在世界上最负盛名的印度餐厅担任过副厨师长。您几乎没有准备印度美食的经验,但是您下定决心,因此着手证明自己。您决定成为领先的dosa专家。为此,您不仅必须掌握dosas的创建,而且还必须能够将它们缩放到任意大小。 您会发现Dosa面糊有希望的配方: 1杯饭 1杯ukda chawal 1/2杯乌拉尔·达尔 1/4杯poha 1/4茶匙methi种子 盐调味 需要的水 这将使dosa的长度约为1/2米。 挑战 编写一个程序或函数,该程序或函数将告诉餐厅工作人员从给定食谱的整数倍中制作一个披萨的确切条件。厨房空间狭窄,因此您希望代码尽可能短。以最短的代码为准,并联系更早的职位。 量匙和量杯具有以下标准尺寸:1 / 4、1 / 3、1 / 2、2 / 3、3 / 4和1。为避免激怒厨房工作人员,必须以最大单位报告测量结果。该数字只能用标准尺寸写成混合数。 根据以下约定,测量结果会传播到更大的尺寸: 3茶匙== 1汤匙 4汤匙== 1/4杯 因此,对于12的倍数,1/4 tsp methi种子变为1 tbsp。但是,对于13的倍数,它变为3 1/4 tsp。否则,它将不会以标准尺寸表示。 服务员必须能够将dosa抬到桌子上。为确保dosa不会在运输过程中中断,请指示他们将dosa随身携带。每个人最多可以携带一米的dosa。因此,对于单一或双重配方,只需一个人即可携带。如果将服务员切成小块,效率会降低,因此始终需要整数个服务员。 输入值 通过STDIN(或最接近的替代方法),命令行参数或函数参数获取正整数。此数字决定配方的缩放比例,并且可以小至1但不大于2 32 -1。它可以是该范围内的任何整数。 输出量 打印到STDOUT(或最接近的替代品)的列表是根据输入的比例以及随身携带dosa所需的服务员数量缩放的。成分必须按照上面给出的顺序和下面给出的格式列出。 例子 输入: 2 输出: 2 cups rice 2 …

30
输出qwerty键盘
给定一个字符,输出(到屏幕)该字符之后的整个qwerty键盘布局(带有空格和换行符)。这些例子很清楚。 输入1 f 输出1 g h j k l z x c v b n m 输入2 q 输出2 w e r t y u i o p a s d f g h j k l z x c v b n m 输入3 m 输出3 (程序终止而没有输出) 输入4 l …

2
可怜的人的乳胶
您在一个平行的世界中被运送,人们在计算机上以人工方式将数学方程式编写为ASCII艺术。作为LaTeX上瘾者,这是完全不可接受的,您应该在某种程度上实现此过程的自动化。 您的目标是编写一个程序,输出作为LaTeX数学命令输入的方程式的ASCII版本。 必需的LaTeX命令支持 求和:求和的LaTeX命令为 \sum_{lower bound}^{upper bound} 您必须用于求和的ASCII数字为: upper bound ___ \ ` /__, lower bound 产品:产品的LaTeX命令是 \prod_{lower bound}^{upper bound} 产品必须使用的ASCII数字为: upper bound ____ | | | | lower bound 分数:分数的LaTeX命令是 \frac{numerator}{denominator} 您必须用于分数的ASCII数字是: numerator ----------- denominator 不属于这三个命令之一的所有内容均按原样显示。例如,\sum{i=3}^{e^10}\frac{3x+5}{2}应显示为 e^10 ___ 3x+5 \ ` ---- /__, 2 i=3 输入项 输入是作为字符串(或您的语言等效于字符串)传递的LaTeX命令。LaTeX命令可以嵌套,例如\frac{\frac{1}{2}}{3}是有效输入。输入应该总是正确的(无需在代码中检查LaTeX的语法)。输入仅包含上面显示的三个LaTeX命令和不需要格式化的“文本”。 LaTeX命令将始终具有上述语法,即,总和和乘积始终具有上限和下限(尽管它们可以为空),并且始终存在分数的分子和分母。 我们假定求和与乘积的边界最多为4个字符长(=和与乘积符号的宽度),因此您不必担心可能出现的重叠问题。出于类似的原因,我们假设边界只是“文本”,绝不会是LaTeX命令,例如\sum_{\sum_{1}^{2}}^{1}不是有效输入。 …

14
斐波那契螺旋
您的目标是生成带有数字的斐波那契螺旋。 输入/输出示例 1 -> 1 2 -> 1 1 3 -> 1 1 2 2 2 2 6 -> 8 8 8 8 8 8 8 8 5 5 5 5 5 8 8 8 8 8 8 8 8 5 5 5 5 5 8 8 8 8 8 …

22
忍者,猴子和熊,天哪!
这个挑战是NinjaBearMonkey赢得我的Block Building Bot群的奖励!挑战黑骑士的作品。恭喜NinjaBearMonkey! 这里的挑战相当简单,但是有多种可能的方法。传说在等距幻象世界中,有6种不同类型的生物: 忍者,缩写 N 熊,缩写 B 猴子,缩写 M NinjaBears,缩写 NB BearMonkeys,缩写 BM NinjaBearMonkeys,缩写 NBM (NinjaBearMonkey当然是最后一个最强大的类型。) 您的任务是对这些生物并排排列(即,它们的缩写字符串串联在一起)进行普查。需要注意的是,您需要确保不要将某些生物的部分计算为看起来相似的单独生物。这些生物将排队,以便: 的任何实例NBM都是1个NinjaBearMonkey和0个其他生物。 NB不跟的任何实例M是1个NinjaBear和0个其他生物。 BM不带前缀的任何实例N是1个BearMonkey和0个其他生物。 否则,实例N,B以及M分别是单忍者,熊,猴等。 该线从左到右读取。 因此,例如,在生物行中NBMMBNBNBM,有0个忍者,1个熊,1个猴子,1个NinjaBear,0个BearMonkeys和2个NinjaBearMonkeys。 挑战 写一个程序或函数,它在字符的字符串N,B和M,并打印或返回许多各6种动物中的如何存在于它。 输出应具有以下形式 #N #B #M #NB #BM #NBM 用相应的生物计数替换每个#符号。必须显示所有6个计数,即使它们为0,也要用空格隔开。但是,它们可以按任何顺序排列(例如,#NBM可以排在最前面)。 也: 输入字符串将只包含字符N,B和M。 如果输入空字符串,则所有计数均为0。 输出可以可选地包含单个前导和/或尾随空格和/或单个尾随换行符。 以字节为单位的最短提交获胜。 例子 输入:NB 输出:0N 0B 0M 1NB 0BM 0NBM 输入:NBM 输出:0N 0B …
37 code-golf  string 

30
检查单词字母是否按字母顺序排列
编写一个接受一串小写/大写字母[A-Za-z]作为输入的函数/程序,该函数/程序检查出现的字母是否唯一并且是否按字母顺序排列(忽略大小写)。如果输出是唯一的且按字母顺序输出,则输出必须为真,否则为假。 这里有一些测试用例 a true abcdefGHIjklmnopqrSTUVWXyz true aa false puz true puzz false puzZ false puZ true PuZ true pzu false pzU false abcdABCD false dcba false 如果您愿意,可以在像这样的单词列表的所有单词上运行程序,然后发布一些有趣的单词=)。 得分 最低字节数获胜。

8
输出大小超过Graham数的最短终止程序
编写满足以下要求的最短程序(长度以字节为单位): 没有输入 输出到标准输出 执行最终终止 输出字节总数超过Graham的数量 假设程序运行到能够访问无限资源的理想计算机1上的“正常”终止,并且在必要时修改了通用编程语言(无需更改语法)以允许这样做。基于这些假设,我们可以称其为Gedanken实验。 首先,这是一个73字节的Ruby程序,该程序在快速增长的层次结构中计算fω+ 1(99): f=proc{|k,n|k>0?n.times{n=f[k-1,n]}:n+=1;n};n=99;n.times{n=f[n,n]};puts n 1编辑:更准确地说,假设我们采用现有系统并对其进行修改,以使其对存储大小没有上限(但始终是有限的)。在指令的执行,时间不应该被修改,但该机被认为是因为它会对它的工作寿命没有上限理想。

30
确定所有十进制数字是否唯一
关于Stack Overflow的已删除问题有时可以使高尔夫球变得更好。 编写一个以非负整数作为输入的函数,如果该数字以10为基的所有数字都是唯一的,则返回true。例: 48778584 -> false 17308459 -> true 字符数仅包含功能。 如果选择用C或C ++回答:没有宏,没有未定义的行为;实现定义的行为和编译器警告都可以。

30
打印字母四次
程序必须打印四次字母:第一次按正常字母顺序,第二次按qwerty键盘顺序,第三次按dvorak键盘顺序,最后按相反的字母顺序打印。输出应类似于以下内容: abcdefghijklmnopqrstuvwxyz qwertyuiopasdfghjklzxcvbnm pyfgcrlaoeuidhtnsqjkxbmwvz zyxwvutsrqponmlkjihgfedcba 输出不区分大小写,您可以在任意位置添加或省略换行符或空格。 要点:程序必须少于104个字符,换句话说,必须小于字母的长度乘以四。 我将用最短的代码接受答案,除非我看到一些令我印象深刻的真正聪明或有趣的东西。 编辑:我将在2011年4月27日星期三接受最短答案。 EDIT2:赢家是(照常)以64个字符组成的Golfscript!第二名,仅落后3个字符,在Golfscript中也有67个字符,其次是Bash,排名第 32 位。 但我想提及其他一些内容,例如这个,根据您的定义,仅使用了52个“字符”,而这个字符是他用自己创建的语言编写的。 当时有几个 人 谁打破了一条不成文的规定,并没有出线,但我会提到他们只是为自己没有盒子的思维方式。

30
PHP高尔夫技巧
您使用PHP打高尔夫球有哪些一般技巧?我正在寻找可以应用于编码高尔夫球问题的想法,这些想法至少在某种程度上特定于PHP(例如,“删除注释”不是答案)。请为每个答案发布一个提示。
37 code-golf  tips  php 

5
i = 3 = 2
受无限系列视频的启发。 介绍 Pi定义为圆周与圆直径之比。但是如何定义一个圆呢?通常,圆被定义为到中心点的距离恒定的点(假设中心位于(0,0))。下一个问题是:我们如何定义距离?以下我们考虑距离的不同概念(由Lp-norms 引起): 给定一个范数(=测量长度的东西),我们可以很容易地构造一个距离(=两点之间的距离),如下所示: dist(A,B) := norm (A-B) 欧几里得范式由下式给出: norm((x,y)) = (x^2 + y^2)^(1/2) 这也称为L2范数。其他Lp范数是通过将2上面公式中的替换为1到无穷大之间的其他值来构造的: norm_p((x,y)) = (|x|^p + |y|^p)^(1/p) 这些不同规范的单位圆具有截然不同的形状: 挑战 给定一个p >= 1,计算Lp圆相对于- Lp范数的周长与直径之比,精度为四个有效数字。 测试用例 我们可以将其用于p,q与1 = 1/p + 1/q我们获得相同的比率Lp和Lq标准比率。此外,由于p = q = 2该比率最小,并且p = 1, q = infinity我们得到的比率为4,因此比率始终在pi和之间4。 p or q ratio 1 infinity 4 2 …

18
丹麦文数到100
使用丹麦的计数方法,以正确的顺序打印0-100之间的所有数字 他们如何计数 像英语一样,他们有专用的0-20、30、40和100单词 他们没有说twenty-one和twenty-two,而是说one and twenty和two and twenty 从50开始,他们说10的倍数为n * 20 50 = half third times twenty = half way to the 3rd multiple of 20 60 = three times twenty 70 = half fourth times twenty 80 = four times twenty 90 = half fifth times twenty 因此,例如55将为five and …

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.