Questions tagged «code-golf»

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

8
数字元胞自动机
编写一个程序或函数,该程序或函数需要一个奇数正整数N和一串十进制数字(0123456789)。该字符串表示十状态一维元胞自动机。每个数字占用一个单元,并且从一代到下一代的更新规则是,每个单元成为由以该单元为中心的N个单元的总和取模得到的数字。 第一个和最后一个单元像邻居一样环绕,因此单元始终可以将N个单元居中。请注意,N可能大于字符串的长度,这意味着它可能会多次缠绕,因此某些数字将多次相加。 例如,如果N为7且字符串为038,为使单元格可视化,我们可以038在两个方向上无限重复地写 ...038038038038038... 则将0变为的数字是以010 为模的任意7个数字的总和: ...038038038038038... ^_____^ | sum all these 这(0+3+8+0+3+8+0)%10是2。 类似地,数字的3和8变化到由被定义(3+8+0+3+8+0+3)%10= 5和(8+0+3+8+0+3+8)%10= 0分别。 因此,之后的生成038是250当N为7时。 您的程序或函数需要打印或返回下一代输入数字字符串的数字字符串。例如,将更新规则应用于每个单元一次并提供输出。以字节为单位的最短代码获胜。 测试用例 [digit string] -> [N = 1], [N = 3], [N = 5], [N = 7], [N = 9], [N = 43] 0 -> 0, 0, 0, 0, 0, 0 1 -> …

7
解决日期格式纠纷
日期的格式顺序是当今世界面临的最复杂和分歧最大的问题之一。考虑到我们这么说,我们当中有些人激烈地认为“月/日/年”是适当的。其他人则大声疾呼说,“天/月/年”是最好的,因为它会将术语按其表示的持续时间升序排列。 适可而止。计算机可以简单,公平地解决此争议。您的代码(一个完整的函数或程序)将使用一个以斜杠分隔的日期字符串,例如12/1/2015。请注意,这是确切的格式,没有前导零,并且末尾有四位数的年份。 如果绝对是月/日/年,例如10/31/1998,则以该确切格式输出该日期的文本表示,并带有完整的月份名称,日期和年份:October 31, 1998 例如,如果绝对是日/月/年25/12/1989,则输出相同类型的文本表示形式:December 25, 1989。 如果是月/日/年还是日/月/年的模棱两可,请通过组合以下两个可能的日期来输出可解决歧义的日期: 通过取的名字上半年创建一个新的月份名称前面月份和下半年追加后一个月。对于长度不固定的月份,前半部分会收到多余的字母。要明确,月份的第一半部Janu,Febr,Mar,Apr,Ma,Ju,Ju,Aug,Septe,Octo,Nove,和Dece因此第二半部ary,uary,ch,il,y,ne,ly,ust,mber,ber,mber,和mber。 通过将两个可能的天数取平均值来计算天数,当平均值不是整数时取下限。 输出该日期的文本表示形式,例如对于10/8/2011output Augber 9, 2011。 如果输入日期不能是月/日/年或日/月/年(例如13/13/2013甚至2/30/2002),则任何行为都是可以接受的。此代码高尔夫,最短的代码获胜! 测试用例: 10/31/1998 给 October 31, 1998 25/12/1989 给 December 25, 1989 10/8/2011 给 Augber 9, 2011 8/5/1957 给 Maust 6, 1957 9/12/2012 (足够)给 September 10, 2012 1/1/2000 给 January 1, 2000
17 code-golf  string 

1
绘制烷烃的Lewis结构
我刚刚在学校上了一堂关于烷烃的课,并且发现这可能会给高尔夫挑战赛带来很大的挑战!不用担心,它并不像看起来那样复杂! 快速重提 (请注意:为简短起见,并非所有信息都是100%准确的。) 烷烃是碳和氢的串。每个碳原子具有4个键,每个氢原子具有1个键。烷烃的所有碳原子形成一个串,其中每个C原子与另外2个C原子(路易斯结构中的左侧和右侧)和2个H原子(上下)连接,但串的末端除外,其中C原子仅连接1个其他C,但连接3 Hs。这是戊烷(具有5个C原子和12个H原子的烷烃)的基本示例: H H H H H | | | | | H-C-C-C-C-C-H | | | | | H H H H H 烷烃也可以具有分支。但请放心,此挑战中的所有烷烃都只能用1级支链表示。例: H | H-C-H H H H | H | | | | | H-C-C-C-C-C-H | | | | | H H H H …

6
枚举N维向量
给定正整数k > 1和非负整数i,生成非负整数的k-tuple(或- k维向量)。对于每一个k,从ℕ到ℕ地图ķ,必须是双射。也就是说,每个输入i应产生一个不同的元组,并且每个可能的元组必须由某个输入产生i。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 您可以对输出使用任何方便,明确的平面列表格式。 您的解决方案不应施加任何人为限制k,i但您可以假定它们适合您语言的本机整数大小。至少,您必须支持最大为的值255,即使您的本机整数大小也要小于该值。 对于any 1 < k < 32,您的代码应该会在几秒钟内产生一个结果(当然,如果您的答案由于先前的规则而不能支持那么大,则会相应地调整限制)。这应该是没有问题的:它可能解决这一难题,使得它的作品多达2 128在几秒钟,但上限是存在的,以避免回答这实际上从迭代来找到结果。i < 231i0i 请在您的答案中包括对所选映射的描述,以及为什么该映射是双射的(这不需要是正式证明)。 这是代码高尔夫球,最短的答案(以字节为单位)获胜。 相关挑战 从非负数生成一对整数 输出所有有理数的列表

20
制作数学竞赛评分者
我喜欢参加由美国数学荣誉学会Mu Alpha Theta举办的数学竞赛。在比赛中,我接受了30个问题的多项选择题测试。每个问题有五个选择,标记为A到E。 我在测试中的得分是,每个正确答案为4分,空白为空则为零分,每个错误答案为负1分。 编写一个程序,根据上述评分系统对测试进行评分。输入应包含两个部分:答案键和响应。留空的问题将作为空格输入。第一个输入必须仅包含字母AE(或ae,由您选择),并且可以假定输入中没有空格。第二个输入只能包含空格和字母AE(或ae)。未执行30个问题的测试的输入必须Invalid test作为输出打印。 输出应为年级或Invalid test。 奖金 如果您的程序在最终得分之后将正确打印数字,将空白打印为空白以及将错误的数字打印为(aR bB cW),则请减去20个字节。 样品输入 CABBDCABECDBACDBEAACADDBBBEDDA //answer key CABEDDABDC BACDBBAADE CBBEDDA //responses 样品输出 没有奖金 73 奖金 73 (20R 3B 7W) 适用标准规则。以字节为单位的最短代码获胜。
17 code-golf  string 

11
伽玛功能高尔夫
给定的实数t中(-10^9,13)(不包括-10^9或13)作为输入,输出Γ(t),也被称为伽玛函数,其定义如下: 您不得使用内置的Gamma函数来解决此任务,也不得使用内置的数字或符号积分函数。您的输出应精确到6个有效数字或在10^-6实际值以内,以对给定值的限制较小为准。Python的内置Gamma函数将用于确定实际值。您可能会假设Γ(t)已定义-即是t正实数或非整数负实数-且那个|Γ(t)| ≤ 10^9。这是一个参考程序,您可以使用它使用Python的内置Gamma函数来获取实际值。 例子 1 -> 1.000000 -2.5 -> -0.945309 3.14159265 -> 2.288038 -2.71828182846 -> -0.952682 12 -> 39916800.000000 0.5 -> 1.772454 8.675309 -> 20248.386956 -10.1 -> -0.000002 规则 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 禁止出现标准漏洞。 输入和输出可以以您的语言视为标准的任何方式执行。 您可以编写完整的程序,函数或通常被认为是您的语言有效答案的任何内容 排行榜 这篇文章底部的堆栈摘录从答案a)生成排行榜,答案是每种语言的最短解决方案列表,b)则是总体排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: …

14
有趣的排列
谁不绝对喜欢排列,对吗?我知道,它们很棒-非常有趣! 好吧,为什么不把这个乐趣变得有趣呢? 这是挑战: 给定精确格式的输入:nPr,其中n是从中获取的池,r是从该池中选择的项的数量(and n和r是整数),输出/返回排列的确切数量。对于那些对术语有些生疏的人:排列,定义。2a。 但是,这是挑战发挥作用的地方(使其变得不太容易): 您不能将任何内置库,框架或方法用于您的置换功能。您可能不使用阶乘方法,置换方法或任何种类的方法;您必须自己编写所有内容。 如果需要进一步澄清,请随时在评论中告诉我,我将立即采取行动。 这是一个I / O示例: 样本函数为 permute(String) -> int 输入: permute("3P2") 输出: 6 这是代码高尔夫球,所以最短的代码胜出!

5
手机键盘打字
手机键盘打字 不久前有人问了这个问题,但由于规格不佳而被关闭。因此,我将以更好的规格重做它。这个问题是相关的,但方向相反。 在T9出现之前,为了在短信中输入字符,您必须多次按数字键之一才能获得所需的字符。供参考,以下是标准映射: +-------+-------+-------+ | 1 | 2 | 3 | | .?!1 | ABC2 | DEF3 | +-------+-------+-------+ | 4 | 5 | 6 | | GHI4 | JKL5 | MNO6 | +-------+-------+-------+ | 7 | 8 | 9 | | PQRS7 | TUV8 | WXYZ9 | +-------+-------+-------+ | …

2
生成一些安全的PIN
受到这个深受好评的移民职位的启发。 您公司的安全负责人会担心您的PIN生成系统给您之后12345。他也不是很欣赏您为自己付出的代价而开玩笑的太空球笑话,因此您被委托重写PIN生成器。由于它必须适合某些特殊的硬件,因此您必须使其尽可能小。 你的任务 您有两个输入-PIN数和PIN码的位数。 随机生成指定数量的指定大小的PIN 并打印出来。 即使不是统一概率,所有大小相同的有效PIN也必须能够打印出来。 但是,PIN有一些限制-这是无效的: 如果所有对都是相同的数字:(114422注意:显然,这将包括所有相同的数字PIN)。 日益线性销(MOD 10): 246802。 3所有群体的键盘上的物理线路1 2 3;4 5 6;7 8 9;bksp 0 enter;:147369。 PIN可以从规则1和规则3完全分为几组。 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

14
根据国际象棋FEN字符串评估分数
挑战 福赛斯·爱德华兹符号(FEN)是一种标准符号,用于描述国际象棋游戏中特定的棋盘位置。您面临的挑战是使用FEN字符串评估分数。这是FEN字符串的示例: 5k2/ppp5/4P3/3R3p/6P1/1K2Nr2/PP3P2/8 使用此字符串,您可以使用以下得分表来计算每种颜色的材料得分: p / P =典当= 1点 n / N =骑士= 3分 b / B =主教= 3分 r / R =白嘴鸦= 5分 q / Q =皇后= 9分 k / K = King,这些没有任何意义,因为每个法律职位的每一侧都包含King 白色部分使用大写字母(“ PNBRQK”)指定,而黑色部分使用小写字母(“ pnbrqk”)指定。使用1到8的数字(空白方块的数量)标注空白方块,“ /”分隔等级。 从示例FEN字符串中,我们可以计算每一面的材料得分: 对于黑色: 5 k 2 / ppp 5 / 4P3 / 3R3 …
17 code-golf  chess 

6
乌兰螺旋之素
乌兰(Ulam)的螺旋式是一个真正令人着迷但令人困惑的数学主题。可以在这里找到它的详细工作原理,但简短的摘要可以这样解释: 我先写一个,然后在右边写一个二。在两个上方,我写三个,在左边左侧,我写四个。我继续无限循环(或直到被告知停止)围绕1(以及我与1之间的任何数字)盘旋的这种模式,形成了螺旋模式。(请参见下面的示例) 目标 制作一个程序,该程序接受n(始终为大于零的奇数)作为与行数相关的输入,然后逐行打印Ulam螺旋的素数值。格式可以是任何方式,但必须易于阅读且显而易见。 例如,给定输入3,您的程序应输出5,3,2,7,因为3行会产生以下螺旋: 5 4 3 <-- first row has the primes 5 and 3 6 1 2 <-- second row has the prime 2 7 8 9 <-- third row has the prime 7 由于这是一场代码高尔夫,因此,字节数最少的答案将获胜(无论效率如何)!标准漏洞是不可接受的。
17 code-golf  math  primes 

8
在棋盘上捕获
您应该编写一个程序或函数,该程序或函数接收代表棋盘的字符串,并仅以棋子作为输入和输出,或者返回是否可以在棋盘上进行任何捕获。 输入采用类似于FEN的表示法,描述白色和黑色棋子的位置,没有其他片段。您应该确定是否有可以捕获敌人的棋子。 每个等级都有描述,从等级8开始到等级1结束;在每个等级内,从文件“ a”到文件“ h”描述每个方块的内容。每个典当都由一个字母标识(白色典当=“ P”,黑色典当=“ p”,)。使用1到8的数字(空白方块的数量)标注空白方块,“ /”分隔等级。(部分取自维基百科) 例如 8/pppppppp/8/8/4P3/8/PPPP1PPP/8 描述董事会 -------- pppppppp P PPPP PPP -------- 如果一个黑色的棋子位于对角线的上方(黑色是左上或右上),则一个黑色的棋子可以捕获一个黑色的棋子(如果白色的棋子位于对角线的下方),则黑色的棋子可以捕获一个白色的棋子。左下或右下)。不应考虑其他捕获动作(绕过)。 输入项 一个FEN样串组成的字符12345678pP/。 输入内容描述了有效国际象棋游戏位置的棋子。这意味着(除其他更复杂的约束之外)每侧最多有8个棋子,等级1和8上没有棋子。 输出量 如果双方都有可能被捕获,则应输出真实值,否则输出虚假值。 例子 具有真实输出的输入(每行一个) 8/7p/6P1/8/8/8/8/8 8/8/p7/1P6/3P3p/8/8/8 8/2P5/8/4P1p1/2p2P2/3p4/3p1P2/8 8/P7/8/5P2/2pp4/3P2p1/3pP3/8 8/P7/p7/p1P1P3/1P3p2/8/1p6/8 8/4p1P1/2P2P1P/2p1pPpp/8/6P1/pP1p4/8 输入具有虚假输出(每行一个) 8/8/8/8/8/8/8/8 8/7P/6p1/8/8/8/8/8 8/7p/7P/8/8/8/8/8 8/pppppppp/8/8/8/8/PPPPPPPP/8 8/p7/8/1p6/5P2/8/8/8 8/p7/P7/2P1p1p1/2p5/8/PP6/8 这是代码高尔夫球,因此最短的入场券获胜。

6
颂高尔夫-信件删除
给定一个字典文件(一个文本文件,每行包含一个单词或短语,可能带有标点符号,但不带数字;行均按字母顺序排列),您必须输出单词的每种组合,其中一个单词可以从一个单词中删除以换成另一个;删除的字母应放在括号中。 例如,输入 cat cart code golf ode verify versify 应该输出 ca(r)t (c)ode ver(s)ify 获得同一对的多种方法只能显示一次。您可以输出scra(p)ped或scrap(p)ed,但不能两者都输出。 输出应按较长的条目按字母顺序排序; mart mar mat ma 应该有一个输出 ma(r) ma(t) ma(r)t mar(t) 而后两个可以是任意顺序。 词典文件可以包含大写字母,空格,连字符或撇号;这些应该被忽略。例如, inlay in-play 应该产生in(p)lay。您的输出应该全部在相同的情况下。允许额外的空格。 输入可以是STDIN或来自文件;它之间用换行符分隔。输出可以是函数或STDOUT的返回值(或根据需要写入文件)。 这是code-golf,因此以字节为单位的最短代码获胜。 (这是我在PPCG上遇到的第一个挑战-如果做错了任何事情,请告诉我,我将对其进行修复。)
17 code-golf  string 

3
切换,打印,重复
挑战来自未实施的esolang Pada。 考虑一个8位的数组,所有位都初始化为零。我们将引入一个非常简约的指令集来打印任意字符串。有两条指令,两条指令都带有一个参数N,该参数是位的索引: t N对于牛逼 oggle:这会改变位的值N。 p Nfor p rint:这会将所有8位都解释为一个字节,从bit开始N并环绕在end。与此字节对应的字符被打印到STDOUT。 让我们来看一个例子。我们要打印:=。我们天真地实现了以下目标(基于0的位索引): t 2 [0 0 1 0 0 0 0 0] t 3 [0 0 1 1 0 0 0 0] t 4 [0 0 1 1 1 0 0 0] t 6 [0 0 1 1 1 0 1 …

16
像这样打印
编写一个程序,将输入输入到STDIN,并使2k-1第一个单词的所有小写​​字母(包括重音字母)都变为大写,而第一个单词的所有大写字母(也包括带重音字母)都变为2k小写(k是一个正整数)。该程序不应影响任何单词中的任何其他字符。例如,如果字符串为Ook! O0k!,则输出应为OOK! o0k!。 当非空格字符后的空格数量非零时,将形成一个新单词。输入开头的空白应忽略。如果单词不包含任何更改的字符,程序仍应将其视为单词并继续。 样本输入(不同的输入用空白换行符分隔) Nineteen Eighty-Four (1984) Programming Puzzles & Code Golf - Hooray for Code Golf Stack Exchange! 2be or not 2be, that is the ~~~QuEsTiOn~~~ ++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. 样本输出 NINETEEN eighty-four (1984) PROGRAMMING puzzles & code GOLF - HOORAY for CODE golf STACK exchange! 2BE or NOT 2be, THAT …
17 code-golf 

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.