Questions tagged «source-layout»

对于涉及源代码的物理布局或物理处理的挑战。

28
矩阵是中心对称的吗?代码也是吗?
定义 甲中心对称矩阵是正方形矩阵是对称的围绕其中心。更严格地说,如果对于任何满足以下关系,则大小为的矩阵是中心对称的: AAAn×nn×nn \times ni,j∈([1,n]∩Z)i,j∈([1,n]∩Z)i,\: j \in ([1, n] \cap \mathbb{Z})Ai,j=An+1−i,n+1−jAi,j=An+1−i,n+1−jA_{i,\:j}=A_{n+1-i,\:n+1-j} 此类矩阵的示例 这是这样的矩阵的对称性的图示(从上述Wikipedia文章中借来): 偶数边长( ×)的中心对称矩阵:4×44×44\times 4 ⎛⎝⎜⎜⎜1584267337624851⎞⎠⎟⎟⎟(1234567887654321)\left(\begin{matrix} 1 & 2 & 3 & 4 \\ 5 & 6 & 7 & 8 \\ 8 & 7 & 6 & 5 \\ 4 & 3 & 2 & 1\end{matrix}\right) 还有一个奇数边长():3×33×33\times 3 …

18
启动代码
输入值 对此挑战没有投入 挑战 编写一个输出以下代码的代码: 前10个质数,它们的数字之和等于代码的字节数 例子 假设您的代码是Co&%423@k"oo",这是13 bytes 您的代码必须输出的[67, 139, 157, 193, 229, 283, 337, 373, 409, 463] 那些是前10个质数的总和。。。 如果您的代码是8 bytes,则必须输出[17, 53, 71, 107, 233, 251, 431, 503, 521, 701] 规则 您只能使用前10个8质数 ,这意味着您所有的数字都必须小于2038074743 = 10 8个质数 如果在此范围内找不到10个适合字节的质数,则必须调整代码(甚至可能需要添加一些字节!)才能找到“ 有效字节数 ” 只需以您喜欢的任何方式输出10个素数 这是代码高尔夫球,所以最短的代码以字节为单位!

24
双重时间不是双重时间
基于这一挑战。 在节奏游戏osu中!,难度修改器“两次”实际上只能将速度提高50%。 您的任务是编写一个输出正偶数(大于0)的程序,当源代码中的每个字节/字符(您选择的哪个)重复时,它应输出乘以1.5的数字。 例如,如果您的源代码是ABC,并且输出6,AABBCC则应输出9。 遵循原始挑战的规则: 规则 您必须构建一个完整的程序。 初始源必须至少为1个字节长。 两个整数都必须以10为底(禁止以其他任何底数或以科学计数法输出)。 您的程序不得接受输入(或具有未使用的空输入),并且不得引发任何错误(编译器警告不视为错误)。 允许输出带有尾随/前导空格的整数。 您可能不会在源副本之间使用换行符。 这是代码高尔夫球,因此每种语言中最少的字节都是成功的! 默认漏洞适用。 我想这将比最初的挑战要简单得多,但是希望我们会看到一些创造性和独特的答案!

5
字母,数字,符号,空格,重复
人们经常会遇到97个ASCII字符。它们分为四类: 字母(共52个) ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 数字或数字(共10个) 0123456789 符号和标点符号(共32个) !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ 空格(共3个) 空格 ,制表符\t和换行符\n。(我们会将换行符\r\n视为一个字符。) 为简洁起见,我们将这些类别分别称为L,N,S和W。 选择LNSW您想要的字母的24个排列中的任意一个,然后无限重复,以形成自己的编程模板。 例如,您可以选择permutation NLWS,因此您的编程模板为: NLWSNLWSNLWSNLWSNLWS... 您需要基于此模板编写程序或函数,其中: 每个L字母都替换为任何字母(ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz)。 每个数字N都替换为任何数字(0123456789)。 每个S符号均替换为任何符号(!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~)。 每个W都将替换为任何空格字符( \t\n)。 基本上,您的代码必须遵循以下模式 <letter><number><symbol><whitespace><letter><number><symbol><whitespace>... 如问题标题所建议的那样,除非您可以根据需要选择四个字符类别的不同顺序。 注意: 类别的替换可以是不同的字符。例如,9a ^8B\t~7c\n]有效地符合模板NLWSNLWSNLWS(\t和\n将它们的字面字符)。 没有代码长度限制。例如1A +2B -and 1A +2B和1A and 1都符合模板NLWSNLWSNLWS...。 符合模板的代码必须执行的操作是接受一个未扩展的ASCII字符,并根据其在上述分类中所属于的类别,输出一个介于0到4之间的数字。也就是说,1如果输入是字母,2数字,3符号和4空格,则输出。输出0如果输入是没有这些(一个控制字符)。 对于输入,您可以选择输入0到127之间的一个数字(包括0和127),代表输入ASCII字符的代码。 您的代码必须具有的输入(作为char代码)和输出对如下所示: in out 0 0 1 0 2 0 3 0 4 0 5 …

30
我反转了源代码,您否定了输入!
公然敲竹杠一个的敲竹杠。去投票那些! 您的任务(如果希望接受)是编写一个程序/函数,该程序输出/返回其整数输入/参数。棘手的部分是,如果我反转源代码,则输出必须是取反的原始整数。 例子 假设您的源代码为ABC,其输入为4。如果我CBA改为编写并运行它,则输出必须为-4。 假设您的源代码为ABC,其输入为-2。如果我CBA改为编写并运行它,则输出必须为2。 输入的0可能为0或-0,但是,如果您确实支持带符号的零,-0则应为0。

17
隐藏的倒置(警察线程)
这是一个警察和强盗的谜题,可以在这里找到强盗的线索。 您的任务将是两个编写两个程序(或函数),使它们彼此相似,并且一个与另一个相反。这些程序可以接受并输出任意数量的整数或复数。如果选择以数字作为字符点或任何其他合理的方式,则必须在答案中指出自己正在这样做。如果选择限制功能域,则还必须在答案中指出限制域。 然后,您将以答案的形式展示第一个程序,其中隐藏了左反函数供强盗查找。 所示程序必须实现一个内射函数(否则将不可能存在隐藏的答案)。 如果您的答案在一周内没有被破解,则可以显示隐藏的答案并将其标记为安全。安全答案不能被强盗破解,并且可以无限期保持不变。 目标是创建最短的未破解答案(以字节为单位)。 例 您可以显示以下python程序,将其添加到输入中 lambda x:~-x 解决方案可能是: lambda x:-~x 这从输入中减去一个

9
蛇化字符串
修饰后的字符串如下所示: T AnE eOf ifi ing h s x l A k e r isI amp Sna dSt 你的任务 取一个字符串s和一个size n,然后输出连串的字符串。输入ThisIsAnExampleOfaSnakifiedString和3将产生上面的示例。 技术指标 s 只会在代码点33和126之间(含端点)包含ASCII字符(不包含空格或换行符)。 s 长度在1到100个字符之间。 n是一个整数,代表每个输出字符串段的大小。组成“蛇”中曲线的每一行字符(上/下或左/右)都是n字符长。有关示例,请参见测试用例。 n 介于3到10之间(含3和10)。 输出字符串始终开始指向下方。 每行上都可以使用尾随空格。 在输出末尾也可以尾随换行符。 不允许前导空格。 code-golf表示以字节为单位的最短代码获胜。 测试用例 a 3 a ---------- Hello,World! 3 H Wor e , l llo d! ---------- ProgrammingPuzzlesAndCodeGolf …
35 code-golf  string  ascii-art  code-golf  code-golf  string  balanced-string  decision-problem  code-golf  string  geometry  grid  code-golf  tips  lisp  code-golf  quine  tips  king-of-the-hill  code-challenge  math  code-golf  string  palindrome  math  fastest-code  code-golf  string  counting  code-golf  code-golf  internet  code-golf  quine  source-layout  hello-world  code-golf  math  number  sequence  arithmetic  code-golf  ascii-art  grid  code-golf  number  grid  code-golf  string  crossword  code-golf  code-golf  ascii-art  grid  counting  code-golf  code-golf  math  sequence  arithmetic  number-theory  code-golf  code-golf  graphical-output  geometry  random  code-golf  ascii-art  grid  counting  code-golf  string  ascii-art  code-challenge  test-battery  code-golf  string  code-golf  ascii-art  kolmogorov-complexity  code-golf  interpreter  code-golf  math  sequence  code-golf  math  primes  set-partitions  code-golf 

18
Jumblers vs Rebuilders:用俄罗斯方块砖编码
在传统的俄罗斯方块中,有7种不同的tetromino砖,每个砖都用与其形状相似的字母表示。 # # # # # ## # # ### ## ## # ## ## ## # ## ## I O L J T Z S 考虑对于一些正整数W和H,这些砖的排列方式可以形成一个实心的W×H矩形。例如,使用2个I,1个L,1个J,2个T和1个S,一个7×4矩形可以被制成: IIIITTT LIIIITJ LTTTSSJ LLTSSJJ 可以将相同的积木重新排列(通过移动和旋转,但不能翻转)为不同的7×4模式: IJJTLLI IJTTTLI IJSSTLI ISSTTTI 现在考虑使用矩形代码块代替第一种排列。例如,Python 3的以下7×4位将打印Tetris到stdout: p=print x='Tet' y='ris' p(x+y)# 根据第一个俄罗斯方块安排,它的7个“砖”是... x ' int y ' ='r is …

11
自我修改相乘
...至少对于“自我修改”的某种定义 任务 在此挑战中,您的任务是编写三个字符串A,B并且C满足以下属性。 字符串的B长度至少为1。 对于每种n ≥ 0,字符串都是您选择的编程语言中的有效程序(表示完整的可运行程序或函数定义)。上标表示的重复,因此,这意味着字符串,,,等。每一个程序需要一个字符串作为输入,并返回一个串作为输出。ABnCACABCABBCABBBC 对于任何m, n ≥ 0程序,如果程序使用输入运行,它将返回。对于非这种形式的输入,程序可能会执行任何操作,包括崩溃。ABmCABnCABm*n+1C 格式program(input) -> output如下: AC(AC) -> ABC ABC(AC) -> ABC ABBBBBC(AC) -> ABC AC(ABC) -> ABC AC(ABBBBC) -> ABC ABC(ABC) -> ABBC ABBC(ABC) -> ABBBC ABBBBC(ABBBC) -> ABBBBBBBBBBBBBC ABBBC(ABBBBBBC) -> ABBBBBBBBBBBBBBBBBBBC 规则和计分 你的分数是总长度A和C较低的分数更好。请注意,虽然B不计入分数,但它必须由A和生成,C如第一个示例中所示。 不允许出现标准漏洞。不允许程序直接或间接访问其自己的源代码(除非将它们作为输入提供)。您需要识别字符串A,B并C以某种方式在您的答案中,并鼓励您解释您的解决方案。

3
编程Tetris块(从字面上看)
在游戏方块,有7种类型的砖或的TETR 我 minoes,其在数学上被称为的TetR ö minoes,因为它们都与4个平方段制成: 具有名称I,J,L,O,S,T和Z,它们对应于它们的近似形状。计算90°旋转时,总共有19种独特的形状: I I I I IIII J J JJ JJJ J JJ J J J JJJ L L LL L LLL LL L L LLL L OO OO SS SS S SS S TTT T T TT T T TTT T TT T ZZ ZZ …

20
图和地面
资料来源:维基百科 对于这个挑战,您应该编写两个程序,它们类似于上述图像的图形和背景,以便其中一个可以打印figure,而另一个可以打印ground。特别: 编写一个无需输入并打印字符串的程序figure。程序中唯一允许的空格字符是空格(代码点0x20)和换行符(回车,0x0D,换行符,0x0A或两者的组合)。 忽略换行符,空格字符(代码点0x20)和非空格字符的数量必须相同。例如,这将是有效的程序(使用假设的语言): ab c d e f 请注意,第一行上有一个尾随空格。 如果将第n个空格字符与第n个非空白字符交换,则应打印程序ground。对于上面的示例,程序将如下所示: a b cde f 请注意在第二和第三行上有尾随空格。 无论是人物和地面的解决方案应该是在打印到标准输出相同的语言充分的程序。在任何一种情况下,您都可以打印一个可选的尾随换行符。只要STDOUT是正确的,您就可以向STDERR输出任何您想要的东西。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 辅助脚本 您可以使用此CJam脚本在图形和地面程序之间进行转换。只需将两者之一粘贴到“ 输入”字段中并运行程序。它还将告诉您空格和非空格的数量是否不匹配。 排行榜 显示代码段 function answersUrl(a){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+a+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(a,b){return"http://api.stackexchange.com/2.2/answers/"+b.join(";")+"/comments?page="+a+"&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(a){answers.push.apply(answers,a.items),answers_hash=[],answer_ids=[],a.items.forEach(function(a){a.comments=[];var b=+a.share_link.match(/\d+/);answer_ids.push(b),answers_hash[b]=a}),a.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(a){a.items.forEach(function(a){a.owner.user_id===OVERRIDE_USER&&answers_hash[a.post_id].comments.push(a)}),a.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(a){return a.owner.display_name}function process(){var a=[];answers.forEach(function(b){var c=b.body;b.comments.forEach(function(a){OVERRIDE_REG.test(a.body)&&(c="<h1>"+a.body.replace(OVERRIDE_REG,"")+"</h1>")});var d=c.match(SCORE_REG);d?a.push({user:getAuthorName(b),size:+d[2],language:d[1],link:b.share_link}):console.log(c)}),a.sort(function(a,b){var c=a.size,d=b.size;return c-d});var b={},c=1,d=null,e=1;a.forEach(function(a){a.size!=d&&(e=c),d=a.size,++c;var f=jQuery("#answer-template").html();f=f.replace("{{PLACE}}",e+".").replace("{{NAME}}",a.user).replace("{{LANGUAGE}}",a.language).replace("{{SIZE}}",a.size).replace("{{LINK}}",a.link),f=jQuery(f),jQuery("#answers").append(f);var g=a.language;g=jQuery("<a>"+g+"</a>").text(),b[g]=b[g]||{lang:a.language,lang_raw:g,user:a.user,size:a.size,link:a.link}});var f=[];for(var g in b)b.hasOwnProperty(g)&&f.push(b[g]);f.sort(function(a,b){return a.lang_raw.toLowerCase()>b.lang_raw.toLowerCase()?1:a.lang_raw.toLowerCase()<b.lang_raw.toLowerCase()?-1:0});for(var h=0;h<f.length;++h){var i=jQuery("#language-template").html(),g=f[h];i=i.replace("{{LANGUAGE}}",g.lang).replace("{{NAME}}",g.user).replace("{{SIZE}}",g.size).replace("{{LINK}}",g.link),i=jQuery(i),jQuery("#languages").append(i)}}var QUESTION_ID=101275,ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",OVERRIDE_USER=8478,answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,<]*(?:<(?:[^\n>]*>[^\n<]*<\/[^\n>]*>)[^\n,<]*)*),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i; …

9
一百个密码
我有一百个保险库,每个保险库都在另一个保险库中。每个保管库都有一个密码,该密码由一个数字组成。 95 43 81 89 56 89 57 67 7 45 34 34 78 88 14 40 81 23 26 78 46 8 96 11 28 3 74 6 23 89 54 37 6 99 45 1 45 87 80 12 92 20 49 72 9 92 15 76 13 …

29
按自己的方式加倍
涉及源代码加倍的挑战很多:here和here。我们在这里要做的任务比较艰巨,但是应该可以用几乎所有语言来完成。 在此挑战中,您将输入一个任意正整数。你的程序必须输出整数一倍。当源代码加倍时,它将接受一个正整数,并将其输出为squared。 您的源代码如何增加一倍?好吧,你可以按照自己的方式去做。也就是说,你可以分割你的源代码成字节或字符的字符串(或标记化LANGS令牌)的任何等于你想要的长度,并且连续重复每个块的两倍。 对于初始程序ABCDEFGHIJKL,(长度为12),以下是所有可能的加倍程序: Chunk length | Doubled source code -------------+------------------------- 1 | AABBCCDDEEFFGGHHIIJJKKLL 2 | ABABCDCDEFEFGHGHIJIJKLKL 3 | ABCABCDEFDEFGHIGHIJKLJKL 4 | ABCDABCDEFGHEFGHIJKLIJKL 6 | ABCDEFABCDEFGHIJKLGHIJKL 12 | ABCDEFGHIJKLABCDEFGHIJKL 请注意,这意味着素数长度的程序只能以两种方式加倍:每个字符加倍,或者整个程序重复两次。 规则: 代码必须是完整的程序或功能。 禁止出现标准漏洞。 允许使用标准I / O方法。 所有字符/字节(包括空格和换行符)都计入代码的长度,并有助于组成块。 您可以假设输入及其平方可以由您语言的int / integer类型表示。 您可能不假定尾随换行符或其他字符。 在字节数后的标题中提供块大小。 这是代码高尔夫,所以程序越短越好!如果两个程序的长度相同,则使用较小块长度的程序将获胜。(如果您有一个较长的程序,而该程序使用的块长度较小,那也值得发布!) 如果您的程序需要第二个输入/行,则可以不对其值进行任何假设。特别是,如果第二个输入为空,与第一个输入相同或为另一个整数,则您的程序应该可以工作。如果您的程序不需要第二个输入/行,则可以忽略此限制。 沙盒链接

7
我们忘记了什么?
您的任务是编写一个由一些字节序列组成的非空计算机程序。如果我们在程序中选择一个特定的字节并将其所有实例从程序中删除,则修改后的程序应输出删除的字节。 例如,如果我们的程序是 aabacba 然后bcb将输出a,aaaca将需要输出b并且aababa将输出c。 未经修改的程序做什么无关紧要。 答案将以字节计分,目标是最大程度地减少字节数。

23
我转置源代码,您转置输入!
敲竹杠一个的敲竹杠一个的敲竹杠一个的敲竹杠。去投票那些! 您的任务(如果希望接受)是编写一个程序/函数,该程序输出/返回其输入/参数¹。棘手的部分是,如果我转置您的源代码²,那么输出/结果也必须转置。 您可以选择解决方案可以接受的2D数据类型。例如,列表列表,矩阵,字符串列表等。说明要处理的列表。您可以假设输入将始终为矩形,并且每个尺寸的长度为1或更大。 为了进行转置,源代码中的短行将被视为用尾随空格填充,直到它变成矩形为止,但是,这些尾随空格不会影响您的代码长度。 由于这是代码高尔夫,因此目标是优化原始源代码(而不是转置版本)的字节数。 例子 假设您的解决方案采用数字矩阵,而您的源代码为 AB DEF 其输入/参数为[[1,2],[3,4],[5,6]]。如果我写 AD BE F 而是运行它,输出/结果必须为[[1,3,5],[2,4,6]]。 假设您的解决方案采用换行符分隔的字符串,而您的源代码为 ABC 其输入/参数为"96\n"。如果我写 A B C 而是运行它,输出/结果必须为"9\n6\n"。

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.