Questions tagged «code-golf»

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

3
我给你安排时间,但是我周末不工作
我的老板需要知道将两个整数相加需要多长时间。但是,我不喜欢在周末工作,而且我认为我的代码也不也很公平。问题是,老板是一个要求很高的人,我认为我应该随着时间的流逝,以确保所需的时间保持不变,而且我知道他将检查代码是否正常工作。 你能给我写一个简短的程序吗? 接受两个整数,并返回正确的加法结果以及执行加法所需时间的时间-此时间应合理,并基于代码的运行时。但是,如果您需要在定时代码之间进行一些操作,使它的运行时间比允许的时间稍长。但是,您不能仅输出假时间。 不适用于本地时间的周末代码(它不能只是返回错误的结果,代码需要中断,错误或以其他方式无法执行) 不立即为明显的,为什么它没有在周末工作 我知道第一个条件有点怪异,但是我想确保人们可以在需要时导入日期/时间库,而不必怀疑标准3。但是,我敢肯定有些聪明的人会使用-10个字符无需使用标准日期库中的日历功能即可执行此操作的任何人 关于“标准日期/时间库” 标准日期时间库的示例包括python datetime,javascript date对象库java.util.Date等。用于计算执行时间增量的函数(例如pythons timeit模块)不会违反此准则,因为老板希望对代码进行计时。在某些情况下,将需要导入这些库以访问任何时间函数,因此允许其调用以整数形式返回自当前纪元开始以来的时间的函数,但日历函数返回结构化的datetime对象,这些对象可以给出单独的不允许使用小时,天等。 编辑:关于Dan04的问题,代码必须满足有关何时工作或不工作的这4个条件。您还应该解释代码如何检查时间,因为星期一上午/星期五晚上的闲暇应该为一些缩短代码的创造性方法提供一些机会。 从周六上午00:00:00到周日晚上23:59:59不得工作。 必须始终从星期一早上06:00:00到星期五晚上19:59:59工作 可以在星期一早上00:00:00到星期一早上5:59:59工作,也可以不工作 从星期五晚上20:00:00到星期五晚上早上23:59:59可以工作或不工作 edit2:显而易见,它必须满足以下3个条件: 切勿在DayOfWeek未使用该函数来计算函数时间的情况下调用已调用(或类似函数)的函数。 切勿使用英语的星期六或星期日或其缩写。 没有相同的命名变量(不能用于确定星期几或确定是否应运行代码)时,切勿使用Sat或Sun(或在备用字母的情况下)。

3
多边形前缀
多边形是根据多边形的边数命名的。五边形具有5个边,八边形具有8个边。但是,它们如何命名?248面多边形的名称是什么? 所有多边形后缀为-gon。每个多边形都有特定的前缀,具体取决于边数。以下是较低数字的前缀: 3 - tri 4 - tetra 5 - penta 6 - hexa 7 - hepta 8 - octa 9 - nona 10 - deca 11 - undeca 12 - dodeca 13 - triskaideca 14 - tetradeca 15 - pentadeca 16 - hexadeca 17 - heptadeca 18 - octadeca …

26
三角形区域侧面侧面侧面
给定一个三角形的三个边,请打印此三角形的区域。 测试用例: 在: 2,3,4 出: 2.90473750965556 在: 3,4,5 出: 6 假设三个边a,b,c总是a> 0,b> 0,c> 0,a + b> c,b + c> a,c + a> b。
17 code-golf  math 

22
给出具有N个除数的最小数
您的函数采用自然数,并返回具有除数在内的最小除数的最小自然数,包括它本身。 例子: f(1) = 1 [1] f(2) = 2 [1, 2] f(3) = 4 [1, 2, 4] f(4) = 6 [1, 2, 3, 6] f(5) = 16 [1, 2, 4, 8, 16] f(6) = 12 [1, 2, 3, 4, 6, 12] ... 该函数不必返回除数列表,仅在此处提供示例。

30
打印此乘法表
编写最短的代码以打印以下乘法表: 1×1=1 1×2=2 2×2=4 1×3=3 2×3=6 3×3=9 1×4=4 2×4=8 3×4=12 4×4=16 1×5=5 2×5=10 3×5=15 4×5=20 5×5=25 1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36 1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49 1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64 1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81

10
升序矩阵
“升序矩阵”是整数(包括0)的无限矩阵,其中任何元素是最小的可用元素,之前尚未在相应的行和列上使用: | 1 2 3 4 5 6 ... --+---------------- 1 | 0 1 2 3 4 5 ... 2 | 1 0 3 2 5 4 ... 3 | 2 3 0 1 6 7 ... 4 | 3 2 1 0 7 6 ... 5 | 4 5 …
17 code-golf  math  matrix  programming-puzzle  code-golf  music  code-challenge  programming-puzzle  code-golf  fastest-code  code-golf  number  game  code-golf  combinatorics  code-golf  math  sequence  restricted-complexity  code-golf  number  random  code-golf  array-manipulation  code-golf  math  matrix  code-golf  number  sequence  counting  code-golf  math  number  sequence  popularity-contest  number  sequence  code-golf  music  code-golf  number  code-golf  ascii-art  arithmetic  code-golf  code-golf  number  code-golf  code-challenge  array-manipulation  code-golf  grammars  code-challenge  polyglot  code-golf  game  math  python  programming-puzzle  code-challenge  king-of-the-hill  code-challenge  fastest-code  primes  number-theory  number-theory  primes  fastest-code  factoring  popularity-contest  compile-time  code-golf  math 

2
编译正则表达式
在此任务中,您必须编写一个程序来读取正则表达式,并生成另一个程序,该程序输出该正则表达式是否接受输入字符串。输出必须是使用与提交相同的语言编写的程序。 输入值 输入是与以下ABNF匹配的正则表达式r(初始生产规则为REGEX): REGEX = *( STAR / GROUP / LITERAL / ALTERNATIVE ) STAR = REGEX '*' GROUP = '(' REGEX ')' LITERAL = ALPHA / DIGIT ALTERNATIVE = REGEX '|' REGEX 如果输入与此语法不匹配,则程序的行为未定义。 解释 将输入解释为正则表达式,其中*的Kleene-star(表示重复左参数零次或多次)|是替代方法,(并且)组且根本没有运算符串联在一起。分组优先于星形,星形优先于串联,串联优先于替代。 如果正则表达式匹配整个字符串,则认为该字符串可以接受。 输出量 该程序的输出是另一个与您的提交使用相同语言编写的程序,该程序在运行时以实现定义的方式读取字符串s,输出r是否接受s然后终止。输出可以以用户定义的方式完成,尽管对于接受和拒绝的程序必须只有两个不同的输出。 您可以假定输出程序的输入从不超过2 16 -1字节。 限制条件 您的提交或提交的任何程序均不得使用内置功能或 匹配正则表达式 转换正则表达式 编译正则表达式 从语法生成解析器 简化问题,使您的提交变得微不足道 计分 …

21
编写一个使用所有可打印的非字母数字ASCII符号的程序
特别是,在源代码中至少应至少使用一次这些符号: ! " # $ % & ' () * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~ 注释,字符串文字,正则表达式(或任何其他种类的文字等)中的符号不​​计算在内(但它们的定界符例如/**/或""做计数)。 该程序不应执行任何操作。它只需要编译,运行时不执行任何操作。 如果由于某些原因某些符号不能用您选择的语言使用,请进行严格说明(必须排除哪些内容和原因)。 更新:一些答案使用了带有正则表达式的符号。我认为这有点问题,就像将它们放入字符串文字或注释中一样(这就是为什么我在该要求中放入等)的原因。请尝试使用此功能。我还更新了上面的要求。 更新:最短的代码获胜(标记为code-golf)。如建议的那样,我们很可能需要打破常规的条件。我建议,如果有平局,则获胜者是ASCII符号尽可能按顺序出现的一种。形式上:从程序中筛选出每个列出的符号的第一次出现。这将导致列出符号的排列。排列次数少的程序将胜出。 更新:我很高兴看到一些常规/主流语言的解决方案,例如C(++),Java,Scala,Haskell等。

4
旋转ASCII艺术图
在所有ASCII字符中,很容易看出其中某些字符是同一基本字符旋转的组。例如,V > ^ <。这样就可以构造ASCII艺术作品,该艺术作品可以旋转90度的倍数,并且仍然保留ASCII艺术作品。 挑战 您的目标是制作一个程序,该程序接受ASCII艺术作品和度数以将其从STDIN旋转,然后将旋转的ASCII艺术作品打印到STDOUT。 在输入的第一行上,您的程序将收到一个数字N。该数字表示ASCII图的宽度和高度。 然后,您将再收到N行,每行分别正好包含N个字符(此行不计入换行符)。艺术作品的尺寸将始终为正方形,尽管它可能具有空格形式的填充物以使其成为正方形。 然后,您将在最后一行收到另一个数字:90、180或270。这表示应按顺时针方向旋转图片多少度。 注意:输入的图像将仅包含可以旋转正确量的字符。如果输入与这些要求不完全匹配,则不需要特定的行为。 作为输出,您的程序应精确打印N行,每行N个字符,并在每行之后添加换行符。应当旋转图像,以使原稿中的每个字符都被旋转后的版本替换,并已移至图像中的正确位置。 示例(不是很漂亮的ASCII艺术) 输入值 5 <- || | |V +->+ |O <--+ 90 输出量 ^ +-^ | | | | V +-+-- O <- (因为字符不是正方形,所以旋转90和270看起来效果不佳) 输入值 6 + /\ + | \ \| ( \/| \ ) I \ / :) …

3
写一个三阶奎因
这项挑战是“ 高尔夫互惠 ” 的延伸。 使用您选择的三种语言,创建一个三阶Ouroboros程序。 也就是说,用语言A编写程序pA,该程序以语言B输出程序pB。程序pB应该以语言C输出程序pC,该程序又以语言A输出原始程序pA。 A,B和C中的两种语言都不能相同,也不能互为子集或超集。pA,pB或pC可能都不相同。 例如,Haskell程序输出一个Perl程序,该Perl程序输出一个Java程序,该Java程序输出原始的Haskell程序将是有效的。 另一方面,输出C#3程序和C#2程序的C#4程序无效。如果说Perl程序和Ruby程序相同,那么即使是Perl-> Ruby-> Bash组合也将无效。 这是代码高尔夫,所以最短的程序pA获胜。
17 code-golf  quine 

17
显示对一副纸牌进行8次完美洗牌的结果
说明 完美的混洗是将一副纸牌准确地分成两半,并将每堆纸牌交替插入。经过完美洗牌后,必须保留原始底卡和原始顶卡。 经过8次完美的洗牌后,标准的52张卡片组将恢复其原始顺序。 挑战 编写一个程序,显示经过8个连续完美洗牌后的纸牌状态。您可以使用任何人类可读的卡座表示法,只要它能按顺序显示卡座中每张卡的编号和花色即可。它必须显示所有九种状态的所有卡的表示形式。 这就是代码高尔夫,因此最短的解决方案将获胜。 示例输出 这是此示例实现在Javascript中产生的示例输出 AS,AC,AD,AH,2S,2C,2D,2H,3S,3C,3D,3H,4S,4C,4D,4H,5S,5C,5D,5H,6S,6C,6D,6H,7S,7C,7D,7H,8S,8C,8D,8H,9S,9C,9D,9H,10S,10C,10D,10H,JS,JC,JD,JH,QS,QC,QD,QH,KS,KC,KD,KH AS,7D,AC,7H,AD,8S,AH,8C,2S,8D,2C,8H,2D,9S,2H,9C,3S,9D,3C,9H,3D,10S,3H,10C,4S,10D,4C,10H,4D,JS,4H,JC,5S,JD,5C,JH,5D,QS,5H,QC,6S,QD,6C,QH,6D,KS,6H,KC,7S,KD,7C,KH AS,4C,7D,10H,AC,4D,7H,JS,AD,4H,8S,JC,AH,5S,8C,JD,2S,5C,8D,JH,2C,5D,8H,QS,2D,5H,9S,QC,2H,6S,9C,QD,3S,6C,9D,QH,3C,6D,9H,KS,3D,6H,10S,KC,3H,7S,10C,KD,4S,7C,10D,KH AS,9S,4C,QC,7D,2H,10H,6S,AC,9C,4D,QD,7H,3S,JS,6C,AD,9D,4H,QH,8S,3C,JC,6D,AH,9H,5S,KS,8C,3D,JD,6H,2S,10S,5C,KC,8D,3H,JH,7S,2C,10C,5D,KD,8H,4S,QS,7C,2D,10D,5H,KH AS,5S,9S,KS,4C,8C,QC,3D,7D,JD,2H,6H,10H,2S,6S,10S,AC,5C,9C,KC,4D,8D,QD,3H,7H,JH,3S,7S,JS,2C,6C,10C,AD,5D,9D,KD,4H,8H,QH,4S,8S,QS,3C,7C,JC,2D,6D,10D,AH,5H,9H,KH AS,3S,5S,7S,9S,JS,KS,2C,4C,6C,8C,10C,QC,AD,3D,5D,7D,9D,JD,KD,2H,4H,6H,8H,10H,QH,2S,4S,6S,8S,10S,QS,AC,3C,5C,7C,9C,JC,KC,2D,4D,6D,8D,10D,QD,AH,3H,5H,7H,9H,JH,KH AS,2S,3S,4S,5S,6S,7S,8S,9S,10S,JS,QS,KS,AC,2C,3C,4C,5C,6C,7C,8C,9C,10C,JC,QC,KC,AD,2D,3D,4D,5D,6D,7D,8D,9D,10D,JD,QD,KD,AH,2H,3H,4H,5H,6H,7H,8H,9H,10H,JH,QH,KH AS,AD,2S,2D,3S,3D,4S,4D,5S,5D,6S,6D,7S,7D,8S,8D,9S,9D,10S,10D,JS,JD,QS,QD,KS,KD,AC,AH,2C,2H,3C,3H,4C,4H,5C,5H,6C,6H,7C,7H,8C,8H,9C,9H,10C,10H,JC,JH,QC,QH,KC,KH AS,AC,AD,AH,2S,2C,2D,2H,3S,3C,3D,3H,4S,4C,4D,4H,5S,5C,5D,5H,6S,6C,6D,6H,7S,7C,7D,7H,8S,8C,8D,8H,9S,9C,9D,9H,10S,10C,10D,10H,JS,JC,JD,JH,QS,QC,QD,QH,KS,KC,KD,KH

1
正则表达式验证正则表达式[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 2年前关闭。 构建一个将接受正则表达式字符串作为输入的正则表达式,并检查其是否有效。基本上,您的正则表达式应该能够验证自己。(任何无效的正则表达式都不应进行验证,因此您不能使用.*。;)) 您的风味必须得到众所周知的实现(Perl,sed,grep,gawk等)的完全支持,并且必须完全支持那些实现所支持的功能。[不用担心律师说话;我只是想消除所有可能导致智能***的漏洞。] 我会对此进行编码,但是我担心它会给那些知道和使用非功能丰富的风味的人带来优势。还是我的担心没有根据?
17 code-challenge  code-golf  code-golf  game  sudoku  code-challenge  math  ai-player  code-challenge  sorting  rosetta-stone  code-challenge  code-challenge  programming-puzzle  code-golf  number  code-golf  maze  code-golf  math  regular-expression  code-golf  sequence  code-golf  graph-theory  code-golf  string  word-puzzle  natural-language  brainfuck  metagolf  optimized-output  fastest-algorithm  code-golf  game-of-life  cellular-automata  code-golf  puzzle-solver  grid  code-golf  combinatorics  binary-tree  popularity-contest  code-challenge  code-golf  ascii-art  kolmogorov-complexity  brainfuck  metagolf  code-golf  c  date  code-golf  word-puzzle  crossword  word-search  code-golf  code-golf  quine  code-golf  string  random 

30
查找非素数
如果您选择接受它,那么您面临的挑战是对一个数字满足以下条件的函数进行编码,该函数将返回true或false(或者是yes和no的某种类似有意义的表示形式): 整数本身是质数或 它的任何一个相邻整数都是素数 例如: 的输入7将返回True。 输入8也会返回True。 输入15会返回False。(14、15或16都不是素数) 输入必须能够正确返回2 ^ 0到2 ^ 20之间的数字,因此无需担心符号问题或整数溢出。

4
单词搜索求解器
给定单词列表和字母网格,找到网格中的所有单词并删除不属于任何单词的任何字母。单词可以是向前,向后,向上,向下或对角线。您可以假设列表中的任何单词都不会出现在网格中的多个位置。 输入将始终是:单词列表,每行1个,后跟空白行,然后是字母网格。 例子 输入值 ADA ALGOL ASSEMBLY BASIC COBOL DELPHI FORTRAN JAVA LABVIEW LOGO PASCAL PERL PHP PYTHON SMALLTALK VISUALC LLJKCABLFCI OROLOBOCOIM GELACSAPRSX LPSTAHWVTAV ANRLXLXQRBI IHPLEDOXAHS KJYAPHPYNOU FABMADANZJA EVISNOHTYPL AAYLBMESSAC WEIVBALOGOM 输出量 LL K FC OR LOBOCOI GELACSAPRS LP T TAV A L RBI IHPLED A S J APHP N …

9
选择自己的冒险
选择自己的冒险书籍是一种互动文学形式,读者必须做出影响故事结果的决定。在故事的某些点上,读者可以选择多个选项,每个选项都会将读者发送到书中的不同页面。 例如,在幻想环境中,人们可能必须在第14页上决定是通过“跳至”第22页冒险进入一个神秘的洞穴,还是通过跳至第8页来探索附近的森林。这些“跳转”可以表示为成对的页码,例如: 14 22 14 8 在大多数情况下,故事的结局很多,但好的结局很少。目的是引导故事走向一个好的结局。 任务: 给定给定书的“跳跃”列表,您的任务是确定一条导致特定结局的路线。由于这相当容易,所以真正的挑战是用尽可能少的字符来完成。 这就是代码高尔夫。 样本输入(其中1是开始,而100是目标): 1 10 10 5 10 13 5 12 5 19 13 15 12 20 15 100 样本输出: 1 10 13 15 100 输入样例: 15 2 1 4 2 12 1 9 3 1 1 15 9 3 12 64 …

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.