Questions tagged «code-golf»

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

30
32位整数的反向位顺序
编写最短的代码以反转32位整数的位顺序。 规则: 如果您的语言不支持数值(例如Windows Batch),则假定输入为有效的整数或等效字符串。 如果您的语言不支持数字值(例如Windows Batch),则输出必须是有效的整数或等效的字符串。 仅标准库。 它可能是一个功能或一个完整的程序。 输入可以是来自stdin或作为函数参数。 输出必须是stdout或作为返回值。 如果您的语言具有内置的或标准的库函数,可以一步完成此任务(例如,rbit在ARM汇编中),则无法使用。 例子: 键: 小数 二元 (相反) 反向二进制 十进制输出 例子: -90 (用于演示的8位示例) 10100110b (相反) 01100101b 101 486 00000000000000000000000111100110b (相反) 01100111100000000000000000000000b 1736441856 -984802906 11000101010011010001100110100110b (相反) 01100101100110001011001010100011b 1704506019 注意:遗漏是免费游戏。如果我没有说出来,并且它不是标准漏洞之一,那么它是完全允许的。

25
画一个规则的多边形
该代码高尔夫球的目标是在边数和半径(从中心到顶点的距离)下绘制一个规则的多边形(边长相等)。 边数和半径可以通过文件STDIN或仅是一个普通的旧变量输入。使用您语言中较短的内容。 如果实际绘制的是图像而不是ASCII图,则占字符/字节总数的-25%。

3
四肢拼图
在4个4拼图是涉及使用正好四个4S(并且没有其他号码),并定义了一组操作的从0到每一个数字的给定最大的热门休闲数学谜题。 在此版本中,仅允许以下运算符: 可以使用任何分组符号 加法(+),减法(-),乘法(*),除法(/) 阶乘(!),伽马函数(Γ) 幂(^),平方根(√) 串联(例如44为2 4) 小数点(例如4.4为2 4秒),横线(例如.4~ = 4/9) 适用标准操作顺序。 给定一个介于0和100之间(含0和100)的输入,您的程序应为该输入生成正确的解决方案。如果程序对任何输入输出无效的解决方案,则该程序无效。 例如,输入为0,您的程序可能会生成44-44。 不允许使用外部模块。_.4~Overbar运算符仅允许使用-即,4小数点后只能有一个。 这就是代码高尔夫,因此最短的解决方案将获胜。 编辑:要特别清楚,该程序必须输出一组上述操作,并将它们精确地应用于4 4s-不能多也不能少。此外,.4 = 4/10是有效术语,算作仅使用一个4。

13
那么……您的StackOverflow得分是多少?
这很简单。给定一个数字输入,返回具有给定ID的Stack Overflow用户的名称和声誉得分。您的程序可以假定始终为其提供有效且存在的用户ID。 例如:给定输入764357(这是我在StackOverflow上的用户ID),程序将返回LegoStormtroopr 3,088(大约)它可能会更改。 您可以免费获得以下网址:“ /programming//users/ ”或“ http://api.stackexchange.com/2.1/users/ ”,因此您的得分是length of your program - 31 or 39,具体取决于您使用的是哪个URL-宣布是。这样可以防止人们滥用URL缩短器。 编辑:无需调用查询Stack Overflow的定制API,仅返回名称和分数。 但是,如果您知道一个正式的API,那是完全合法的。 edit2:如果您需要输入示例:我在下面提供了我的ID,请随时在下面添加您自己的ID,用户名和分数,以帮助他人。再次注意,这是针对主要Stack Overflow网站的。 764357 returns LegoStormtroopr 3,088

20
创建一个数独解决方案CHECKER
创建Sudoku解决方案CHECKER 这里有Sudoku SOLVERS的面条,但是我希望您创建一个尽可能小巧的解决方案CHECKER(代码高尔夫球)。 一个有效的条目将能够采用9x9数组作为参数(通过引用传递,在命令行上序列化,或者您要采用它),或者接受输入文件,该文件是最后一行网格的九行九位数。请参阅下面的输入示例。 有效输入应以10为底的数字(1-9) 缺失,空,多余,非数字的位置或数字在1-9之外的位置应通过返回非零结果,打印错误或同时拒绝这两种方法而被视为无效输入。 您的程序需要测试每个数字是否在每列,每行一次和每个3x3子网格中出现一次。如果通过,则返回“ 0”,否则,返回非零结果。 避免使用外部资源(网站等)。 如果您的解决方案是独立程序,则退出状态为退出或打印时,“通过”或“失败”分别为“ 0”或非零是可以的。 让最小的答案赢! 输入示例: C数组: int input[9][9]={{1,2,3,4,5,6,7,8,9}, {4,5,6,7,8,9,1,2,3}, {7,8,9,1,2,3,4,5,6}, {2,3,1,5,6,4,8,9,7}, {5,6,4,8,9,7,2,3,1}, {8,9,7,2,3,1,5,6,4}, {3,1,2,6,4,5,9,7,8}, {6,4,5,9,7,8,3,1,2}, {9,7,8,3,1,2,6,4,5} }; 文件: 123456789 456789123 789123456 231564897 564897231 897231564 312645978 645978312 978312645 9个子网格: +---+---+---+ |123|456|789| |456|789|123| |789|123|456| +---+---+---+ |231|564|897| |564|897|231| |897|231|564| +---+---+---+ |312|645|978| |645|978|312| |978|312|645| +---+---+---+

13
将整数转换为英语单词
该代码高尔夫的目标是将整数转换为英语单词。 程序提示输入。如果此输入不是整数,请打印NaN。如果是整数,请将其转换为英语单词并打印这些单词。最小输入:0(零)。最大输入:9000(九万)。 因此,5返回five(大小写无关紧要),以及500返回five hundred或five-hundred(破折号无关紧要)。 其他一些规则: 一个one之前hundred或者thousand是可选的:one hundred是正确的,但hundred太(如果输入的是100当然的)。 and例如,单词中的单词one hundred and forty five也是可选的。 空格很重要。所以,对500,five-hundred或者five hundred是正确的,但fivehundred并非如此。 祝好运!
21 code-golf 

4
最佳速记罗马数字生成器
目标: 编写一个将数字作为输入并返回该数字的简写罗马数字作为输出的函数。 罗马数字符号: Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1,000 举一个我说“简写罗马数字”的意思的例子,让我们考虑找到一个代表1983年的罗马数字,因为那是我出生的年份。一种选择是按常规方式(10个字母)执行此操作: 1983年 = MCMLXXXIII =(1000-100 + 1000 + 50 + 30 + 3) 另一种选择是使用快捷方式(6个字符): 1983 = MXVIIM =(1000-(10 + 10)+ 1000 + 3) 你知道这意味着什么吗?!?!! ?? 如果我是罗马人,我每次写生日都可以保存4个字符!呜呜呜! 但是,在兴奋起来之前,我有一个问题要写,所以我可能应该定义速记罗马数字规则,以便我们都在同一页面上: 简写罗马数字规则: 始终从左到右考虑符号,直到没有其他要考虑的字符为止。 如果当前符号右侧没有高值符号: 将当前符号的值添加到该罗马数字的运行总计中。 …

11
解释您的语言,但不能解释您自己?
说“解释X”有很多挑战,其中X是一种简单的语言。我认为这太无聊了。为了给互联网上所有拖延的人做一些有趣的事情,您可以尝试做以下挑战: 挑战 选择一种语言$LANG。$LANG可以是任何图灵完整的编程语言或图灵完整的子集。请注意,如果您在$LANG解释中忽略了语言的功能,则也不要在自己的程序中使用它,因为您的提交也必须用编写$LANG。 写一个编译器/解释器$LANG编写的$LANG。您可以使用eval可用于编写此编译器的所有语言功能(包括和朋友)。为了使任务更具挑战性,存在一个限制:您的程序应该能够解释/编译$LANG除解释器/编译器本身之外的所有有效程序。如果碰巧要解释/编译的程序是您的解释器或编译器本身(无论文件名如何),则您的程序应该执行与解释器或编译器的功能完全无关的操作(例如,打标或打印Hello, world!)。 为了使此任务更加复杂,您的程序在编译或解释时不得读取其自身的源代码。 技术指标 此任务是代码高尔夫。字符最少的提交是正确的。如果出现平局,则首先提交的解决方案将获胜。 您的程序/脚本应从文件读取要解释的程序。您可以硬编码其路径和名称。读取文件后,您可以将文件编译为另一个文件(该文件必须在您的系统上是可执行文件)或直接运行它。如果$LANG缺少文件读取功能,则可以选择另一种方式来读取适合的代码$LANG。您可能没有选择$LANG作为另一种语言的子集,但已删除了文件读取功能。 通常使用代码高尔夫球规则。那就是:如果解决方案使用它变得微不足道(例如定义一个完全实现该解决方案的单字符程序),那么为解决该挑战而编写的个人宠物语言将被禁止。鼓励滥用规则。

17
剑桥换位
我敢肯定,你们当中的大多数人(即使不是全部)在某个时候或另一个时候也遇到了这个问题: 对Cmabrigde Uinervtisy的一名总督来说,它并没有在一大堆的杂物里留下任何痕迹,所有的同业者都是第一个人,而lsat的杂物则是在旧的地方。该rset可以是toatl mses,并且您可以将其设置为wathit porbelm。蒂斯是布斯科,不是伊斯兰教徒,而是像世俗的人。 创建一个输入任意数量的文本的程序。为了进行测试,请使用下面提供的上述文本的完整版本。 然后,程序必须随机转置每个单词的字母(长度不超过4个或更多),每个单词的第一个和最后一个字母除外。 所有其他格式必须保持相同(大写和标点等)。 测试文字: 据剑桥大学的研究人员说,单词中字母的顺序无关紧要,唯一重要的是第一个和最后一个字母在正确的位置。其余的可能是一团糟,您仍然可以毫无问题地阅读它。这是因为人类的思想不是只阅读每个字母,而是阅读整个单词。 像往常一样,这是一个代码高尔夫球。最短的代码胜出。

4
确定多边形是否凸出
编写程序以确定输入多边形是否为凸面。用包含N个(顶点数)的一条线指定多边形,然后使用包含每个顶点的x和y坐标的N条线指定多边形。顶点将从任意顶点开始顺时针列出。 例子1 输入 4 0 0 0 1 1 1 1 0 输出 convex 例子2 输入 4 0 0 2 1 1 0 2 -1 输出 concave 例子3 输入 8 0 0 0 1 0 2 1 2 2 2 2 1 2 0 1 0 输出 convex x和y是整数N <1000,| …

30
世界以ed结尾
直接取自2013年ACM冬季编程竞赛。您是一个喜欢从字面上看事物的人。因此,对您而言,《世界的尽头》已编辑。“ The”和“ World”的最后一个字母串联在一起。 编写一个包含句子的程序,并以尽可能小的空间(最小字节)输出该句子中每个单词的最后一个字母。单词之间用字母以外的字母分隔(ASCII表上的65-90、97-122)。这意味着下划线,波浪号,坟墓,花括号等是分隔符。每个单词之间可以有多个分隔符。 asdf jkl;__zxcv~< vbnm,.qwer| |uiop-> flvmrp pigs, eat dogs; eat Bob: eat pigs-> ststbts looc si siht ,gnitirw esreveR-> citwR 99_bottles_of_beer_on_the_wall->sfrnel
21 code-golf  string 

5
“抱歉,年轻人,但是乌龟一直都在降下来!”
执行Lindenmayer系统 甲Lindenmayer系统(或L-系统)是有关图厄和邮政系统和在用于植物的建模和分形产生。 L系统描述为 字符串重写,其中将来自符号字母的符号映射到符号的替换序列。这些映射的集合构成了L系统本身。 由Prusinkiewicz设计的图形输出方法解释了将映射应用于对象之后的结果序列。 初始序列指定次数的迭代,如Turtle-Drawing命令:向前,向后,向左,向右等。这可能需要额外的代码来控制图形的比例,因为不同的迭代次数可能会产生尺寸完全不同的图像。 您的任务是以最少的字符数执行L系统。您的程序必须能够通过提供适当的输入(文件,命令行,但请在源外部)来渲染Wikipedia页面上的Dragon Curve和Branching Stem。 这是代码高尔夫。 编辑:这是我在城镇周围张贴的一些示例。答案SO /旋转到北{ 那里我第一次发现了L系统 },回答SO /如何对程序-A-分,回答SO /递归功能于后记,comp.lang.postscript讨论/ recital,后记l系统集合,codegolf.SE / draw -a- sierpinski - triangle {我和thomasW之间竞争的起源}。


15
用您喜欢的语言生成一个随机程序[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 我们都听说过使用随机生成的输入来测试编译器。您的任务是编写一种程序,以您喜欢的语言生成一个有效的程序(不包括未定义的行为)。生成的程序语言不必与生成的程序语言相同。 您的程序将收到一个整数作为参数,您可以将其用作随机数生成器的种子。生成的程序在结构上应该不同(给定不同的种子),而不仅仅是不同的变量名或常量。 例子: $ ./generate 1 int main() { return 0; } $ ./generate 2 #include <math.h> int main() { return (int) pow(4, 3); } 请在回答中包括几个输出。 最短的解决方案获胜。我会根据投票数提供少量奖金,因此请投票出最具创意的解决方案。

6
科赫雪花-Codegolf
的Koch雪花(也被称为科赫星和科克岛)是数学曲线,并已经描述了最早的分形曲线中的一个。它基于Koch曲线,该曲线出现在1904年的一篇论文中,该论文的标题为“在无切线的连续曲线上,可以从基本几何构造而成”(法文原版标题:“ Sur une courbecontinu sans tangente,旁观的建筑学意义”)瑞典数学家Helge von Koch。 以下是各种迭代的一些ascii表示形式: n=1 __ \/ n=2 __/\__ \ / /_ _\ \/ n=3 __/\__ \ / __/\__/ \__/\__ \ / /_ _\ \ / __/ \__ \ / /_ __ __ _\ \/ \ / \/ /_ _\ \/ 由于ASCII表示的分辨率显然存在限制,因此对于每次迭代,我们必须将雪花的大小放大3倍,以显示更多细节。 编写最短的代码以相同的样式输出雪花,其中n = 4 …

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.