Questions tagged «code-golf»

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

30
验证随机模具自卸车
差不多六年前,老乡PPCG成员steenslag 发布以下挑战: 在标准骰子(骰子)中,数字的排列方式是使相对的面数增加到七个。用您喜欢的语言编写尽可能最短的程序,该程序输出一个随机抛出,然后输出9个随机小费。翻斗是骰子的四分之一转,例如,如果骰子面向5,则所有可能的翻斗都是1,3,4和6。 所需输出示例: 1532131356 因此,既然每个人都完全忘记了它,并且获胜的答案早已被接受,我们将编写一个程序来验证由提交的解决方案生成的模具翻转序列。(这很有道理。假装确实如此。) 挑战 系统会为您的程序或函数 指定一个序列,例如1532131356。验证每个连续数字为: 不等于前一位 不等于7减去前一位数字 (您不必验证第一位数字。) 规则 如果输入有效,则程序必须返回真实值,否则返回假值。 您可以假设输入仅包含1-6位数字,并且至少包含1个字符。序列不会像Steenslag的挑战那样具有固定的长度。 您可以将输入作为字符串("324324"),数组或类似数组的数据结构([1,3,5])或多个参数(yourFunction(1,2,4))。 标准I / O和漏洞规则适用。 测试用例 特鲁西 1353531414 3132124215 4142124136 46 4264626313135414154 6 2642156451212623232354621262412315654626212421451351563264123656353126413154124151545145146535351323 5414142 虚假 重复数字 11 3132124225 6423126354214136312144245354241324231415135454535141512135141323542451231236354513265426114231536245 553141454631 14265411 模具的相对面 16 42123523545426464236231321 61362462636351 62362462636361

30
Notcalc(计算错误的答案)
目标: 给定两个自然数(整数从0到无穷大),输出一个不是这些数之和的数字,而是一个自然数。 解决方案示例(TI基础): A+B+1 not(A+B) 无效的解决方案: A+B-1(对于输入0,0,它返回-1,这是不自然的) "ABC"(ABC不是数字) 笔记: 输出必须始终是两个自然数之和(实际上只是一个自然数) -1,undefined,infinity,NaN和错误消息不自然数。就我们的目的而言,0是自然的(尽管并非所有数学家都同意)。

24
取消重复字符串
介绍 让我们观察以下字符串: AABBCCDDEFFGG 您会看到每个字母都重复了,除了字母E。那意味着这封信E已经被删除了。因此,我们唯一需要做的就是逆转该过程,这为我们提供了以下未重复数据删除的字符串: AABBCCDDEEFFGG 让我们举一个更困难的例子: AAAABBBCCCCDD 您会看到连续B的数量不均匀,这意味着其中一个BB已从原始字符串中删除了重复数据。我们只需要取消重复这封信,就可以给我们: AAAABBBBCCCCDD 挑战 给定一个非空的重复数据删除字符串,该字符串仅包含字母字符(仅大写或小写),则返回未重复数据删除的字符串。您可以假定字符串中始终至少有一个重复数据删除字符。 测试用例 AAABBBCCCCDDDD --> AAAABBBBCCCCDDDD HEY --> HHEEYY AAAAAAA --> AAAAAAAA N --> NN OOQQO --> OOQQOO ABBB --> AABBBB ABBA --> AABBAA 这是代码高尔夫球,因此以字节为单位的最短有效提交将获胜!
33 code-golf  string 

9
画一些山峰
编写一个程序或函数来绘制山脉,在该山脉中,每个随后的较大山峰都在前面的“后面”,并交替显示哪一侧。 这是山脉的大小 1 /\ 这是山脉的大小 2 /\ /\ \ 这是山脉的大小 3 /\ / /\ / /\ \ 这是山脉的大小 4 /\ /\ \ / /\ \ / /\ \ \ 这是山脉的大小 5 /\ / /\ / /\ \ / / /\ \ / / /\ \ \ 等等。 输入项 任何方便格式的一个正整数,n > …

9
我真的很想要菱形,但是我得到的只是这个愚蠢的矩形
仅给出一条直尺和一个罗盘,在给定的矩形内刻一个菱形,共享两个相对的点。 输入项 输入是矩形的尺寸。在所示的示例中,该值为125, 50。您可以采用最方便的方式进行输入(如两个整数,列表,字符串等)。 较大的尺寸最小为100,而较小的尺寸最小为25。两者的上限均为200。 输出量 输出将是图像(显示在屏幕上或保存为文件),显示 输入矩形 所有“工作”线/圆 铭刻的菱形 以不同的颜色。在上图中,矩形为黑色,工作线为蓝色,菱形为橙色。线条应按照列表中显示的顺序绘制(例如菱形覆盖工作线和矩形)。 输出图像必须足够大以包含所有内容。例如,显示的圆圈不能超出范围。 方法 上面的示例图像中使用的方法是: 以左下角为中心,右上角为周长上的点绘制一个圆,其半径等于矩形的对角线。 进行相同的操作,但交换中心点和外围点。 在两个圆的交点之间画一条线,为矩形的对角线提供一个垂直平分线。 使用新线和矩形的交点绘制菱形。 之所以起作用,是因为菱形的内部对角线始终彼此垂直平分。不过,我这里没有提供完整的证明。 这不是获得菱形的唯一方法,并且可以在解释您正在做的事情的同时使用另一种方法。我相信这可能是最简单的。 规则 您只能绘制圆和直线(或直线段)。用中心点和周边点定义一个圆。一条线由任意两点定义。线不必具有任何指定的长度,但是它们必须至少覆盖定义点(请注意示例图像:线稍微越过圆交点,但不越过边缘)。对于圆,从中心到所选周边点的半径被视为一条工作线,必须显示。 要对线条进行栅格化,可以使用任何公认的算法(例如Bresenham算法),也可以依赖于您的语言可能具有的任何内置函数。如果您的输出是基于矢量的,请确保以至少与输入矩形(以像素为单位)一样大的分辨率显示。另外,您将在普通画布上绘画,因此请禁止显示任何网格标记或无关的输出。 别作弊!您只能使用到目前为止建立的内容来确定点/线/圆的位置。如果您无法解释如何使用工作线/圆来显示它是菱形,那说明您做错了。 您可以使用任意一对相对的点,并且只要输出正确,就不需要将矩形绘制为与轴对齐。 输入将始终是非正方形的矩形,因此不必担心会出现特殊情况。 最后,这是标准代码高尔夫,因此以字节为单位的最小大小获胜。

19
找到第n个素数,使得素数-1被n整除
问题 目的是按照标题所说的那样找到第n个素数,使得素数-1被n整除。 说明 这是一个示例,因此您可以理解问题,这不一定是应该解决的方法。它仅是解释问题的一种方式 给定3作为输入,我们将首先查看所有素数 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 ... 然后我们选择素数,使得素数-1可被n整除(在这种情况下为3) 7 13 19 31 37 43 61 67 73 79 97 103 107 109 127 ... 然后,我们按此顺序选择第n个项 我们将输入19输入3 注意 我们还可以将其视为序列{1,n + 1,2n + 1,3n +1 ... …

14
走话!
以我的拙见,标准文本很无聊。因此,我提出了一个新的写作标准,走路的话! 走路的话 步行词是会响应某些字符的词。出于此挑战的目的,触发字符[u, d, r, l]来自up down right left。 在打印文本时,只要遇到这样的字符,都将移动文本的方向。 例如,该文本abcdef将导致: abcd e f 规则 大写UDRL和小写udrl都应更改方向,但应在输出中保留大小写 输入将仅包含可打印字符(0-9, A-Z, a-z, !@#%^&*() etc...),没有换行符! 每当文本发生冲突时,它将覆盖该位置的旧字符 输出应该以任何时髦的方式呈现给用户,但它应该是单个输出(无行阵列) 允许尾随换行符 允许尾随空格 适用标准漏洞 测试用例 empty input => empty output or a newline u => u abc => abc abcd => abcd abcde => abcd e abcdde => …

14
毕达哥拉斯三重序列
甲毕达哥拉斯三重由三个正整数a,b和c,使得2 + B 2 = C 2。这样的三元组通常写为(a,b,c),众所周知的例子是(3,4,5)。如果(a,b,c)是毕达哥拉斯三元组,那么对于任何正整数k,(ka,kb,kc)也是。原始毕达哥拉斯三元组是a,b和c为互质的三元组。 利用这些知识,我们可以通过将最小长度的三元组链接在一起来创建一个序列,其中序列中的下一个元素是最小的勾股毕生哥三元组的斜边(最大数量),其中前一个元素是其长度中的最小元素。 从最小的原始毕达哥拉斯三元组(3、4、5)开始。序列以开头3,斜边(序列中的下一个元素)为5。然后找到最小的原始毕达哥拉斯三重5腿,然后得到(5,12,13)。因此序列继续13。 永远输出该序列,或采用整数输入n并输出n该序列的第一个元素(零或一个索引)。 您需要至少通过和包括支持输出28455997,但是如果您正在使用的数据类型的限制突然升高,则需要为该新限制工作。因此,您不能对数字列表进行硬编码。 3 5 13 85 157 12325 90733 2449525 28455997 295742792965 171480834409967437 656310093705697045 1616599508725767821225590944157 4461691012090851100342993272805 115366949386695884000892071602798585632943213 12002377162350258332845595301471273220420939451301220405 OEIS A239381 相似的序列(不输出这些!): A018928 A077034(奇数词)

1
垫片编织-画一个Sierpiński结
给定一个整数N> = 2,产生一个图像,该图像显示度数为N的Sierpiński结。 例如,以下是2、3、4和5级的结: 单击图像以查看完整尺寸(度数越高,图像越大)。 规格 使用N度的Sierpiński三角形的顶点作为引导点绘制N度的Sierpiński结。N度的Sierpiński三角形是排列成较大三角形的三个N-1度的Sierpiński三角形。0度的Sierpiński三角形是等边三角形。 最小的三角形组成部分的边长为64,这使Sierpiński三角形的结长以 外部三角形的中心位于图像的中心。这在顶部和底部没有相等的空格。 输出是边长为的正方形图像,其中是ceiling(x),大于或等于x的最小整数。当三角形的中心位于图像的中心时,此大小足够大,足以将基础Sierpiński三角形的顶部顶点包含在图像中。 单个曲线必须在其上方和下方通过,并严格交替。解决方案可以在上下限之间选择,也可以在上下限之间选择。 示例图像显示黑色前景和白色背景。您可以选择任何两种容易区分的颜色。允许抗锯齿,但不是必需的。 在两个圆弧相交处或曲线在其自身上方或下方通过的地方一定不能有间隙。 输出可以是任何光栅格式的图像文件,也可以是包含正确的默认显示尺寸的任何矢量格式的图像文件。如果直接在屏幕上显示,则必须采用一种允许滚动的形式,以便在大于屏幕时查看完整图像。 确定圆弧中心,半径和厚度 结由一系列圆弧构成,这些圆弧在切线平行的点相交,从而实现无缝连接。这些弧显示为环形扇形(具有厚度的弧)。 这些弧的中心是最小的倒置三角形的顶点。每个这样的顶点都是一个弧的中心。 每个弧的半径为 唯一的例外是,三个最外面的三角形(在大三角形的拐角处)的弧线的中心是两个相邻内部顶点的中点,因此半径为 每个圆弧的总厚度(内半径和外半径之差)为,并且其黑色边框的厚度均为。曲线必须具有这些边框,而不仅仅是实心条。 计量单位 所有距离均以像素为单位(1是2个相邻像素之间的水平或垂直距离)。 3的平方根必须精确到7个有效数字。也就是说,您的计算必须等同于使用ROOT3,这样1.7320505 <= ROOT3 < 1.7320515 计分 以字节为单位的最短代码获胜。 对于那些想知道的人,不包括N = 0和N = 1,因为它们对应于一个圆和一个三叶形,这与适用于N> = 2的模式不太匹配。我希望应对这种挑战的大多数方法都需要为0和1添加特殊情况代码,因此我决定省略它们。

30
让我们减少单调
...但是嘿,不必太严格。 给定严格正整数的非空数组,请确定其是否为: 单调严格减少。这意味着每个条目都严格小于上一个条目。 单调不增加,但不严格减少。这意味着每个条目都小于或等于前一个条目,并且该数组不属于上述类别。 以上都不是。 请注意以下特殊情况: 具有单个数字的数组是单调严格递减的(很明显如此)。 重复相同编号的数组是单调非递增的,但不是严格递减的。 规则 您可以提供程序或功能 输入可以采用任何合理的格式:数组,列表,数字用空格分隔的字符串,... 您可以分别为三个类别选择任何三个一致的输出。例如,输出可以是数字0,1,2; 或字符串1 1,1 0空字符串。 以字节为单位的最短代码获胜 测试用例 单调严格递减: 7 5 4 3 1 42 41 5 单调不增加,但不严格减少: 27 19 19 10 3 6 4 2 2 2 9 9 9 9 以上都不是: 1 2 3 2 10 9 8 7 …

18
查找pi的第n个小数
已经有30个专门针对pi的挑战,但是没有一个挑战要求您找到第n个小数,因此... 挑战 对于0 <= n <= 10000显示范围内的任何整数,pi的第n个小数。 规则 小数点后的每个数字 3. 您的程序可能是功能,也可能是完整程序 您必须以10为底输出结果 您可以n从任何合适的输入方法(stdin,input(),函数参数等)获得,但不进行硬编码 如果您选择的语言是本机语言,则可以使用基于1的索引 你不必处理无效的输入(n == -1,n == 'a'或n == 1.5) 允许内置,如果它们支持至少 10k小数 运行时无关紧要,因为这是最短的代码,而不是最快的代码 这是代码高尔夫球,以字节为单位的最短代码获胜 测试用例 f(0) == 1 f(1) == 4 // for 1-indexed languages f(1) == 1 f(2) == 1 // for 1-indexed languages f(2) == 4 f(3) …
33 code-golf  math  pi 

21
模拟按键
您的工作是模拟用户键入的几次击键。 输入项 您选择的分隔符(在32-126范围之外)的字符串数组或字符串,其中至少包含一个“击键”。 该数组仅包含两种类型的字符串:被动击键(单个字符)和命令(括号内的字符[ ])。 被动击键 ASCII字符代码 [32-126] 命令: [B] :退格键(如果有一个,删除最后一个添加的字符) [C] :复制所有已写的内容 [D] :删除所有已写的内容 [P] :粘贴已复制的内容 输出量 击键产生的字符串。 例子 ['H', 'e', 'l', 'l', 'o'] -> 'Hello' ['H', 'e', 'l', 'l', 'o', ' ', '[C]', '[P]'] -> 'Hello Hello ' ['[D]', 'D', '[B]'] -> '' ['H', '[C]', 'i', '[P]', '[C]', …
33 code-golf  string 

18
数字键的骑士数字
对于标准小键盘上的非零数字 789 456 123 考虑将一个国际象棋骑士放置在任何数字上,并以任意数量的正常L形跳动来移动它,找出正的十进制整数。用这种方式可以表示哪些正整数? 其中之一是38,因为骑士可以从3那里开始,然后向左和向上移动8。381并且383也是可能的。 3如果不进行跳转(允许),则它本身是可能的。5也是,但是从不能到达其他数字5,因此它是5出现该数字的唯一数字。 编写一个程序或函数,该程序或函数需要一个正的十进制整数(如果需要,可以将其作为字符串),并且如果该数字可以由骑士在数字小键盘上以上述方式表示,则打印或返回真实值,否则输出一个falsy值。 以字节为单位的最短代码获胜。抢七是较早的答案 例子 真相: 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 18, 38, 61, 81, 294, 349, 381, 383, 729, 767, 38183, 38383, 18349276, 183492761, 618349276 虚假: 10, 11, 50, 53, 55, 65, 95, 100, 180, 182, 184, 185, 186, …

24
这是Loeschian号码吗?
正整数k是Loeschian数,如果 k可以表示i*i + j*j + i*j为i,j整数。 例如,第一正Loeschian号码为:1(i=1,j=0); 3(i=j=1); 4(i=2,j=0); 7(i=2,j=1); 9(i=-3,j=3); ...注意i,j对于给定k的不是唯一的。例如,9也可以与产生的i=3,j=0。 这些数字的其他等效特征是: k可以表示i*i + j*j + i*j为i,j非负整数。(对于每对整数i,j都有一对给出相同值的非负整数k) 有一组k连续的六边形在六边形网格上形成网格化(请参见k = 4和的插图k = 7)。(由于这个属性,这些数字可在移动蜂窝通信网络中找到应用。) 在序列的OEIS页面中查看更多特征。 挑战 给定一个正整数,如果它是Loeschian数,则输出真实结果,否则,则输出虚假结果。 程序或函数应处理(例如不到一分钟)最多达1000或数据类型限制的输入。 代码高尔夫。最短的胜利。 测试用例 以下数字应输出真实结果: 1, 4, 7, 12, 13, 108, 109, 192, 516, 999 以下数字应输出虚假结果: 2, 5, 10, 42, 101, 102, 128, 150, 501, …
33 code-golf  math  number  number-theory  decision-problem  code-golf  kolmogorov-complexity  code-golf  sequence  code-golf  path-finding  chess  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  math  arithmetic  code-golf  code-golf  number  code-golf  geometry  code-golf  math  code-golf  code-golf  kolmogorov-complexity  alphabet  code-golf  regular-expression  hexagonal-grid  king-of-the-hill  path-finding  java  code-golf  string  sorting  code-golf  string  grid  code-challenge  compression  code-golf  random  code-golf  sequence  arithmetic  code-golf  number  grid  tiling  code-golf  tips  code-golf  sequence  number-theory  recursion  code-golf  string  grid  code-golf  math  number  combinatorics  permutations  string  code-challenge  code-golf  sequence  number-theory  subsequence 

30
编写程序以使字符串弹性化
标题中的动词。 编写一个给定输入字符串的程序,该程序将“弹性化”该字符串并输出结果。弹性化字符串的步骤如下: 第一个字符显示一次。第二个字符显示两次。第三个字符显示三次,依此类推。 如您所见,某个字符的重复次数与该字符的索引有关,而不是该字符先前在字符串中出现的次数。 您可以期望只接收可打印的ASCII字符。根据以下链接,这些字符的十进制值为32-126。 例子: Why: Whhyyy SKype: SKKyyyppppeeeee LobbY: LoobbbbbbbYYYYY (请注意,由于第一个b显示了3次,第二个b显示了4次,所以总共有7个b),所以总共有7个b。) A and B: A aaannnnddddd BBBBBBB 最短的字节获胜:)
33 code-golf  string 

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.