Questions tagged «code-golf»

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

9
不可视化帕森斯代码
介绍 在帕森斯的代码只是为了说明一个简单的方法的音调变化在一段音乐,音符是否高于或低于前一个低。 即使您乐于记住音乐,您仍然可以很清楚地记起音符的高低,因此,帕森斯代码可以帮助您使用搜索引擎识别音乐。 描述 每个变体都由单个字符表示,该字符是以下之一: R如果该音符与上一个音符相同(代表“ R epeat”) U如果该音符高于上一个音符(代表“ U p”) D如果该音符低于上一个音符(代表“ D拥有”) 首字母写为*。 例 这是帕森斯代码的示例(“欢乐颂”的开头): *RUURDDDDRUURDR 您实际上可以将其可视化,如下所示: *-* / \ * * / \ *-* * *-* \ / \ * * *-* \ / *-* 从现在开始,我们将其称为轮廓。 上面的示例认为绘制此类国家的规则是不言自明的。 挑战 现在是真正的挑战。 编写一个程序,以轮廓为输入,输出其相应的帕森斯代码。 不要求您绘制轮廓,但实际上是相反。 从轮廓中找到原始的帕森斯代码。 规则 打高尔夫球的通常规则适用 字节数最短的程序获胜 输入为轮廓,输出为有效的帕森斯码 与输入的多余空格有关的细节无关紧要,尽一切可能为您效劳 由于前面的规则,不允许您使用额外的空格对输出和/或程序的部分内容进行一种或另一种硬编码。 …

30
n维空间中两点之间的距离
这是另一个简单的例子: 挑战 给定n维空间中的两个点,输出它们之间的距离,也称为欧几里得距离。 坐标将是有理数;唯一的限制就是您的语言限制。 最小尺寸为1,最大尺寸取决于您的语言 您可以假设两个点的尺寸相同,并且没有空输入。 距离必须正确至少为小数点后3位。如果您的语言不支持浮点数,请输出最接近的整数。 规则 与往常一样,允许使用功能或完整程序。 输入可以从STDIN,命令行或函数参数中获取。 输入格式取决于您,指定您在答案中使用的格式。 可以通过打印到标准输出或返回值来提供输出。 这是代码高尔夫球,因此最低字节数获胜!如果是平局,则较早的答案为准。 测试用例 每个点由长度为n的列表表示。 [1], [3] -> 2 [1,1], [1,1] -> 0 [1,2], [3,4] -> 2.82842712475 [1,2,3,4], [5,6,7,8] -> 8 [1.5,2,-5], [-3.45,-13,145] -> 150.829382085 [13.37,2,6,-7], [1.2,3.4,-5.6,7.89] -> 22.5020221314 编码愉快!

13
具有三个输入的约瑟夫斯问题
这个站点上有一个与此问题类似的问题,但是我添加了一个错误。 你有三个输入,人在圆圈中的数字ñ,该ķ个人在每一步算出来,和q个人能承受住。圈子中的人编号为1到n。 例如,在一个由20个人组成的圈子中,要生存的第20个人是被移除的第一个人,第19个幸存者是被移除的第二个人,依此类推。通常,约瑟夫斯问题是确定最后一个被移走的人,这里称为第一个幸存者。 用这三个输入编写最短的程序或函数,该程序或函数返回第q个要生存的人的数量。 如果有任何明确的问题,请告诉我。 一些例子: >>> josephus(20, 3, 9) 4 >>> josephus(4, 3, 1) 1 >>> josephus(100, 9, 12) 46 编辑:假设所有输入均有效。那就是没有人会要求0或任何负数,也没有人会要求在5个人(即1≤q≤n)的圈子中排名第20的幸存者 编辑:我将在12月2日午夜UTC + 7接受答案。
22 code-golf 

22
q是n的二次残基吗?
给定两个输入,q n确定是否q为的二次余数n。 也就是说,有一个x地方x**2 == q (mod n)或者是q一个方形模n? 输入项 两个整数qand n,其中q和n是任意整数0 <= q < n。 输出量 真实或错误。 可选,打印任何(或全部)x是x**2 == q (mod n) 例子 >>> quadratic_residue(1, 5) True >>> quadratic_residue(3, 8) False >>> quadratic_residue(15, 22) True 规则 您的代码必须是程序或函数。输入可以是任何顺序。这是代码高尔夫,因此以字节为单位的最短代码获胜。 如果有任何不清楚或需要修复的地方,请告诉我。 奖金 如果您的函数接受q为任意整数,则为2字节奖励。 目录 var QUESTION_ID=65329;var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";var COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk";var OVERRIDE_USER=47581;var answers=[],answers_hash,answer_ids,answer_page=1,more_answers=true,comment_page;function answersUrl(index){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+index+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(index,answers){return"http://api.stackexchange.com/2.2/answers/"+answers.join(';')+"/comments?page="+index+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:true,success:function(data){answers.push.apply(answers,data.items);answers_hash=[];answer_ids=[];data.items.forEach(function(a){a.comments=[];var id=+a.share_link.match(/\d+/);answer_ids.push(id);answers_hash[id]=a});if(!data.has_more)more_answers=false;comment_page=1;getComments()}})}function …

13
两个字母之间的字母
编写一个程序,该程序接受一个小写单词作为输入,并输出单词对中与字母中具有相同字母数的字母对数。 例如,在“自然”一词中,我们有4对: nr:因为单词(a,t,u)中的三个字母之间以及字母(o,p,q)中的三个字母 ae:由于单词(t,u,r)中的三个字母之间以及字母(b,c,d)中的三个字母之间 土:因为在单词中它们之间没有字母,在字母表中也没有字母 tr:因为在单词(u)中它们之间只有一个字母,而在字母(s)中它们之间只有一个字母 由于有四对,因此这种情况下的输出应为4。
22 code-golf 

4
多个程序Quinecatenate!
您的任务是提供三种不同的语言A,B,C,并编写两种不同的程序P和Q,以便: P是语言A的奎因,但不是语言B或C的奎因; Q是语言B中的奎因,而不是语言A和C中的奎因;和 在P后面串联的Q(中间没有添加任何新字符)是C语言中的奎因,但B和A语言中没有。 这是代码高尔夫球,您的分数是最终级联quine的长度。同样,请遵守适当的规则 –不要阅读源代码,不要使用空程序等。

3
高尔夫球弦
对于总是需要字符串压缩的kolmogorov-complexity挑战,我始终未能给出答案,主要原因是我不知道我应该如何有效地使用字符串压缩工具。 因此,我已经发布了这个问题。与我的其他提示问题不同,这不是特定于语言的意思,也就是说,如果您可以用自己的语言想到任何提示,则可以将其发布(前提是您指定了语言)。一般提示也将不胜感激。 那么,如何使用字符串压缩工具发挥最大作用?

15
凯撒转移
凯撒的转变可能是我们都熟悉的东西。 (您甚至可能将它作为一项家庭作业来完成。如果是这样,请不要复制这些答案,您的老师几乎可以肯定不想在这里得到任何类似答案的东西。) 以防万一,凯撒(Caesar)移位是一种非常简单的密码形式。它需要一个要加密的字符串和一个整数。然后,对字符串中的每个字母字符执行以下转换: 计算出字母在字母中的位置(从0开始)。 将开头收到的整数加到该数字上。 当数字大于25时,从中减去26。 计算出它所在的字母的位置。 其余字符保持不变。 必须尊重大写字母,因为没有大写字母的英语是什么? 例子: abcdefghijklmnopqrstuvwxyz 1 -> bcdefghijklmnopqrstuvwxyza Spam spam spam sausage and spam! 13 -> Fcnz fcnz fcnz fnhfntr naq fcnz! abcdefghijklmnopqrstuvwxyz 52 -> abcdefghijklmnopqrstuvwxyz abcdefghijklmnopqrstuvwxyz -1 -> zabcdefghijklmnopqrstuvwxy ABCxyz 3 -> DEFabc 假设条件 您可能会收到任何可打印的ASCII字符 输入数字可以为负,并且始终大于-128且小于128(-128<x<128) 您必须能够对大写字母和非大写字母进行可逆编码。 您必须创建完整的程序,而不仅仅是函数或代码段 您将从STDIN或最接近的候补输入 您可以选择输入格式,请在答案中注明 需要转换的字符是ASCII码点0x41 - 0x5A和0x61-0x7A-大写和小写字母 …

2
阅读新闻很无聊。帮帮我!
每个人都知道这个消息很无聊。真无聊。除非涉及政客及其丑闻。真好玩!但是可惜,政客只能犯下这么多丑闻。因此,我正在雇用您使新闻更加有趣。 目标给定一个HTML代码段,执行在此处找到的所有替换,即在此图片中: 但是您不应该自己编辑任何HTML标记。我将任何在HTML标记或它们的属性中找不到的单词称为有效单词。也就是说,您不应替换<div class="smartphone">iPhone</div>为<div class="pokedex">iPhone</div>,而应替换<div>election</div>为<div>eating contest</div>。 解析规则 编辑您只能匹配由非单词描述的单词。也就是说,您只能匹配完整的单词。(例如,匹配“您好见证人”,但不匹配“轻率”,“轻率”或“维特尼空间选择”。 如果无法在键盘上键入字符,则应显示最接近的等效字符。(例如,“智能手机”实际上将变成“ Pokedex”) 首字母大写或全字母大写必须保留。(例如,“据称他们死亡”变成“金田很可能已经死亡”,“据称他们死亡”变成“他们大概已经死亡”,“选举!”变成“饮食比赛!”,而“ SpAcE”变成“ Spaaace”和“ nEW STUDY”成为“ tumblr post”) 所有情况都必须匹配。(即,无论大小写,您都必须匹配一个单词。) 满足的任何实例a <vowel>都应成为an <vowel>,反之亦然。(例如,“参议员”变成“精灵王”)您不必为每个实例都这样做,但是至少对于您自己的替补而言。 任何复数形式也必须在翻译中保留复数形式(例如,“智能手机”变为“ pokedex”,“空格”变为“ Spaaaces”) 一定时态的任何内容都必须保留在翻译中的那个时态中。(例如,“重建”变为“复仇”,“重建”变为“复仇”,等等。) 任何单数形式都必须在翻译中保持单数形式(例如,“国会领袖”变成“河魂”) 如果条目跨越多个HTML元素,则您仍应将其匹配,但可以“丢弃”所有中间元素。(例如,S<b>pa</b>ace应简单地成为“ spaaace”)。如果条目是独立包含在单个元素中的,则应正确匹配条目并保留标签。 “目击者”应该变成“我认识的那些家伙” “目击者”应该变成“我认识的这个家伙” “见证人”应该变成“我认识的那个家伙” “无法联系到评论”应该变成“有罪,每个人都知道” “无法联系到评论”应该变成“有罪并且大家都知道” 奖金 如果您获得-N%奖金,则您的new amount = (old amount) * (1 - N/100)。因此,如果您-5%收到了500字节代码的奖金,则您的new amount = 500 * (1 - 5/100) …
22 code-golf  string 

14
检查Lyndon字
一个林登字是一个字符串,它是严格字典序小比任何其循环旋转。给定一个二进制字符串,请确定它是否是尽可能少的字节中的Lyndon字。 例如,001011是Lyndon单词。通过重复将第一个符号移到末尾,可以得到下面列出的旋转角度。 001011 010110 101100 011001 110010 100101 其中,原始字符串按字典顺序排在第一位,或者等效地代表最小的二进制数。 但是,001001它不是Lyndon单词,因为它的一种旋转方式与其本身相同,因此最早在字典上联系在一起。 一个相关的问题。 输入:非空的二进制字符串或数字列表0和1。您不能使用数字5来表示101。 输出:一致的Truthy或Falsey值,指示字符串是否为Lyndon单词。 不允许专门用于Lyndon单词的内置函数。 测试用例: 长度不超过6的Lyndon单词是: 0 1 01 001 011 0001 0011 0111 00001 00011 00101 00111 01011 01111 000001 000011 000101 000111 001011 001101 001111 010111 011111 长度不超过4的非林登词为: 00 10 11 000 010 100 101 110 111 0000 …
22 code-golf  string 

28
颠倒真相
编写程序或函数以: 从stdio或参数中获取一个字符串 替换所有出现true与false和false与true 扭转它,但不扭转true和false 返回或打印结果 示例(输入为左侧): "true" "false" "2false" "true2" "true is false" "true si false" "false,true,undefined" "denifednu,false,true" "stressed-false" "true-desserts" "falstrue" "falseslaf" "true false true x" "x false true false" 有标准漏洞。这是代码高尔夫球,因此以字节为单位的最短代码获胜。 排行榜 显示代码段 var QUESTION_ID=63256,OVERRIDE_USER=20569;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 …

2
自然数行
定义 有无穷级数的连接自然数(以1开头的正整数): 1234567891011121314151617181920212223... 挑战 以任何语言编写程序,该程序接受位置编号作为输入,并从上面定义的行中的该位置输出数字。 位置编号是任意大小的正整数。那是第一个位置是1,产生输出数字“ 1” 输入可以是十进制数(例如13498573249827349823740000191),也可以是对应于正整数的e表示法(例如1.2e789)。 程序必须在合理的时间内(在现代PC / Mac上为10秒)结束,并给出非常大的索引作为输入(例如1e123456-即1表示123456为零)。因此,简单的迭代循环是不可接受的。 如果输入无效,程序必须在1 s内以错误终止。例如。1.23e(无效)或1.23e1(等于12.3-不是整数) 可以使用公共BigNum库来解析/存储数字并对其进行简单的数学运算(+-* / exp)。没有应用字节惩罚。 最短的代码胜出。 TL; DR 输入:bignum整数 输出:无限行中该位置的数字 123456789101112131415... 一些验收测试用例 表示法为“输入:输出”。他们都应该通过。 1:1 999:9 10000000:7 1e7:7(与上面的行相同) 13498573249827349823740000191:6 1.1e10001:5 1e23456:5 1.23456e123456:4 1e1000000:0 1.23e:错误(语法无效) 0:错误(超出范围) 1.23e1:错误(不是整数) 奖金! 在编号内输出数字位置编号,并输出编号本身。例如: 13498573249827349823740000191: 6 24 504062383738461516105596714 数字'50406238373846151610559 6 714'的位置24处的数字' 6 ' 1e1000000: 0 61111 …

1
依赖图可视化
挑战的目标是编写一个程序,该程序以树的形式可视化依赖图。尽管在这种情况下“依赖关系图”仅意味着有向图,但此处描述的可视化方法最适合描述某些依赖关系的图(作为练习,在阅读了挑战之后,尝试反转其中一个的方向示例图,看看结果是否同样有用。) 程序的输入由一个或多个目标定义组成,这些目标定义是以下形式的行: Target DirectDependency1 DirectDependency2 ... ,定义目标及其相关的直接依赖项(如果有)。目标及其依赖关系统称为对象。如果对象仅显示为依赖项,而不显示为目标,则它没有依赖项。输入中出现的所有对象的集合称为Γ。(有关输入格式的更多详细信息,请参见“输入和输出”部分。) 对于任意一对对象A和B,我们说: 对于某些对象 B',如果 A直接依赖于 B,或者 A直接依赖于 B',而 B'依赖于 B,则 A依赖于B(等效地, B是A所必需的); 如果 A依赖于 B,而 B不依赖于 A,则 A适当地依赖于B(等效地, A适当地要求B)。 我们在Γ中定义了一个人为对象oo such,使得ʀooᴛ并不是任何对象都直接需要的,并且对于所有对象A,andooᴛ直接且仅当A在Γ中且A不是时才依赖于A通过在Γ的任意对象正确需要(换句话说,ʀooᴛ直接取决于甲如果没有其他对象取决于甲,或如果依赖于所有对象甲还需要由甲)。 输出树 我们构造一棵树,其根节点为ʀooᴛ,并且每个节点的子节点都是其直接依赖项。例如,给定输入 Bread Dough Yeast Dough Flour Water Butter Milk ,结果树是 ,或者以ASCII形式, ʀooᴛ +-Bread | +-Dough | | +-Flour | | +-Water | …

30
写出摩尔定律
这个站点上有很多挑战,要求您打印一个序列,这也不例外。 (此挑战序列的以下说明假定序列中的符号为0和1。) Thue-Morse序列的递归定义是 T_0 = 0 T_2n = T_n T_2n+1 = 1 - T_n 一个更直接的定义是,从0到2**m-1和的序列2**m to 2**(m+1)-1是二进制补码。因此0,其后是1,之后是,01之后是10,0110然后是1001和,向前跳了一点,0110100110010110之后是1001011001101001。 面临的挑战是编写一个程序或函数来打印出第一个元素的Thue-Morse序列n,其中n任何非负整数都是。输出可以使用任何两个符号,如下例所示。 例子 >>> tm_01(20) 01101001100101101001 >>> tm_ab(42) abbabaabbaababbabaababbaabbabaabbaababbaab >>> tm_paren(37) ())()(())(()())()(()())(())()(())(()( >>> tm_space_star(12) ** * ** * >>> tm_01(0) # to show that this is a valid input 规则 输入将是任何非负整数。您可以假设所有输入均有效。 输出必须是nThue-Morse序列的第一个元素,使用任何方便的符号。如果愿意,还可以添加分隔符。在我的示例中,我没有。 注意:此规则允许使用列表(如Python的列表),这,是有效的分隔符,我不介意输出中的[和开头或结尾的字符]。 这是代码高尔夫,因此最少的字节数获胜。 …

6
创建彩虹文字
您的挑战是将输入作为一行文本并以这种方式输出。 输入输出 输入将是仅包含可打印ASCII字符的字符串。第一个或最后一个字符永远不会是空格,并且行中永远不会有两个空格。它总是至少两个字符长。 您的输出应为相同的字符串,转换为彩虹色,如下所述。输出可以是图像形式(保存到文件或以其他方式可用),也可以仅在屏幕上显示结果(如下面的参考实现所示)。 转换次数 要确定字符串中的每个字母应变成哪种颜色,请使用以下算法。请注意,每个字母都是其自己的单独颜色。这不是渐变! 如果此字符是空格: ...没关系,因为空格无法真正...仍然具有颜色。只需输出一个空格。 除此以外: 令i=该字符在字符串中的索引(从0开始,因此对于第一个字母为0),不计算空格。例如,在字符串中foo bar,此值将4用于a。换句话说,这就是到目前为止已经遇到了多少个非空格。 令n=字符串中非空格的数量。 现在可以在HSL圆柱坐标系中将该字母的颜色表示为[hue =(i/ n)* 360°,饱和度= 100%,亮度= 50%]。 请注意,这些方向意味着输出foo和f oo应该是完全一样的,除了后的增值空间f。也就是说,所有字母应保留相同的颜色。 下文的“规则”部分中介绍了转换过程的其他规则。 参考实施 这是用JavaScript编写的,您可以通过按“运行代码段”按钮进行尝试。 window.addEventListener('load', function() { addRainbow('Your challenge is to take input as a line of text and ' + 'output it like this.'); }); // append this text rainbow-ified …
22 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.