Questions tagged «code-golf»

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

7
将中缀表达式转换为后缀表示法
当我看到这个封闭问题的标题时,我认为它看起来像是一个有趣的高尔夫挑战代码。因此,让我这样介绍一下: 挑战: 编写一个程序,表达式或子例程,给定一个用infix表示的算术表达式,例如1 + 2,以后缀表示即输出相同的表达式1 2 +。 (注意:类似的挑战在1月初发布。 但是,我确实觉得这两个任务在细节上有很大不同,足以证明这个单独的挑战是正确的。而且,我只在键入下面的所有内容后才注意到另一个线程,我宁愿不只是把它扔掉。) 输入: 输入包括由以下组成的有效缀算术表达式的数目(非负整数表示为一个或多个十进制数字序列),平衡括号来指示分组的子表达式,和四个缀二进制运算符 +,-,*和/。这些中的任何一个都可以由任意数量的空格字符分隔(并且整个表达式都被包围),应将其忽略。1个 对于那些喜欢形式语法的人,这里有一个简单的类似于BNF的语法,定义了有效的输入。为了简洁起见,语法不包含可选空格,该空格可能出现在任意两个标记之间(数字中的数字除外): expression := number | subexpression | expression operator expression subexpression := "(" expression ")" operator := "+" | "-" | "*" | "/" number := digit | digit number digit := "0" | "1" | "2" | …
23 code-golf  math 

30
10张CHR $(205.5 + RND(1)); :使用PHP转到GOTO 10(或其他任何方式)
此问题是从Stack Overflow 迁移而来的,因为可以在Code Golf Stack Exchange上回答。 迁移 7年前。 刚刚与同事进行了一次“振奋”的对话,以讨论以下BASIC语句的简洁性: 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 这是本书的标题,将简单地打印/和\字符序列,在两者之间随机交替,从而产生类似于以下内容的模式: (图片来自http://www.flickr.com/photos/rndmcnlly/5058442151/sizes/o/in/photostream/) 考虑到PHP的特殊性,我们想知道用PHP编写相同内容的最紧凑的方式是什么,并提出了以下建议: while(1) { echo chr(47 + 45 * rand(0,1)); } chr(47)是一个/字符,而chr(92)是一个\。因此,该声明echo chr(47 + 45 * rand(0,1));将随机地在两者之间交替出现,即引起恶心。 用您选择的语言编写最短的程序或函数,以输出一个无限随机的字符\和/字符序列,其中每个字符被选择的可能性均等。

15
地形字符串
这是一些示例输入,因此我可以解释问题所在: ((1 2)(3 (4 5) moo)) (i (lik(cherries)e (woohoo))) 可以将这行文字视为一些山脉的地形图。每组括号表示一个高度单位。 如果我们从侧面“查看”,以便垂直看到山脉,我们将看到: 4 5 cherries woohoo 1 2 3 moo lik e i 给定这些地形图之一,请像上面的输出一样以垂直比例输出地图。将地图中的不同项目与下一个项目的字符数分开。例如,输出之间有4个空格moo和i。同样,moo和之间的输入中有4个字符i。 以最少的字符数执行此操作的代码将获胜。

23
找到主要因素
在此任务中,您必须编写一个程序,该程序可以计算数字的素数。输入为自然数1 <n <2 ^ 32。输出是采用以下格式的数字素数的列表。如果指数为1,则必须省略。仅输出质数。(假设输入为131784): 131784 = 2 ^ 3 * 3 * 17 ^ 2 * 19 不需要使用相同数量的空格;可以在适当的地方插入空格。您的程序应在不到10分钟的时间内完成输入。字符数最短的程序获胜。

26
有一个老太太
您的目标是编写一个程序,以完全按照此处显示的方式打印以下诗歌: There was an old lady who swallowed a fly. I don't know why she swallowed that fly, Perhaps she'll die. There was an old lady who swallowed a spider, That wriggled and iggled and jiggled inside her. She swallowed the spider to catch the fly, I don't know why …

30
字符串X是字符串Y的子序列吗?
给定字符串X和Y,请确定X是否为Y的子序列。空字符串被视为每个字符串的子序列。(例如''和'anna'是的子序列'banana'。) 输入项 X,可能为空,区分大小写的字母数字字符串 Y,可能是空的区分大小写的字母数字字符串 输出量 True或False(或等效项),正确指示X是Y的子序列。 I / O实例 X Y output '' 'z00' True 'z00' 'z00' True 'z00' '00z0' False 'aa' 'anna' True 'anna' 'banana' True 'Anna' 'banana' False 标准 最短的程序获胜,这取决于源代码的字节数。 示例程序 与此相关的帖子中有几种可以改编的程序。
23 code-golf  string 

11
这个数字是秘密斐波那契吗?
背景 你们大多数人都知道斐波那契数是什么。根据Zeckendorf定理,有些人可能知道所有正整数都可以表示为一个或多个不同的斐波那契数之和。如果整数的最佳Zeckendorf表示形式中的项数n本身是斐波那契数,我们将其称为n“秘密”斐波那契数。 例如: 139 = 89 + 34 + 13 + 3 This is a total of 4 integers. Since 4 is not a Fibonacci number, 139 is not secretly Fibonacci 140 = 89 + 34 + 13 + 3 + 1 This is a total of 5 integers. Since …

6
分解高斯整数
一个高斯整数是一个复杂的数字,其实虚部是整数。 像普通整数一样,高斯整数可以以独特的方式表示为高斯素数的乘积。这里的挑战是计算给定高斯整数的素数。 输入:高斯整数,不等于0,也不是单位(即1,-1,i和-i不能作为输入)。使用任何明智的格式,例如: 4-5i -5 * j + 4 (4,-5) 输出:高斯整数列表,它们是质数(即,没有一个可以表示为两个非单位高斯整数的乘积),并且其乘积等于输入数。输出列表中的所有数字都必须是平凡的,即不能为1,-1,i或-i。可以使用任何明智的输出格式。它不必与输入格式相同。 如果输出列表中有多个元素,则可能有几个正确的输出。例如,对于输入9,输出可以是[3,3]或[-3​​,-3]或[3i,-3i]或[-3​​i,3i]。 测试用例,(从此表中获取;每个测试用例2行) 2 1+i, 1-i 3i 3i 256 1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i,1+i 7+9i 1+i,2−i,3+2i 27+15i 1+i,3,7−2i 6840+585i -1-2i, 1+4i, 2+i, 3, 3, 6+i, 6+i 不允许使用用于分解高斯整数的内置函数。但是,允许通过内置函数分解普通整数。

30
完全是素数的素数测试
编写一个程序,该程序将测试指定数字的素数,并将输出作为布尔值给出(True是素数)。您的主要测试可以(但不一定)对数字1有效。 要注意的是:您的程序本身必须求和一个质数。将每个字符(包括空格)转换为其Unicode / ASCII值(表)。然后,将所有这些数字相加,得出程序的总和。 例如,采用我在Python 3.3中编写的不太好的程序: q=None y=int(input()) for x in range(2,int(y**0.5)+1): if y%x==0: q=False if not q: q=True print(q) 如果将所有字符转换为相应的Unicode / ASCII值,则会得到: 113 61 78 111 110 101 10 121 61 105 110 116 40 105 110 112 117 116 40 41 41 10 102 111 114 32 120 …

13
你可以去酒吧吗?
背景 现在是星期五下午晚些时候,您和您的朋友决定在当晚晚些时候去酒吧,但是在去酒吧之前,您应该先喝点饮料。但是,事情迅速升级。您的朋友Shaddock Pamplemousse在本周初赢得了彩票,并决定将带不同饮料的板条箱带到板条箱上。酒馆的安全性非常严格,如果您在进屋之前过度消费,则不允许进入。你们都是程序员-所以您认为一切都会变得很好。 挑战 如果您超出/低于合理的发布限制,则需要对酒精度计进行编程,以输出真/假。在下酒馆之前,您需要输入您在晚上stdin阅读测量程序所消费的数量和饮料类型。如果输出不正确,则说明您超出了发布限制,请留在家里。如果输出错误,那您就很好了。 输入项 大于1的整数0表示您的体重(以千克为单位),后跟换行符。此输入之后是一系列的一位数的数字和饮料,格式如下: <amount><amount type>o<beverage type> 对于一瓶啤酒,外观如下: 1Bob 每个输入用空格分隔。 输入规格 每种饮料都有一个与之对应的单位。如果您消耗的单位数多于体重除以2的重量,则不再可以选择酒吧。 (这可能反映也可能不反映现实) 以下是有效的饮料以及饮料中相应的酒精单位: 啤酒:b,1单位 能量饮料:e,0单位 辣酱:h,2单位(浓汤) 汁(由有机水果等): j,0单位 朗姆酒:r,6单位 龙舌兰酒:t,7单位 伏特加:v,6单位 葡萄酒:w,3单位 有不同的金额类型: 瓶子: B 箱: C 玻璃: G 桶: K 啜: S 每种数量类型都有一个乘数,用于乘以其中所含饮料的酒精含量: 瓶子: 3 箱: 25 玻璃: 2 桶: 50 啜: 0.2 输出量 如果消耗的量高于/低于体重除以2 …

19
迪克斯特拉的挑战
为纪念APL成为今年50岁的互动工具而颁发 背景 肯·艾弗森(Ken [Iverson])在1963年8月于新泽西州普林斯顿举行的机械语言结构工作会议上发表了他的论文《程序语言形式化》。(巴克斯,库里,迪克斯特拉,弗洛伊德,艾弗森,纽厄尔,玻璃市,威尔克斯)。该文件还记录了演讲后的讨论,最后在Ken和[Edsger] Dijkstra之间进行了交流,其中Ken对Dijkstra问题的答复是单线的。 挑战 您将如何表示一个更复杂的操作,例如,矩阵M中所有元素的总和等于相应的行索引和列索引的总和? 编写一个代码段或表达式(不需要完整的程序或函数)以计算给定整数矩阵中每个元素的总和,该整数等于其索引的总和。或者,如FryAmTheEggman所说:给定一个矩阵中号的元素一个 IJ返回每个的总和一个 IJ其中一个 IJ = I + J。 您可以假定矩阵已经在变量或存储位置中,或者可以将其用作参数或输入。您可以使用基于0或1的索引。 测试用例 0 用于空矩阵 2 0基于0的索引或2基于1的索引 1 5 2 9 4 2 5 9 6 2基于0或10基于1 0 3 0 4 0 4 1 4 4 3 1 2 -2 4 -2 -1 11 3 -1 …

2
表情符号自动贩卖机
看不到表情符号?请点击这里。 您将模拟自动售货机。这些项目是56种不同的表情符号,可以表示为两个替代UTF-8字符,从🍅(U + D83C U + DF45)到🍼(U + D83C U + DF7C)。在HTML中,这些表情符号可以UTF-16形式表示为&#x1F345到&#x1F37C。在基数10中,第一个UTF-8字符的值为55356。第二个字符的值的范围是57157至57212。这是一个生成所有相关表情符号的CJam程序。为避免混淆,此挑战将以字符而不是字节来评分。有些表情符号是2个字符,有些是3个字符。http://www.lettercount.com将为您提供准确的计数以应对这一挑战。 定价💵💵💵 有8种不同的价格类别: $ 1.00:🍅🍆🍇🍈🍉🍊🍋 $ 1.50:🍌🍍🍎🍏🍐🍑🍒 $ 2.00:🍓🍔🍕🍖🍗🍘🍙 $ 2.50:🍚🍛🍜🍝🍞🍟🍠 $ 3.00:🍡🍢🍣🍤🍥🍦🍧 $ 3.50:🍨🍩🍪🍫🍬🍭🍮 $ 4.00:🍯🍰🍱🍲🍳🍴🍵 $ 4.50:🍶🍷🍸🍹🍺🍻🍼 显示自动售货机 这是程序启动时和购买后用户所看到的。您可以使用常规数字代替表情符号数字,但是表情符号数字的优点是与其他表情符号的宽度相同。如果您使用表情符号数字,则可以从乐谱中减去14个字符,因为表情符号数字各为3个字符。 1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣ A 🍅🍆🍇🍈🍉🍊🍋 B 🍌🍍🍎🍏🍐🍑🍒 C 🍓🍔🍕🍖🍗🍘🍙 D 🍚🍛🍜🍝🍞🍟🍠 E 🍡🍢🍣🍤🍥🍦🍧 F 🍨🍩🍪🍫🍬🍭🍮 G 🍯🍰🍱🍲🍳🍴🍵 H 🍶🍷🍸🍹🍺🍻🍼 如果用户输入G5,则选择🍳。输入E6选择🍦。 …
23 code-golf 

27
重新排列顺序
介绍 让我们观察以下序列(非负整数): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, ... 例如,让我们采用前三个数字。这些是0, 1, 2。此序列中使用的数字可以以六种不同的方式排序: 012 120 021 201 102 210 因此,假设F(3)= 6。另一个示例是F(12)。其中包含数字: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 或串联的版本: 01234567891011 为了找到重新排列此方法的方法,我们首先需要查看此字符串的长度。该字符串的长度为14。因此,我们计算出14!。但是,例如,那些人可以交换位置而不会破坏最终的琴弦。有2个零,所以有2个!在不破坏顺序的情况下消除零的方法。也有4个,所以有4个!切换方式。我们将总数除以这两个数字: 这个有14个!/(4!×2!) = 1816214400排列字符串的方式01234567891011。因此我们可以得出F(12)= 1816214400的结论。 任务 给定N,输出F(N)。对于那些不需要介绍的人。为了计算F(N),我们首先将前N个非负整数连接起来(例如,对于N …

13
is_gaussian_prime(z)?
任务 编写一个函数,该函数接受a,b代表高斯整数z = a+ib(复数)的两个整数。程序必须根据a+ib是高斯素数来返回true或false 。 定义: a + bi 当且仅当满足以下条件之一时,它是高斯素数: a且b均为非零且a^2 + b^2为素数 a是零,|b|是素数,|b| = 3 (mod 4) b是零,|a|是素数,|a| = 3 (mod 4) 细节 您应该只编写一个函数。如果您的语言没有函数,则可以假定整数存储在两个变量中,然后打印结果或将结果写入文件。 您不能使用语言的内置功能,例如isprime或prime_list或nthprime或factor。最低字节数获胜。程序必须a,b在a^2+b^232位(带符号)整数的where 处工作,并且结束时间不应超过30秒。 首要清单 点表示高斯平面上的质数(x=实数,y=虚轴): 一些较大的素数: (9940, 43833) (4190, 42741) (9557, 41412) (1437, 44090)

1
是否可以使钳位函数比JS中的三元函数短?
想象一下这个短函数将一个数字钳位在0到255之间: c = n => n > 0 ? n < 255 ? n : 255 : 0 这是使用JavaScript(没有ES.Next功能)的钳位函数的最短版本吗? PS:不确定是否相关,但是0和255不是随机的,其想法是将数字钳位为8位无符号整数。

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.