Questions tagged «code-golf»

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

2
减少数学陈述
挑战 您是名为Coyote Beta的出色服务的所有者,该服务神奇地回答了用户通过互联网发送给它的数学问题。 但事实证明,带宽很昂贵。您有两种选择,要么创建“ 土狼Beta Pro”,要么找到解决该问题的方法。就在最近,有人在询问(x + 2)。客户端无法发送x+2,用户将看不到差异吗? 任务 您的任务是“最小化”数学表达式。给定一个输入表达式,您必须除去空格和括号,直到它给出相同输入的最小表示。关联运算的括号不需要保留。 这里给出的唯一运营商+,-,*,/,和^(幂),与标准的数学关联性和优先级。输入中给出的唯一空白将是实际的空格字符。 样本输入/输出 Input | Output ------------|-------------- (2+x) + 3 | 2+x+3 ((4+5))*x | (4+5)*x z^(x+42) | z^(x+42) x - ((y)+2) | x-(y+2) (z - y) - x | z-y-x x^(y^2) | x^y^2 x^2 / z | x^2/z - (x + …

4
打印代码的负号
(这是“ 打印否定代码”的一种变体,我很喜欢它!感谢MartinBüttner♦ -几乎所有文本都是他的。) 让我们考虑这些符号为以下可打印的ASCII字符(请注意其中包含空格): !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 和字母数字是这些: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 考虑边长为N的正方形可打印ASCII字符,如下所示: ONE, {two} &3,+= !four f|ve. 我们还要求每一行和每一列至少包含一个符号和一个字母数字。(以上示例满足了此要求。) 我们将此类正方形的符号负数定义为相同大小的正方形,其中每个符号均被字母数字代替,反之亦然。例如,以下将是上述示例的有效符号否定符号: [&]OK a...b 1/100 i@#$% (R) z 特定字符的选择无关紧要,只要它们在上述类别中即可。 挑战 您的任务是编写一个边长为N> 1的方形源代码程序,该程序会将其源代码的符号负输出到STDOUT。必须打印尾随空格。您可能会或可能不会打印单个尾随换行符。 普通的规则也适用,因此您不得直接或间接阅读自己的源代码。同样,您不能假定REPL环境会自动打印每个输入表达式的值。 获胜者是边长最小的程序。如果出现平局,则以源代码中符号最少的提交为准。如果仍然有平局,则最早的答案会获胜。

3
我生日的主题:如火如荼
我需要点蜡烛。实际上,我需要点燃任意数量的蜡烛。但是只有好的。 目的给定一个文本块(包含已点燃,有效和无效的蜡烛)和一个数字N作为输入,编写一个程序或函数,使其点亮的数量等于N,减去已点燃的蜡烛的数量。如果N大于有效蜡烛数,则程序应打印缺少的有效蜡烛数。如果没有蜡烛,输出应为:(。 这是一些有效的蜡烛: . | . . | | . \ | | | / (以结束的.,仅包含|或平衡的,不一定与\和相邻/,可以是任意长度。) 这是一些无效的蜡烛: . . . . \ | | | | | | \ . | ! (不平衡\,没有烛台,断开连接|,没有字符,没有被种植在地面上。) 点燃的蜡烛将用.以下任意字符(您选择的)替换有效蜡烛上的: @ ^ & " ~ 您必须至少使用一个,并且您-10%的程序中使用的每个字符都会获得奖励,以使每个字符都可以出现在点燃的蜡烛上。如果您使用🔥表情符号,则会获得一个-15字节奖励,如果使用了,它将在百分比奖励之前应用。字节数已减少! 这是一个代码高尔夫球,因此以字节为单位的最短代码获胜。 IO范例 input: 8, . . | . ! . …

4
疯狂的图书管理员的素数算术序列
好吧,图书馆员发现您使用排序算法欺骗了您的工作,所以现在您将受到惩罚。您被命令创建一些代码,以便图书馆员可以打动他们单恋的对象,即数学老师。所以,这就是什么“其他职责分配”的意思... 每个人都熟悉以10为底的自然数序列N: 0、1、2、3、4、5、6 ... 从这一点,我们可以生成素数序列,我们称之为P,使得每一个元素P在刚好两个除数ñ,即1与自身。该顺序是: 2、3、5、7、11、13 ... 好的,到目前为止很常规。 一个漂亮的函数的图书管理员思想F(X,Y) ,需要一个数x从Ñ,条件0 <= x <= 9,以及一些y从Ñ,并插入x到y在每个位置的十进制扩展(即,在前面加上,插入或附加x到y),然后返回排序后的新数字集。 例如,F(6,127)将导致 1267、1276、1627、6127 不过,那仍然有点无聊。图书管理员希望通过指定一个新函数(升序排列)来使事情更加有趣z -> {p : p in P and F(z,p) subset of P}。 例如,z(7)将是 3,19,97,433,487,541,... 因为37和73都是素数,719 179并且197都是素数,依此类推。 请注意,z(2)为空,因为没有2追加的素数永远不会是素数。对于{0,4,5,6,8}同样。 您的任务是编写代码,为给定x生成并输出序列z(x)中的前100个数字。 输入值 一个整数X,使得0 <= x <= 9。输入可以通过函数参数STDIN或等效参数进行。 输出量 由您选择的前100个数字组成的序列,应为STDOUT或等效的序列,以使该序列如上所述满足z(x)。如果z(x)为空(如{0,2,4,5,6,8}的情况),Empty Set则应改为输出单词。 限制条件 这是代码高尔夫球,因为您需要将其转录为索引卡,以便图书馆员向数学老师展示,并且您的手容易抽筋。 适用标准漏洞限制。图书管理员不容忍作弊者。 参考序列 x = 1:A069246 …

28
查找交织的源代码(警察)
这是警察的话题。有关强盗的线索,请移至此处。 介绍 对于这次“警察/抢劫犯”挑战,警察将编写产生输出的程序并将它们交织在一起。强盗的工作是分拆警察的程序以产生所需的输出。 警察规则 警察最多可以使用256个字节来编写2到8个(包括)程序,所有程序都必须产生一些输出。所有编写的程序必须使用相同的语言。警察会将他们的程序“交织在一起”,以使强盗更难弄清程序是什么。 现在对交织进行描述。考虑代表不同程序的字符串。交织的过程是重复拉出任何程序的第一个字符,并将其连接到新字符串的末尾,直到任何程序中都没有字符为止。例如,如果两个程序为lion和TIGER,则可能的交织为TIliGoEnR。但是,不能以任何方式对程序进行加密,因此RoITEnlGi是不可接受的。 应当指出,当从一个交织的结果中除去一个程序以外的所有字符时,其余程序将完整显示。TIGER从TIliGoEnR结果中删除字母lion。 所有警察的程序和输出必须仅包含可打印的ASCII字符(20-7E)和换行符。程序不得包含错误,并且必须在合理的计算机上运行10秒钟。对于任何提交,某处必须有免费的语言翻译。不允许将评论添加到提交中,哈希和其他形式的密码学也不允许这样做。不允许空白程序(抱歉卡住)。 警察将发布交织的代码,语言,使用的不同程序的数量以及每个程序的输出。非常感谢Martin编写此CJam脚本以自动交织程序。 自发布之日起一周后,程序被视为安全。那时,警察必须发布各个程序才能获得积分。 计分 在对安全提交进行评分时,会将两个部分加在一起。 256除以数量2乘以所使用程序的幂。 轮中的字节交织的数量最多为2的最近的电源,并将其分成256。 例如,如果条目TIliGoEnR(9个字节)安全,它将收到256/2 ^ 2 + 256/16 = 80点。 当警察的陈述被破解时,警察将损失16分。警察必须表明他们的陈述已被破解。 警察挑战的获胜者将是在足够长的时间让人们参与之后得分最高的人。 排行榜 这是Intrepidcoder从这个问题改编而成的正在进行的工作。 为确保您的答案显示出来,请使用确切的 Markdown模板以标题开头回答: # Language Name, N programs, M bytes; Score ###/### (if safe/cracked) 分号后的所有内容都将被忽略,因此您可以将分数放在此处。 如果您提交的内容安全,请输入以下标题: # Language Name, safe, N programs, M bytes; Score ### …

5
每个组件上的电压是多少?
下图显示了RLC电路。RLC电路是由串联或并联连接的电阻器(R),电感器(L)和电容器(C)组成的电路。(1) 为了简化计算,通常在频率(Laplace)域而不是时域中工作。 您的任务是: 就拿值R,L并C作为输入,并返回电压VR,VL并VC 到Laplace域的转换如下: R = R XL = j*w*L // OK, XL = w*L, and ZL = j*XL, but don't mind this here. XC = 1/(j*w*C) // I haven't ruined physics, it's only a minor terminology tweak 其中j = sqrt(-1)和w = 2*pi*50(频率为50 Hz)。 组件串联时的组合阻抗为Z = R + XL …

1
谁是正确的统治者?
谁来统治领域? 您将获得一棵家谱,其中包含:每个家庭成员的姓名,性别,出生日期,死亡日期和继承人列表。您可以使用任何方便的(嵌套的)列表格式来表示树。以下示例将使用JSON。确定谁将统治领域,并以什么顺序。继承规则如下: 当国王去世时,领域将移交给其年龄最大的合法男孩。 如果没有,则传给年龄最大的合法女童。 万一国王没有继承人,那么领土就交给了最老的合法国王的兄弟。 如果没有男兄弟,那么这个领域将进入最老的合法国王的姐姐。 如果所有合法亲戚都死了,则应用上述规则将其移到最近的混蛋 如果没有合法的或混蛋的亲戚还活着 LINE EXTINCT 我们将合法儿子定义为与父亲具有相同“房子”名称的儿子。 例子: 输入值 {} 输出量 LINE EXTINCT 输入值 { "name" : "Maegor", "house" : "Targaryen", "birth" : 12, "death" : 48, "sex" : "male", "heirs" : [] } 输出量 12-48: Maegor, LINE EXTINCT 输入值 { "name" : "Jaehaerys", "house" : …
18 code-golf 

1
变形箱
我定义了四种框样式: +-----+ ooooooo ^^^^^ ******* | 1 | o 2 o < 3 > * 4 * | | o o < > * * +-----+ ooooooo vvvvv ******* 编写一个给定整数和字符串的程序或函数,它将在字符串内找到上述框之一,并将其​​样式更改为用户要求的框样式。例如: 1 This is a test document. It ********* has no *purpose* other than dem*onstrat*ion. ********* 成为: This is a test …

30
几点了,小伙子?
老实说,我不敢相信这不是Code Golf的问题,但是... 将本地时间(带有am或pm)作为字符串输出到控制台,并在其前面加上“ It's”。 例: Run code.... 输出: It's 12:32p.m. 最短的代码胜出。 代码走了! 排行榜 显示代码段 var QUESTION_ID=57552,OVERRIDE_USER=42854;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i; body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px} <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> …
18 code-golf  date 

30
查找输入字符串中字符的出现
挑战 编写一个程序,给定一个x长度为10个字符的字符串和一个字符y,该程序输出ystring中出现字符的次数x。 以字节为单位的最短程序为准。 例 Input: tttggloyoi, t Output: 3 Input: onomatopoe, o Output: 4

9
将指南针的点转换为度
我独立提出了这个挑战,但是事实证明,这与Doorknob提出的挑战相反。因为我真的很喜欢他的规格,所以我决定窃取大部分规格,而不是自己解释。 挑战 给定指南针上32个点之一的缩写,请打印相应的度数。如果您对这32点的解释不感兴趣,请随时跳到下表。 这是完整的指南针: 由Denelson83(自己的作品)[ GFDL或CC-BY-SA-3.0 ],通过Wikimedia Commons 每个方向比上一个方向远11.25(360/32)度。例如,N(北)为0度,NbE(北至东)为11.25度,NNE(北-东北)为22.5度,依此类推。 详细地,名称分配如下: 0度是N,90度是E,180度是S,而270度是W。这些被称为基本方向。 基本方向之间的中间点就是它们之间串联的基本方向。N或S始终排在第一位,W或E始终排在第二位。这些称为顺序指示。序数和基数方向共同构成主要风。 主风之间的中点是它们之间的连接方向。基本方向为第一,第二顺序。这些被称为半风。 主风和半风之间的中点是相邻的主风“远离”最接近的基本方向。用表示b。这些被称为四分之一风。 结果如下表: # Degrees Abbrv. Name 1 0 N North 2 11.25 NbE North by east 3 22.5 NNE North-northeast 4 33.75 NEbN Northeast by north 5 45 NE Northeast 6 56.25 NEbE Northeast by east 7 …

4
X标志点
X标志点 您的目标是在大写X周围添加十字形: 输入/输出示例 输入: mdhyyyyyyyhhhddmmm mdyyssoo oooosyyyhhhdmm hsso oossoooooyyhhdhhdmmm yoooooo oo ssysssyhhdyyyhmmmm myso oso o oyo hhhdhhyhyhhm mm m mhsyhhys oss yyyhhhsosyhhmmmmdmmm mhyhhhy y ssyhoho o shhdmmmmdmmmm hhyyyh s oo syysyyhhdysso oyhdhhhmmmmm dhysyys sdysoXoyyyyhhso syshm mmm hhyhyo o osss y shhyyhd mmmmmm yyhyyyss o oyyyydmmdmmmmmmmmm mm ysyhyhhho s osy sdm …

1
迷你高尔夫球场
这是一个迷你高尔夫球洞: 外边界是一个半径为10且中心为(0,0)的圆。内边界是一个半径为3且中心为(0.5)的圆。发球台在(0,-8)。假设球只是半径为0的点。 球的动力学受以下规则支配: 最初,球以能量50和给定角度击中。 角度在笛卡尔坐标系中呈递减角度,因此0°表示直接向右,90°则直接向上,依此类推。 当球撞击内圆或外圆的边缘时,它会根据反射定律从圆上反弹。 在那个点与圆的碰撞角等于反射角。(这里的角度是相对于碰撞点处的圆的切线。) 为了清楚起见,请参见本或此(在第二链路的表示法,R_0 = 0在这个挑战。) 球在移动时会失去能量。 它覆盖的每单位地面都会损失1单位的能量。 每次从墙壁反弹时,都会损失5个单位的能量。 当球用尽能量或掉进洞中时,球停止运动。 如果球以小于等于5的能量击中墙壁,它将停止。 如果它在孔的距离1之内,且能量<10,它会掉入孔中,否则它将继续移动。 挑战 在给定孔的xy坐标的情况下,返回一个角度,您可以按该角度击球,以使球掉入孔中(如果存在该角度)。 输入值 以任何方便的形式输入孔中心的x坐标和y坐标。输入可以来自STDIN(或最接近的替代品),命令行参数或函数参数。 输出量 打印或返回一个角度,以度为单位,可以从发球区击球,使球落入孔中。如果存在这样的角度,则输出应在[0,360)范围内,否则输出应为-1。

7
编号分级大纲
编写一个包含字符串的程序,其中每一行都由0缩进一定数量的空格的字符组成。顶行没有缩进,并且每隔一行缩进的空间最多比前一行缩进更多。 没有行将有尾随空格,但是您可以选择假设只有一条尾随换行符。 例如,输入可能看起来像这样: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 您的任务是像对其进行分级一样对它进行编号,使用递增的正整数作为行标题。这将是示例的输出: 1 1 1 2 2 2 1 2 3 1 3 1 1 2 注意每个分层缩进级别如何都有自己的一组递增数字,即使它们仅递增到一个。 在输出中,不应有尾随空格,但是可以选择有一条尾随换行符。 编写一个通过stdin或命令行获取输入字符串的完整程序,或者编写一个将字符串作为参数的函数。打印结果或将其作为字符串返回。 以字节为单位的最短代码获胜。 例子 如果输入空字符串,则应输出空字符串。 下一个最简单的示例是输入 0 应该变成 1 大示例-输入: 0 0 0 0 0 0 0 …

11
64位ASCII编织
输入值 两个整数: 一个介于0到2 ^ 64-1之间的非负整数W,用于指定组织。 在1到255之间的正整数S,指定边长。 这些可以按照适合您的顺序进行。 输出量 请求的编织的S by S ASCII表示形式(S换行符分隔S字符的字符串,带有可选的尾随换行符)。编织由编织编号W定义,如下所示: 将W转换为二进制并拆分为8个字节。第一个(最高有效)字节定义了从左(最高有效位)到右的第一行。下一个字节定义了下一行,依次类推8行。编织编号定义了一个8 x 8的正方形,该正方形应从左上方开始平铺在所需区域上。也就是说,其左上角应对应于要覆盖区域的左上角。 每个0都应显示为a |,每个1都应显示为a- 例子 输入: 0 8 输出: |||||||| |||||||| |||||||| |||||||| |||||||| |||||||| |||||||| |||||||| 输入: 3703872701923249305 8 输出: ||--||-- |--||--| --||--|| -||--||- ||--||-- |--||--| --||--|| -||--||- 输入: 3732582711467756595 10 输出: ||--||--|| --||--||-- --||--||-- ||--||--|| …

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.