Questions tagged «code-golf»

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

4
匹配堆栈交换URL
序幕 安装了反XSS浏览器扩展程序后,Stack Snippets突然停止在整个Stack Exchange网络上正常工作。我再也无法从Stack Overflow中学到东西,无法查看有关用户体验的工作演示,而且最糟糕的是,无法在Programming Puzzles和Code Golf上测试JavaScript答案!拼命地寻找一种补救方法,并在设置中找到一个小的输入框,其中可以放置一个正则表达式。我无法将所有Stack Exchange网站都放在一个小盒子中,因此我寻求帮助。这就是那个问题。 任务 您的任务是创建一个匹配所有Stack Exchange网站URL的正则表达式,而不匹配不属于Stack Overflow Inc.的任何域。 您的正则表达式必须将所有URL与以下部分匹配: protocol:这将是http://或https://。 domain:这将是此列表中的一项: stackoverflow.com www.stackoverflow.com facebook.stackoverflow.com serverfault.com superuser.com meta.stackexchange.com webapps.stackexchange.com nothingtoinstall.com meta.webapps.stackexchange.com meta.nothingtoinstall.com gaming.stackexchange.com arqade.com thearqade.com meta.gaming.stackexchange.com meta.arqade.com meta.thearqade.com webmasters.stackexchange.com webmaster.stackexchange.com meta.webmasters.stackexchange.com meta.webmaster.stackexchange.com cooking.stackexchange.com seasonedadvice.com meta.cooking.stackexchange.com meta.seasonedadvice.com gamedev.stackexchange.com meta.gamedev.stackexchange.com photo.stackexchange.com photography.stackexchange.com photos.stackexchange.com meta.photo.stackexchange.com meta.photography.stackexchange.com meta.photos.stackexchange.com stats.stackexchange.com statistics.stackexchange.com …

4
HexaGolf:Rotagons
另请参阅:字形 挑战 给定一个六角形和一个数字n作为输入,输出相同的六角形旋转n时间。 六边形 六角形将是这样的字符串: a b c d d e e f f o g g h h i i j k l 六边形将始终是规则的,并且将仅包含可打印的ASCII字符: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 回转 要找到旋转六边形n的角度,请乘以60度以获得旋转角度。例如,使用上述六边形,如果n为2 ,则将其乘以60得到120度。然后,将六角形旋转120度: j h f k h f d l i o d a i g e b g e c 请注意,每一侧都顺时针移动了两侧。 如果n为正,则应顺时针旋转六角形。如果n为负,则应逆时针旋转六角形。 …

12
Eratosthenes筛,一步一步
给定数字N,绘制一个左对齐的N x N数字板,留出1个空白(作为空格)(我将显示N = 5的图) 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 您的工作是逐步构建Eratosthenes筛。首先,从2开始。它是质数,因此将其保留在那里,并用适当的空格数替换所有其他可被2整除的数字。 2 3 5 7 9 11 13 15 17 19 21 23 25 接下来,转到下一个未打印的号码(3在这种情况下),然后执行相同的操作。 2 3 5 7 11 13 …

8
分段数
分段数字或质数测量的序列(OEIS A002048)是这样的数字序列,即每个成员都是最小的正数(大于零),不能由较早的连续数字之和加上a(0) = 1。 例 为了计算,a(7)我们首先计算a(0->6) = [1, 2, 4, 5, 8, 10, 14]。然后,我们从零开始遍历数字,直到找到一个不是序列中一个或多个连续数字之和的数字。 1 = 1 2 = 2 3 = 1 + 2 4 = 4 5 = 5 6 = 2 + 4 7 = 1 + 2 + 4 8 = 8 9 = 4 + …

12
使我成为糟糕的淡入淡出动画……请
正如标题所谨慎建议的那样,您的任务是使一个单词的淡入淡出动画变成真正的第二个单词。 您可能会问这个“淡入淡出动画” 到底是什么? 要制作壮观的(非常糟糕的)淡入淡出动画,请使用两个仅包含可打印ASCII字符的字符串。首先打印起始字符串(两个中的第一个)。然后,您随机选择原始单词中的一个字符,然后将其更改为要为其设置动画的单词中的相应字符。当单词的长度不相等时,您必须用空格垫他们。 您将继续执行此操作,直到所有字符都被更改为止,但是您将不会多次更改某个索引处的字符。这是一个示例I / O: Hey -> Peeps Hey # original string Hey s # replace char at index 4 Hey s # replace char at index 1 Pey s # replace char at index 0 Pee s # replace char at index 2 Peeps # replace char …
15 code-golf  string 

22
除数不多的除法
写一个程序或函数,它在正整数a,b并c,并打印或返回a/b到c小数位,使用操作+ - * /%[加,减,乘,除,调制]在正整数:您可以使用所有您的语言允许,但不能使用浮点数。a,b,c的范围将是您语言中无符号整数所允许的范围。数字结果将被截断为最后一个要打印的数字(所以没有round)。 这意味着,如果您的语言没有整数类型(仅浮点数),则可以通过将这些浮点数仅用作正整数来参与。本练习的线索是编写仅在[无符号]整数上使用+-* /%运算来找到浮点数中的数字的函数。 例子 print(1,2,1) 会打印 0.5 print(1,2,2) 会打印 0.50 print(13,7,27) 会打印 1.857142857142857142857142857 print(2,3,1) 会打印 0.6 print(4,5,7) 会打印 0.8000000 print(4,5,1) 会打印 0.8 print(9999,23,1) 会打印 434.7 print(12345613,2321,89) 如果您的语言具有32位未签名,将打印 5319.09220163722533390779836277466609220163722533390779836277466609220163722533390779836277466 以字节为单位的最短代码获胜。如果这看起来不清楚,我很抱歉。测试一些与建议不同的输入。

15
最终号码
挑战 编写一个程序,该程序接受一个由4个整数组成的数组(表示由某种算法生成的数字序列),并返回随后的下一个整数。 我们将只使用简单的加,减,乘和除法算法,该算法具有恒定的(即不变的)变化。 对于除法,我们将使用floor整数值:133/4 = 33和33/4 = 8 您可以假设总会有一个有效的返回值 测试用例 [14,24,34,44] 应该返回54(加法算法) [105,45,-15,-75] 应该返回-135(减法算法) [5,25,125,625] 应返回3125(乘法算法) [256,64,16,4] 应该返回1(除法算法) 通用规则 这是代码高尔夫球,因此最短的答案(以字节为单位)将赢得挑战。 禁止出现标准漏洞
15 code-golf  number 

8
卢卡斯诉 车库门遥控器
免责声明 虽然我知道有一个特定的相关问题,但我的问题使用了两个车库门和一个随机组成部分,我也基于现实生活中的事件,看到儿子在我走出车库时不小心放下了其中一个车库门。上周的车库...没什么可让头脑震撼的!;) 的背景 卢卡斯(我15个月大的儿子)喜欢和车库遥控器一起玩。此遥控器上有两个按钮,一个用于左侧车库门,一个用于右侧车库门。两个按钮的工作方式相同。按一次使门开始打开,再按一次停止,再按一次开始关闭,再按一次再次停止,依此类推。 卢卡斯(Lucas)喜欢这个遥控器,他会随机按下其中一个按钮,或者同时按下两个按钮,或者完全不按下。如果两者都按下,则不会发送信号,但是按下一个按钮将发出信号。 因此,代码高尔夫球挑战分为两个部分: 第一部分 生成一个60字符长的字符串,表示卢卡斯在一分钟内随机按下按钮。在这种情况下,“随机”表示“在每个刻度上每个输入的机会均等”。字符如下: 0:卢卡斯未按下任何按钮,或者同时按下了两个按钮。无论哪种方式,都没有发送信号。 1:卢卡斯按下了左车库门的按钮 2:右车库门的按钮已被Lucas按下 第二部分 使用在第一部分中生成的字符串,使用数字作为打开,停止和关闭这些门的触发器来模拟两车车库的打开和关闭。 我的车库门非常快(有关原因,请参见上面的免责声明)。按下按钮后,需要四秒钟才能完全打开或关闭。 因此,如果关闭: 0秒:0%打开(关闭);当按下按钮时,门开始打开 1秒:打开25% 2秒:50%开启 3秒:75%开启 4秒:100%打开,门停 因此,如果打开: 0秒:100%打开;当按下按钮时,门开始关闭 1秒:打开75% 2秒:50%开启 3秒:25%开启 4秒:0%打开(关闭),门停止 如果特定的门在运动,则向该门的信号将使其停止。下一个发送到同一扇门的信号将使它朝相反的方向移动。如果门在先前运动时已停止,而在收到“停止”信号时现已完全打开或完全关闭,则该门将在完全打开或完全关闭状态下注册为“已停止”,准备进行接收到新信号时,向相反方向移动。 通过此模拟,两个车库门将最初处于关闭位置。因此,让我们看一下10秒的命令列表,看看如果Lucas在远程执行命令会发生什么: 2120221120 2: (L:0% stopped, R:0% opening) 1: (L:0% opening, R:25% opening) 2: (L:25% opening, R:50% stopped) 0: (L:50% opening, R:50% stopped) 2: …
15 code-golf 

10
可见建筑物
此难题源自CodinGame SamSi的“城市之心”难题。 描述 您决定在n* n瓷砖城市中散步并转到中心瓷砖。所有建筑物都无限小,但是您拥有超强的视野,可以看到一切近在咫尺。 约束条件 n 总是很奇怪 您可以看到没有被其他建筑物直接遮挡的任何建筑物 任务 用标记每个可见的建筑物*。该建筑物是可见的,前提是它没有被完全相同的视线内的另一栋建筑物所阻挡。 换句话说,如果@是原点,则建筑物是可见的,前提是x坐标和y坐标互为质数。 输入和输出示例 输入: 7 输出: ** ** * * * * ******* *@* ******* * * * * ** ** *是一栋可见的建筑物, 是一栋无形的建筑物, @就是您所在的位置。 计分 请记住,这是code-golf,所以以字节数最少的答案为准。 var QUESTION_ID=91394,OVERRIDE_USER=59057;function answersUrl(e){return"https://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"https://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 …

1
象棋转换
在国际象棋世界中已经做了很多工作。例如,存在一种标准的文件格式,.pgn该格式描述了一个国际象棋游戏,其中包括动作列表。此外,还有另一种文件格式.fen,它描述了电路板的位置。 今天的挑战是将国际象棋移动(以代数符号表示)列表转换为棋盘位置。 定义 位置[a-h][1-8]:通过附加行(文件)和列(行)来给出。定义板上64个可能的位置之一。 片[KQRBNP]?:表示ķ ING,Q ueen,- [R OOK,乙 ishop,K Ñ飞行,P芒。用代数符号P不使用。在板上使用时,如果字母为白色,则字母为大写,否则为小写。 移动[KQRBN]?[a-h]?[1-8]?x?[a-h][1-8](=[KQRBN])?(+*?)?|O-O(-O):一块,然后是它要移动的位置。 如果片段不明确,则给出行或列,或同时给出两者。 如果工件正在捕获工件,则将x其放置在工件和位置之间。 如果此举是a脚的话,O-O则为国王一方,否则为O-O-O。 如果要提升典当,则在移动=之后附加要提升的棋子。 如果此举使国王受阻,则会附加一个 +。 如果此举使国王成为将军,则将其附加在#。 作品的颜色由匝数决定(白色和黑色交替匝数,从黑色开始)。 木板(([1-8]|[KQRBNPkqrbnp])*\/){8}:通过按行顺序列出碎片来指定行。如果有空方块,则使用游程的长度给出每个空方块的游程。行使用分隔/ 董事会的初始职位为rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR,代表: rnbqkbnr pppppppp PPPPPPPP RNBQKBNR 您需要列出一个Move清单并返回一个Board。您可以假定您的输入有效。 例子 -> rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR e4 -> rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR e4,c5 -> rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR e4,d5,exd5,e5 -> rnbqkbnr/ppp2ppp/8/3Pp3/8/8/PPPP1PPP/RNBQKBNR e4,d5,exd5,e5,dxe6 -> rnbqkbnr/ppp2ppp/4P3/8/8/8/PPPP1PPP/RNBQKBNR e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4 -> r1bqk2r/ppp2pp1/4Pn2/2P4p/6nP/8/PPP2PPN/RNBQKB1R e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4 -> r1bqk2r/ppp2pp1/4P3/2P4p/3Q2nP/6P1/PPP2n1N/RNB1KB1R e4,d5,exd5,e5,dxe6,Bc5,Nf3,Nf6,d4,Nc6,dxc5,Ne5,h4,h5,Nh2,Neg4,g3,Nxf2,Qd4,N6g4,Bf4,O-O -> …
15 code-golf  chess 

2
钝化图像
介绍 坦白说,尖锐的边缘很危险,因此,如果输入PNG,请使用以下所述的方法模糊图像,并钝化那些锐利的尖锐边缘。 方法 要获取每个像素的RGB值,请使用以下三个公式: R = 1.5 × ∑ña = 1[R2一种ñ------------√[R=1.5×∑一种=1个ñ[R一种2ñR = \sqrt{\frac{1.5\times\sum^n_{a=1}R^2_a}{n}} G = 1.5 × ∑ña = 1G2一种ñ------------√G=1.5×∑一种=1个ñG一种2ñG = \sqrt{\frac{1.5\times\sum^n_{a=1}G^2_a}{n}} B = 1.5 × ∑ña = 1乙2一种ñ------------√乙=1.5×∑一种=1个ñ乙一种2ñB = \sqrt{\frac{1.5\times\sum^n_{a=1}B^2_a}{n}} 其中∑ña = 1[R2一种∑一种=1个ñ[R一种2\sum^n_{a=1}R^2_a是每个相邻像素的红色值的平方之和。ññn的值是相邻像素的数量(例如,角像素的ññn值为3,而图像中心周围的像素的ññn值为8)。 相邻像素是在所有方向(左,右,上,下和所有对角线)上均距原始像素1个像素的像素。 例如,在以下3 x 1图像中: 中间像素的RGB模糊值将为: R = 1.5 * (02+ 02)2------------√= 0[R=1.5∗(02+02)2=0R = \sqrt{\frac{1.5*(0^2+0^2)}{2}} = 0 …

5
片三角形字母
给定一个n从1to 26(或0to 25)的输入数字,用来输出从左到右的字母,直到并包括相应的字母a=1, b=2, c=3, ...。扭曲之处在于,字母还必须垂直于字母在字母表中的位置重复。奇数(在1索引时)应在水平线上保持平衡,而偶数应在偏向顶部或底部之间交替(您可以选择先选择哪个方向)。如果您的索引是0,请在前一句中将奇/偶数互换。 换句话说,如果字母的字母值?是#,则#输出中应该有该字母的副本,所有副本均在第#th列中。这些字母应在具有的水平线的上方和下方平均平衡a。如果字母不能均匀平衡,则交替在该行的上方和下方具有“额外”字母。 这是前六个输出(n = 1,2,3,4,5,6,以1为索引,选择与底部的第一者交替显示),以换行符分隔,因此您可以看到模式。解释模式的注释以开头#。 a # On a line by itself ab b # The "extra" letter is below the horizontal c abc # The 'c' splits evenly bc d # Because the 'b' was below, the extra 'd' must be above cd abcd …

30
在不使用内置函数的情况下查找数组中的最小和最大整数
挑战 给定一个从stdin,函数参数,程序参数或其他方法接收的整数数组: 输出只在阵列中的最小和最大数目,通过一个返回值,标准输出,或其它拟合方法。 会话示例 > minmax( {0, 15, 2, 3, 7, 18, -2, 9, 6, -5, 3, 8, 9, -14} ) -14 18 参考实施 // C++14 void minmax(std::vector<int> v) { int min = v[0]; int max = v[0]; for(auto it : v) { if (*it < min) min = *it; …

2
有没有一种方法可以缩短胖箭头功能?
从我在PPCG上所看到的时间来看,大多数涉及胖箭头功能的JavaScript条目往往是两个阵营之一: 能够作为单个语句运行并返回答案的简单示例,就像这样 x=(a,b)=>a*a+b 由于使用循环,通常比较复杂的花括号大括号,因此需要使用return语句。p=b=>{m=b;for(a=1;~-m;)--m,a*=m*m;return a%b} 以类别2的上述示例为例,使用花括号概念作为概念证明...是否有办法像这样重新投放此代码(或类似代码),以便消除花括号和return?我只是问这个问题,因为这有可能(并不是说会一直发生)从JS高尔夫球手的代码中消除8个字节。在这种情况下,可以使用任何技术吗?我尝试了递归,但是该m=b语句已被证明有点麻烦,因为我似乎无法动摇它。 对于上面的代码,return无论打高尔夫球的时间短与短,打高尔夫球如何进一步消除这种说法?

20
y的幂可以被x整除的最小正数
任务 给定整数,x并且y它们都至少是2,找到y-次幂可被整除的最小正数x。 例 给定x=96和y=2,输出应该是24因为24是最小的正n满足n^2 is divisible by 96。 测试用例 x y output 26 2 26 96 2 24 32 3 4 64 9 2 27 3 3 计分 这是代码高尔夫球。字节数最少的解决方案获胜。 参考文献 y=2:OEIS A019554 y=3:OEIS A019555 y=4:OEIS A053166 y=5:OEIS A015052 y=6:OEIS A015054

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.