Questions tagged «source-layout»

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

4
超编程:N + N,N×N,N ^ N合而为一
编写一个程序,接受N到1到9之间的一个数字。2如果N是1,4如果N是2,6如果N是3,则程序应以其本机形式输出N + NEg输出。 当程序中的每个字符在适当位置被复制,那么它应该是一个程序,在N取(仍从1到9),并输出N×NEG输出1如果N 1,4如果N 2,9如果N 3,等等。 当程序中的每个字符都一式三份时,它应该是一个程序,1如果N为1,4则输入N(仍从1到9),并输出N ^ NEg输出,如果N为2,27如果N为3,387420489如果N为9,等等 不需要9以上的数字,因为10 ^ 10超出了许多语言通常的整数范围。 例 如果您的初始程序是 My_Program! Exit(); 那么它应该能够吸收N并输出N + N。 此外,该程序 MMyy__PPrrooggrraamm!! EExxiitt(());; 应该取N并输出N×N。 最后,程序 MMMyyy___PPPrrrooogggrrraaammm!!! EEExxxiiittt((()));;; 应该取N并输出N ^ N。 不需要四字符程序和其他程序。 规则 输入和输出应为普通格式的十进制数字。您可以使用不同的底数来回答,以炫耀您的代码,但是答案是非竞争性的。 Windows用户可以将其\r\n视为一个字符,因为类似的事情是\r\r\n\n没有意义的,甚至是行不通的。 以字节为单位的最短本机程序(N + N个)获胜。


30
我将源加倍,将输出加倍!
您的任务(如果希望接受)是编写一个输出正整数(大于0)的程序。棘手的部分是,如果我复制源代码,则输出必须是原始整数的两倍。 规则 您必须构建一个完整的程序。也就是说,您的输出必须打印到STDOUT。 初始源必须至少为1个字节长。 两个整数都必须以10为底(禁止以其他任何底数或以科学计数法输出)。 您的程序不得接受输入(或具有未使用的空输入)。 允许输出带有尾随/前导空格的整数。 您可能不会在源副本之间使用换行符。 这是代码高尔夫球,因此每种语言中最短的(原始)代码胜出! 默认漏洞适用。 例 假设您的源代码为,ABC并且其对应的输出为4。如果我ABCABC改为编写并运行它,则输出必须为8。 排行榜 这使用@manatwork的layout。 显示代码段 /* Configuration */ var QUESTION_ID = 132558; // Obtain this from the url // It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe"; var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk"; var OVERRIDE_USER = 8349457; …

30
编写一个始终输出“ 2012”的程序-即使已修改!
这个想法不是我的,尽管我不知道它的起源。很久以前(1998年,如果我没记错的话),我曾经在一次编程竞赛中遇到过它。任务是用您喜欢的语言编写一个2012 仅 输出的程序2012。值得注意的是,程序的2012任何一个字符被修改后,仍然必须输出。修改可以是插入,删除或替换。当然,修改将使该程序在语法上仍然有效。 由于我不懂所有的编程语言,因此我必须请听众帮助我并测试提交的答案。 补充:许多人评论说我对可接受修改的定义太模糊。这是我的第二次尝试:允许的修改将使您的程序在语法上仍然有效,并且不会导致程序崩溃。在那里,我认为应该涵盖所有编译时,链接时和运行时错误。尽管我确信无论如何某种语言都会出现一些奇怪的情况,所以当出现这种情况时,我们将逐一进行研究。

30
您的语言中五个最强大的字符是什么?
选择您的语言支持的任何五个字符。有5个!= 5×4×3×2×1 = 120种方式可以将它们排列成5个字符的字符串,每个字符包含一次;120 个排列。 选择您的字符,以便在使用您的语言运行120个字符串中的每个字符串时,所产生的120个输出将是从1到120(含)之间尽可能多的唯一整数。 也就是说,对于产生可运行代码并输出一个数字的5个字符的120个置换中的每一个,您都希望所有这些数字的集合尽可能与1到120的整数集合匹配。 因此,理想情况下,你的第一个置换将输出1,下2,下3,一路最多120。但是对于大多数语言和字符来说,这种理想可能是不可能的。 5个字符的字符串可以按以下方式运行: 没有输入的程序 没有参数的函数 一个REPL命令 如果需要,可以以不同的方式运行不同的字符串 为了使输出计数,按常规方式,它必须是单个整数输出,例如: 被打印到标准输出 由函数返回 REPL表达式的结果 该代码应正常终止(只要先输出该数字,就可能会出错)。根本不运行的代码很好,只是(不存在的)输出不计算在内。除非您的语言使用其他基数,否则输出的数字应为十进制。 该提交产生了从1到120获胜的最明显的数字。如果出现平局,则较早提交的文件将获胜。 笔记 您的5个字符并不需要都相同,但是,当然,重复的字符会减少排列的有效次数。 浮点输出,例如32.0count以及plain 32。(但32.01不会。) 前导零,例如032count和plain 32。 有效输出应该是确定性的,并且是不变的。 我们正在处理字符,而不是字节。 例 123+*对于Python(或许多语言)的REPL ,字符是合理的首选。产生的120个排列和输出为: 123+* n/a 123*+ n/a 12+3* n/a 12+*3 n/a 12*3+ n/a 12*+3 36 132+* n/a 132*+ n/a 13+2* n/a 13+*2 n/a …

25
打印代码的负数
考虑边长为N的正方形可打印ASCII字符(代码点0x20至0x7E),如下所示(此处N = 6): =\ g \ 7 m+y "g L ~ e> PHq 我们还要求每一行和每一列至少包含1个空格和1个非空格字符。(以上示例满足了此要求。) 我们将这样一个正方形的负数定义为相同大小的正方形,其中每个空间都用一个非空间替换,反之亦然。例如,以下内容将是上述示例的有效否定形式: 1234 a b cd ZYXWV ! {} [ ] ? 非空格字符的选择无关紧要(只要它们在可打印的ASCII范围内)。 挑战 您要编写一个程序,其源代码的边长为N> 1,并向STDOUT打印其自身的负数。尾随空格具有将被打印。您可能会或可能不会打印单个尾随换行符。 普通的规则也适用,因此您不得直接或间接阅读自己的源代码。同样,您不能假定使用REPL环境,该环境会自动打印每个输入表达式的值。 优胜者是最短边长N的程序。如果出现平局,则以源代码中具有最少非空格字符的提交为准。如果仍然有平局,则最早的答案会获胜。

30
从编程难题到代码高尔夫
您的任务是编写一个输出确切字符串的程序Programming Puzzles(可选的换行新行),但是当所有空格,制表符和换行符都被删除时,它的输出Code Golf(可选的换行新行)。 您的字节数是第一个程序的计数,尚有空格。 笔记 在空间Code Golf 和 Programming Puzzles将作为去除的部分被除去,所以相应的计划。 在0x09、0x0A和0x20分别不是制表符,换行符或空格的编码中,这些字符将被删除。 如果您的代码是 42 $@ rw$ @42 然后必须输出Programming Puzzles。而且,用相同的语言 42$@rw$@42 必须输出Code Golf。 这是代码高尔夫球,因此以字节为单位的最短代码胜出!祝好运!

11
错误404:找不到字符
情境 您的一位朋友正在为家庭作业而苦苦挣扎。他需要一个简单的程序来打印前404个自然数: 1 2 3 4 5 6 7 8 9 10 11 ... 401 402 403 404 您的挑战很简单:为他编写此程序。 但是,您的连接很糟糕,因此每次发送程序时都会丢失1个随机字符。为防止这种情况破坏您的程序,您必须使它删除任何单个字符都不会起作用:无论如何,程序都可以工作。(原始程序也必须工作。) 由于连接太差而无法发送大文件,因此您的代码必须尽可能短。 TL:DR-制作防辐射程序以输出数字1至404 规则/细节 输出可以是任何合理格式的整数列表(由空格,换行符,逗号等分隔)。但是,您的输出必须一致,并且在修改程序时不能更改。 禁止包含逻辑,执行实际代码,生成号码列表等的命令行标志。 这是代码高尔夫球,因此最短的提交(以字节为单位)获胜!

30
从较小的“ H”创建一个“ H”
挑战 创建一个函数或程序,当给定整数时size,该函数或程序将执行以下操作: 如果size等于1,则输出 H H HHH H H 如果size大于1,则输出 X X XXX X X X程序/功能的输出在哪里size - 1 (只要您愿意,0只要您在答案中指定,就可以使基本情况与相对应) 可以使用以下任何一种输出格式,以您更方便的方式: 所需结构的字符串,其中任意两个不同的字符分别对应于H和space 具有所需结构的二维数组,其中任意两个不同的值分别对应于H和space 字符串的数组/列表,每个字符串中有一行输出,并且与H和对应的任意两个不同的值space 只要每行上有恒定数量的前导空格,就可以使用前导空格。两个不同的输出字符可以取决于您选择的任何内容,只要它们不同即可。 指定代码返回的输出格式。 测试用例 1 H H HHH H H 2 H H H H HHH HHH H H H H H HH HH H HHHHHHHHH H HH HH …
73 code-golf  ascii-art  fractal  code-golf  code-golf  string  code-golf  string  matrix  code-golf  graph-theory  maze  binary-matrix  code-golf  kolmogorov-complexity  random  code-challenge  metagolf  test-battery  brain-flak  text-processing  code-golf  matrix  code-golf  number-theory  primes  code-golf  string  matrix  code-golf  binary  bitwise  code-golf  number  factorial  floating-point  code-golf  number  sequence  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-golf  string  code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

28
计算Phi(非Pi)
不,我不是说ϕ = 1.618...和π = 3.14159...。我的意思是功能。 φ(x)的是一个整数小于或等于的数量x互质到x。 π(x)是小于或等于的素数x。 假设“非pi”为π̅(x),并将其定义为小于或等于的复合数x。 任务 给定一个严格的正整数x,计算φ(π̅(x))。得分以字节为单位。 例子 每行包括输入(从1到100,包括1和100),以及由空格分隔的相应输出。 1 0 2 0 3 0 4 1 5 1 6 1 7 1 8 2 9 2 10 4 11 4 12 2 13 2 14 6 15 4 16 6 17 6 18 4 19 4 …
73 code-golf  sequence  primes  number-theory  code-golf  decision-problem  code-golf  date  code-golf  typography  code-golf  math  number  multiple-holes  code-golf  quine  code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

7
容错Hello World(又名采访)
面试结束时,邪恶面试官告诉您:“我们让所有申请人进行简短的编码测试,以查看他们是否真的知道自己在说什么。不用担心;这很容易。如果您创建了一个工作程序,我会立即为您提供工作。” 他示意您坐在附近的计算机旁。“您要做的就是创建一个可正常运行的Hello World程序。但是,”-他大笑着说-“有一个陷阱。不幸的是,我们在这台计算机上拥有的唯一编译器存在一个小错误。它会从该计算机中随机删除一个字符。源代码文件,然后再编译。好的,五分钟后见!” 然后他走出房间,开心地吹口哨。 您能保证得到这份工作吗? 任务 编写一个程序,Hello, world!即使从文件中的任何位置删除了单个字符,也可以打印到标准输出。或者尽可能接近这个。 规则 没有多余的输出 - Hello, world!必须是打印到标准输出的唯一实质性内容。如果其他字符是由您选择的语言自然产生的,则可以包含其他字符,例如尾随换行符,甚至类似的字符[1] "Hello, world!"(例如,如果您使用的是R),但每次都必须打印完全相同的字符。 它不能打印Hello, world!Hello, world!或Hello world!" && x==1在某些时候,例如。但是,允许警告。 测试为了测试以确定您的分数,您必须测试程序的每个可能排列:在删除每个字符的情况下对其进行测试,并查看其是否产生正确的输出。为此,我在下面提供了一个简单的Perl程序,该程序应适用于多种语言。如果它对您不起作用,请创建一个测试程序并将其包含在您的答案中。 计分您的分数是程序失败的次数。换句话说,文件中删除字符的各个位置数量使程序无法运行。最低分获胜。如果出现平局,则以最短的代码为准。 诸如"Hello, world!"多种语言(15种分数)之类的简单解决方案是可以接受的,但它们不会赢。我至少找到了一个Perl解决方案,其得分为4,我将最终发布它。 更新: 官方优胜者将使用图灵完备的编程语言,并且不会使用任何预定义的打印机制Hello, world!。所使用的任何外部资源(语言的标准库除外)都被视为程序的一部分,并且会被相同的1个字符删除。 这些要求贴在桌子上的便签纸上。抱歉,如果您最初没有看到它们。 更新2:是的,您的程序必须实际完成上述任务才能获得分数!意味着它应该Hello, world!至少成功打印一次。这应该是显而易见的。命令行开关和其他添加功能的设置也算作程序的一部分,并且必须删除单个字符。该程序必须在没有任何用户输入的情况下完成其任务。编译失败包括在您的失败计数中。 祝您编程愉快,并祝您工作顺利。但是,如果您失败了,您可能还是不想为那个邪恶的老板工作。 Perl测试脚本: use warnings; use strict; my $program = 'test.pl'; my $temp_file = 'corrupt.pl'; my $command = "perl -X …

5
功率编程:O(1 ^ N),O(N ^ 1),O(2 ^ N),O(N ^ 2)合而为一
根据程序的运行方式,编写出表现出四种常见的O大 时间复杂度的程序(或函数)。无论采用哪种形式,都需要一个正整数N,您可以假设它小于2 31。 当程序以其原始形式运行时,它应该具有恒定的复杂性。也就是说,复杂度应为Θ(1)或等效地为Θ(1 ^ N)。 当程序反向运行时,它应该具有线性复杂度。也就是说,复杂度应为Θ(N)或等效地为Θ(N ^ 1)。 (这是有道理的,因为N^1被1^N逆转。) 当程序被加倍,即,级联到本身,并运行它应具有指数复杂性,特别是2 Ñ。也就是说,复杂度应为Θ(2 ^ N)。 (这是有道理的,因为2在2^N是双1中1^N)。 当程序被加倍执行并反转并运行时,它应具有多项式复杂度,尤其是N 2。也就是说,复杂度应为Θ(N ^ 2)。 (这是有道理的,因为N^2被2^N逆转。) 这四种情况是您唯一需要处理的情况。 请注意,为精确起见,我使用大theta(Θ)表示法而不是大O,因为您的程序的运行时必须在上下两方面受所需复杂度的限制。否则,仅在O(1)中编写一个函数就可以满足所有四个点。了解这里的细微差别不是太重要。主要是,如果您的程序针对某个常数k执行k * f(N)运算,则很有可能为Θ(f(N))。 例 如果原始程序是 ABCDE 那么运行它应该花费恒定的时间。也就是说,无论输入N是1还是2147483647(2 31 -1)或两者之间的任何值,它都应在大致相同的时间内终止。 程序的反向版本 EDCBA 应该以N为单位花费线性时间。也就是说,终止所花费的时间应与N大致成比例。因此N = 1花费的时间最少,N = 2147483647花费的时间最多。 该程序的两倍版本 ABCDEABCDE 以N表示,应该花费2到N的时间。也就是说,终止所花费的时间应该大致与2 N成正比。因此,如果N = 1在大约一秒钟内终止,则N = 60将花费比宇宙年龄更长的时间。(不,您不必测试。) 程序的加倍和反转版本 EDCBAEDCBA 应该花费以N为单位的平方时间。也就是说,终止所花费的时间应与N * N大致成比例。因此,如果N …

24
编写一个矩形程序,输出它旋转的次数
标题说明了一切。您的目标是编写一个形成aw×h矩形字符的程序,该程序可以旋转并重新运行以输出已完成的90°逆时针(CCW)旋转数。 例如,如果3×2程序 abc def 解决了该问题,它最初将输出0,并且连续旋转90°CCW cf fed da be cba eb ad fc 将分别输出1、2和3。 对于大多数语言而言,使用注释使这项工作变得微不足道。以Ruby为例,它可以在7×7矩形中完成: ###p### ### ### ###1### p 0#2 p ###3### ### ### ###p### 面临的挑战是在没有任何评论的情况下做到这一点。 计分 您的分数是w * h,即矩形的面积。换行符不包括在内。换句话说,不包括代码高尔夫球,换行符。 Ruby示例的得分为49(尽管由于带有注释,所以当然是无效的)。 笔记 您的代码必须真正是矩形的,行尾不能缺少任何字符。 如果您愿意,可以输出其他合法的“ mod 90°”值而不是0 1 23。因此8可以代替0,而-1可以代替3,依此类推。 输出可能会进入控制台或进入文件。 有标准漏洞。 我希望这是我的第一个问题,确实引起了某些人的兴趣。请享用!

10
小钱德勒很伤心。画他的云,使他振作起来
小钱德勒很伤心。画他的云使他振作起来。 注意:画云实际上不会使他振作起来。 圆可以定义为三元组(x,y,r),其中x是圆在笛卡尔平面上的x位置,是圆在笛卡尔平面y上的y位置以及圆r的半径。x并y可能是负面的。r永远是积极的。输入是以空格分隔的三元组形式的圆的列表。例如: 3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8 的3,1,1意思是“在与中心点的圆3,1与1个半径。3,2,1.5是指”在与中心点的圆3,2用1.5半径。 如果我们在图形上绘制输入的所有这些圆,则看起来像这样(我仅出于清晰起见添加了网格线和标签;它们不是必需的): 注意所有的圆是如何凝聚的。也就是说,它们全部重叠在一起,从而形成一个大的组,而没有其他的小圈子。输入保证是内聚的。 假设现在绘制一条绕这些圆形成的“边界”行进的线,而没有其他任何线。就像绘制所有圆组成的轮廓的边界一样。生成的云看起来像这样: 因此,仅通过在输入中绘制形成边界的圆弧来形成单一形状即可形成此云。换句话说,仅通过绘制不在另一个圆内的圆弧来形成云。您的程序将以上述形式接受输入,并输出显示结果云的图像。云的整体形状必须正确,但是比例,颜色,线条粗细以及在顶点处的外观取决于您。请注意,云必须是可见的,因此您不能拉出类似“此程序在白色背景上绘制白色云”,“此程序以无限小的比例绘制云”,“此程序以0绘制云”之类的内容。线宽”等。还请注意,边框的颜色必须与填充或背景的颜色不同。 另一个例子。输入: 1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7 输出: 如果云中存在“洞”,则也应绘制该洞。输入: 0,5,4 3,4,4 4,3,4 5,0,4 4,-3,4 3,-4,4 0,-5,4 -3,-4,4 -4,-3,4 -5,0,4 -4,3,4 -3,4,4 输出: 这是一条重要规则:您的程序必须仅绘制形成边框的线。这意味着您不能简单地完全绘制圆,然后用白色填充将圆绘制得稍小一些,因为该方法仍会绘制不形成边界的线,之后只会将其覆盖。该规则的目的是防止“绘制圆,然后用白色填充再次绘制圆”的实现或类似的方法。预计答案将在绘制之前实际计算出绘制对象的位置。 这是代码高尔夫球,因此最短的字符数获胜。

24
重要空白
我们将空格定义为三个字符中的任何一个,即制表符(0x09),换行符(0x0A)或空格(0x20)。 为了应对这一挑战,您将使用相同的编程语言编写两个程序或函数,它们将执行以下任务: 计算给定字符串中的空白字符。例如,输入 123 -_- abc def 将返回7(假设没有结尾的换行符)。 在连续的空白处分割给定的字符串。如果字符串以空格开头或结尾,则结尾处不应返回任何空字符串。例如,相同的输入 123 -_- abc def 会回来的["123", "-_-", "abc", "def"]。 无论哪种情况,您都可以通过STDIN,命令行参数或函数参数接受输入,然后返回结果或将其打印为STDOUT。对于第二个程序,如果选择打印到STDOUT,请在每个字符串的一行上打印它们,不要用引号引起来。 对于这两个程序,您都可以假定输入仅包含可打印的ASCII(0x20至0x7E)和空格。 现在是要抓住的地方: 如果从两个程序/功能中都删除了所有空格,则产生的字符串必须相同。也就是说,您的两个提交内容只能在空格字符的数量和位置上有所不同。 程序/函数均不能包含任何字符串或正则表达式文字(如果您的语言具有指定的字符类型,则文字文字可以使用)。 程序/功能均不得包含任何注释。 您不得直接或间接阅读程序的源代码。 这是代码高尔夫。您的分数是两种解决方案的总和(以字节为单位)。最低分获胜。 排行榜 以下Stack Snippet会按语言生成常规排行榜和获胜者概述。因此,即使您选择的语言不能让您赢得全部挑战,为什么不尝试在第二名中夺取一席之地呢?我很高兴看到人们如何以多种语言应对这一挑战! 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N bytes 这里N是总您提交的大小。如果您提高了分数,则可以通过打败旧分数来保持标题。例如: # Ruby, <s>104</s> <s>101</s> 96 bytes 您也可以在总计数之前包括单个计数,例如 # Python 2, 35 + 41 = 76 …

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.