Questions tagged «code-golf»

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

30
你能打败我吗?(强盗专区)
强盗区 警察部门可以在这里找到。 挑战 您的任务是以相同的语言和相同的版本(例如,Python 3.5 ≠ Python 3.4,所以这是不允许的)使警察提交的文件超越。当以字节为单位的长度比原始提交短时,提交将超出配音。您只需要打高尔夫球至少1个字节即可破解提交。例如,如果任务是执行2× n,则提交如下: print(2*input()) 您可以通过执行以下操作使警察胜过警察: print 2*input() 甚至这样(因为允许使用lambda): lambda x:2*x 使用以下标头将此发布: ##{language name}, <s>{prev byte count}</s> {byte count}, {cop's submission + link} 例如: Python 2中,16 12个字节,阿德南(+链接提交) lambda x:2*x 计算A005843,(偏移量= 0)。 在这种情况下,您已经破解了提交。 计分 提交最多的人是获胜者。 规则 破解提交必须使用与警察提交相同的语言。 相同的输入应该导致相同的输出(因此a(2)= 4应该保持4)。 对于Python之类的语言,您可以导入该语言中标准包含的库。(因此,没有numpy / sympy等。) 输入和输出均为十进制(以10为基数)。 注意 挑战完成了。强盗部分的获胜者是feersum。CnR的最终分数如下所示: feersum:16条裂缝 …

19
我的馅饼被平分了吗?
编写一个包含正整数的非空列表的程序或函数。您可能会假设它是以合理方便的格式输入的,例如"1 2 3 4"或[1, 2, 3, 4]。 输入列表中的数字表示完整饼图的切片,其中每个切片的大小与其对应的数字成比例,并且所有切片均按给定的顺序排列在图表周围。 例如,饼图为1 2 3 4: 您的代码必须回答的问题是:饼图是否一分为二?也就是说,从圆的一侧到另一侧是否存在一条完美的直线,将其对称地一分为二? 你需要输出truthy值,如果有至少一个平分线和输出falsy如果有没有价值。 在该1 2 3 4示例中,之间有一个等分线4 1,2 3因此输出将是真实的。 但是对于输入而言1 2 3 4 5,没有平分线,因此输出将是虚假的: 其他例子 以其他方式排列数字可能会消除等分线。 例如2 1 3 4→虚假: 如果输入列表中只有一个数字,则饼图不会一分为二。 例如10→虚假: 可能有多个平分线。只要大于零,输出就是真实的。 例如6 6 12 12 12 11 1 12→真实:(这里有3个等分线) 即使平分在视觉上不明显,也可能存在。 例如1000000 1000001→虚假: 例如1000000 1000001 1→真实: (感谢nces.ed.gov生成饼图。) 测试用例 …
43 code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

10
字形矩阵
作为其压缩算法的一部分,JPEG标准沿着交替方向的对角线将矩阵展开为向量: 您的任务是获取矩阵(不一定是正方形)并以展开形式返回。举个例子: [1 2 3 4 5 6 7 8 9 1 2 3] 应该屈服 [1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3] 规则 您可以假设矩阵元素是小于的正整数10。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输入矩阵可以任何方便,明确,嵌套的列表或字符串格式给出,也可以与两个矩阵维一起作为平面列表给出。(或者,当然,如果您的语言包含矩阵类型,则作为矩阵类型。) 输出向量可以是任何方便,明确,平坦的列表或字符串格式。 适用标准代码高尔夫球规则。 测试用例 [[1]] => [1] [[1 2] [3 1]] => [1 2 3 1] [[1 2 3 1]] …

9
与Rubik's一起骑车
我儿子闲着扭动魔方时,发现魔方一直回到已解决状态。我很确定他一开始就认为这是某种巫术魔术,但我解释说,如果继续重复相同的动作顺序,它将始终返回其原始状态。最终。 当然,作为一个孩子,他不得不自己尝试一下,并选择了一个他认为很棘手的“随机”序列。在大约十次重复之后,他迷失了方向,问我要重复几次。我不知道他使用的顺序,我告诉他我不知道,但是我们可以编写一个程序来找出答案。 这就是您要进入的地方。当然,我可以打些东西,但他想自己打。但是,他不是一个很快的打字员,所以我需要尽可能短的程序。 目的 给定一系列旋转,输出必须执行的次数最少,才能使多维数据集返回其原始状态。这是代码高尔夫,因此最少字节获胜。您可以编写程序或函数,所有其他通常的默认设置都适用。 输入项 输入是一系列动作,采取字符串,列表或其他适合您的语言的格式。如果采用字符串形式,请在移动之间随意使用分隔符(或不使用分隔符)。 必须考虑六个“基本”动作及其相反的动作: R - Turn the right face clockwise L - Turn the left face clockwise U - Turn the up (top) face clockwise D - Turn the down (bottom) face clockwise F - Turn the front face clockwise B - Turn the back …

18
Universal Spooky Meme Translator
介绍 事实证明,外星人像我们一样爱模因。到目前为止,我们遇到的每一个外星人种族都有自己的版本2spooky4me(请参见以下问题)和等效版本,但有所不同。CUTE1f星球上的居民无法承受很多鬼怪,因此他们更喜欢1spooky2me鬼怪,而skeletor7的迷们喜欢它们一些鬼怪,因此他们倾向于使用9spooky11me。 挑战 翻译模因是一项艰苦的工作,因此您要编写一个通用的模因翻译器,以帮助这些人正确访问模因网。您的程序将接受一个模因和一个变换,以应用于该模因中的数字序列,以使其适合其他星球的居民。 输入项 您的程序将收到两个字符串输入: 输入模因(例如2spooky4me)。火柴[a-zA-Z0-9]+。 要应用的转换(例如+1,从2spooky4me到3spooky5me)。匹配[+\-*/^]\d+(你必须接受+,-,*,/,并^为运营商,无论在你的语言本地表示的)。 输出量 您的程序必须返回字符串输出(打印到标准输出或等效输出),并将给定的转换应用于输入模因中的数字序列。在一系列怪异的事件中,结果还表明,到目前为止遇到的所有种族都喜欢积分模因而不是分数模因,因此这些转换应执行整数算术(例如1spooky1me /2应该产生0spooky0me)。 例子 标准算术运算适用: Input: 2spooky4me +1 Output: 3spooky5me Input: 2spooky4me -1 Output: 1spooky3me Input: 2spooky4me *15 Output: 30spooky60me Input: 10spooky900me /5 Output: 2spooky180me 数字序列是不可或缺的;整数截断应在以下情况下发生: Input: idontunderstandmemes3 /2 Output: idontunderstandmemes1 您的输入内容可能没有任何数字序列: Input: notreallyafunnymeme *100 Output: notreallyafunnymeme 即使您选择的语言不是本机运算,您也必须支持幂运算: Input: 2spooky4me ^3 Output: …

30
构造身份矩阵
挑战非常简单。给定整数输入n,输出n x n单位矩阵。单位矩阵是1从左上角到右下角的s 矩阵。您将编写一个程序或函数来返回或输出您构造的身份矩阵。您的输出可能是2D数组,或者是由空格/制表符和换行符分隔的数字。 输入和输出示例 1: [[1]] 2: [[1, 0], [0, 1]] 3: [[1, 0, 0], [0, 1, 0], [0, 0, 1]] 4: [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] 5: [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], …

9
沙漏挑战
沙漏 这个沙漏有60个“时间沙”,它完全充满了每个小室。时钟宽19个字符,高13个字符。每个腔室有5排沙子,中间有一行可容纳1块沙子。最上面一行可容纳17个沙子,下一行可容纳15个,依此类推(请参阅下文)。沙子以每秒一沙的速度掉入底部腔室。 START 3 SECONDS LATER 38 SECONDS LATER ███████████████████ ███████████████████ ███████████████████ █.................█ 17 █.............. █ 14 █ █ 0 ██...............██ 15 ██...............██ 15 ██ ██ 0 ███.............███ 13 ███.............███ 13 ███....... ███ 7 █████.........█████ 09 █████.........█████ 09 █████.........█████ 09 ███████.....███████ 05 ███████.....███████ 05 ███████.....███████ 05 █████████.█████████ 01 █████████.█████████ 01 …

3
自行运行生命游戏的代码
编写两个矩形代码块,每个代码块宽w个字符,高h个字符,这些代码块在排列成网格时实现Conway的生命游戏。(w和h可以是任何正整数) 例如,两个代码块可能是:(w = 3,h = 2,不是实际代码) XX| --+ 和 | --+ 将第一个块视为“生命游戏”中的“活动”单元,将第二个块视为“死亡”单元。 现在,将这两个块的多个副本安排到一个更大的程序中,该程序代表一个生命游戏网格,例如以下滑翔机: | | | | | --+--+--+--+--+ | |XX| | | --+--+--+--+--+ | | |XX| | --+--+--+--+--+ |XX|XX|XX| | --+--+--+--+--+ | | | | | --+--+--+--+--+ | | | | | --+--+--+--+--+ 现在是关键点:运行此代码时,输​​出必须是“生命游戏”网格,此后就是该网格,并为单元格使用相同的活动代码块和无效代码块。 因此,上面程序的输出将是下一代滑翔机,它也可以作为可运行程序: | | | | …

30
真正的苗条遮荫
以尽可能少的字节回显以下内容: I'm Slim Shady. Yes, I'm the real Shady. All you other Slim Shadys are just imitating. So, won't the real Slim Shady please stand up? Please stand up. Please stand up. 以下五个单词必须在您的代码中完全出现一次: I'm Slim Shady real stand

30
扩展ASCII Sun
编写一个程序(通过STDIN /命令行)使用一个非负整数N。 当N为0时,您的程序应打印O(大写字母Oh,而不是零)。 当N为1时,您的程序应打印 \|/ -O- /|\ 当N为2时,您的程序应打印 \ | / \|/ --O-- /|\ / | \ 当N为3时,您的程序应打印 \ | / \ | / \|/ ---O--- /|\ / | \ / | \ 对于较大的N,此模式将以完全相同的方式继续。每个“太阳”的八个射线应的适当的N个-,|,/,或\字符。 细节 您可以编写一个带整数的函数来代替程序。该函数应正常打印sun设计或将其作为字符串返回。 你必须 根本没有尾随空格,或者 仅具有足够的尾随空格,因此该模式是一个完美的(2N + 1)*(2N + 1)矩形。 任何N个或所有N个的输出都可以选择包含尾随换行符。 计分 以字节为单位的最短代码获胜。

30
ETAOIN SHRDLU高尔夫
挑战的简短描述: 基于ETAOIN SHRDLU,您的挑战是要使用任何语言编写最短的程序或函数,根据输入频率来输出26个英文字母。 真正长久,干燥且彻底的规格: 您的程序/函数将接收一串文本作为输入,其中将包含一个或多个大写和/或小写字母,还可能包含标点符号,数字,符号和其他非字母字符。 程序/功能必须仅输出英文字母的26个大写字母,包括那些未出现在输入中的字母,根据它们在输入中出现的次数从高到低排列。 编辑:频率是不区分大小写的,但是输出必须为大写。 如果两个或多个字母具有相同的频率,则它们可以以任何顺序排列。 不允许其他输出,例如空格。 编辑7/1/2014:根据反馈,我正在修改此规则。唯一允许的其他输出是可选的前导和/或尾随空格,例如尾随换行符。不允许其他输出。 对于不包含任何字母的输入,允许进行未定义的行为。 从今天起7天将选出优胜者,让那些手指打字! 输入示例: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent vitae erat velit. Mauris gravida euismod libero ut tincidunt. Phasellus elit dui, consectetur et egestas in, aliquam vitae diam. Donec eget varius ante. Vestibulum cursus diam aliquet, egestas …
43 code-golf  string 

21
一个环统治他们全部。一个包含所有字符串的字符串
目标:输出一个字符串,其中包含每个严格低于1000的正整数。 显而易见的答案是将它们中的每一个串联起来,这将创建一个2890个字符的字符串(感谢manatwork),为避免这种简单的答案,字符串的长度必须小于1500个字符。这是输出1200个字符的String的简单Java代码。 import org.junit.Test; import java.util.ArrayList; import java.util.List; import java.util.TreeSet; import static org.junit.Assert.assertTrue; /** * Created with IntelliJ IDEA. * User: fab * Date: 05/11/13 * Time: 09:53 * To change this template use File | Settings | File Templates. */ public class AStringToContainThemAll { @Test public void testsubStrings() throws …

28
快速,廉价和良好-选择任意两个
作为程序员,我们都知道这样一句话:“您可以快速而好用,但它不会便宜,您可以廉价而好,但它不会很快,或者您可以快速而又便宜。 ,但这不会很好。” 为了应对这一挑战,您正在为您的自定义编程服务实现一种虚拟配置工具。您应该呈现一组三个复选框,标题为“ SELECT ANY TWO”(选择两个): SELECT ANY TWO ☐ FAST ☐ CHEAP ☐ GOOD 选择两项后,必须禁用第三项。取消选择两个选定项目之一后,必须再次启用所有选项。换句话说,如果选择了零个或一个项目,则仍将全部启用,但是如果选择了两个,则必须禁用第三个。 不允许特殊控制。复选框应该是您选择的语言中的标准复选框。例如,如果您的语言只有一个,则不要使用“ CheckBoxList”控件。我想象大多数条目将是HTML / jQuery,但这不是规则。这是代码高尔夫,正在寻找最短的入场券。 优胜者 我将其分为几类。有一些明显的赢家: jQuery: nderscore,在排除文本“资源”时,韧度低于100b的先生。值得一提的是,Matt介绍了许多受启发的jQuery概念。 Dyalog APL: marinus,又名Unicode先生您如何键入所有这些内容?我明白了您为什么要编写简短的程序。 PHP: SuperScript我认为这是最短的条目,实际上是按照最严格的规则解释,实际上是禁用而不是取消选择第三个选项。

30
定义一个函数f,使所有非零整数n的f(f(n))= -n
我经常访问一个编程博客,激发了这一挑战。请在此处查看原始帖子:编程难题 挑战 定义一个函数f:Q->Q,以便f(f(n)) = -n对所有非零整数n,其中,Q是有理数的集合。 细节 请使用您喜欢的任何语言定义一个函数或程序f,该函数或程序接受一个数字作为参数n并返回或输出一个数字f(n)。 可以通过最适合您的语言的机制来提供输入:函数自变量,从STDIN读取,命令行自变量,堆栈位置,语音输入,帮派标志等。 输出应该是功能/程序的返回值或打印到STDOUT。 我想将答案限制为不利用程序状态或从函数外部可见的全局内存/数据的函数f。例如,将计数器保留在该计数之外将对调用f次数f进行计数,并且仅基于此计数进行否定对任何人来说都不是挑战或有趣的事情。做出的决定f应仅依赖f词法范围内的数据。 但是,此限制可能不适用于某些面向堆栈的语言或其他无法区分这些类型的数据或范围的语言。请运用您最好的判断力来迎接挑战的精神。 计分 通用代码高尔夫规则适用-您的得分是源代码中的字节数。 最小答案要求的域和共域是f有理数的子集Q。如果将的域和共域限制f为整数Z,则分数是源代码中字节数的90%的上限。 抢七 如果出现平局,将按以下顺序使用: 源代码中可打印的非空白符号数量最少 最早提交答案的日期和时间 编辑 您不需要支持任意大小的数字。请使用您选择的语言(通常分别为整数和浮点)解释集合Z和Q数据类型。 如果您的解决方案完全依赖于数据类型的基础结构或位模式,请描述其局限性以及如何使用它。

30
播放声音,任何声音[关闭]
您的程序必须使计算机发出声音,任何声音。 最短的代码获胜,不得早于第一个有效答案后的10天之内。如果有平局,则较早提交的一方获胜。 该程序应在合理的,不太常见的个人计算机上运行。 根据很多设置,打开弹出窗口,消息框等(例如在网页上)等不计在内,因为它们可能会或可能不会发出声音。 仅在控制台上输入错误的命令或无效字符并接收到警告蜂鸣声就不算在内,就像编译器/解释器/ OS在错误或崩溃时发出蜂鸣声也不算在内。您的代码必须是有效的程序。
43 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.