Questions tagged «code-golf»

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

13
预报回文日期
回文日期是显示为回文日期的日期:数字字符串的读取方式可以与向前相同。对于北美日期格式(MM / DD / YYYY),接下来的几个回文日期是: 02/02/2020 12/02/2021 03/02/2030 挑战 创建一个函数,该函数以一致的,通用的日期格式(您选择的)返回所有属于日期范围内的回文日期(编辑:包括范围本身)。 规则 要获得回文资格,仅应检查日期的数字字符。 日期可以采用任何通用格式(MM/DD/YYYY,DD-MM-YYYY),只要它在月份和日期中均使用两位数字,而在年份中则使用4位,并且使用字符来分隔日期的各个部分。输出必须保留字符分隔条件(/,-,等)。您的函数仅需要处理一种不同的日期格式。请在回答中包括格式。 如果返回的日期不止一个,则应将它们用逗号或换行符分隔。 最短答案胜出! 例 date_palindrome('05/02/2050', '12/12/2060') >>>['05/02/2050', '06/02/2060']

30
第二个非重复字符是什么?
基于代码审查中的这个问题 给定一个可打印的ASCII字符的非空字符串,输出第二个非重复字符。例如,对于input DEFD,output F。 输入值 单个字符串,任何合适的格式。 输出量 从左到右读取时,第二个不会重复的字符也将以适当的格式显示。 输出字符不区分大小写。 如果不存在这样的字符(例如,所有字符都重复),则输出一个空字符串。 规则 该算法应忽略大小写。也就是说,D并d算作相同的字符。 完整的程序或功能都是可以接受的。 输入字符串将被保证为非空(即,至少一个字符的长度)。 输入字符串为ASCII。任何有效字符都可以重复,而不仅仅是字母数字(包括空格)。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常见的高​​尔夫规则都适用,并且最短的代码(以字节为单位)获胜。 例子 输入在第一行,输出在第二行。 DEFD F FEED D This is an example input sentence. x ...,,,..,,!@ @ ABCDefgHijklMNOPqrsTuVWxyz B AAAAAABBBBB Thisxthis This this. .

28
bfcat-将文件编码为Brainf ***程序
挑战 编写一个给定字符串的程序或函数,返回一个有效的Brainfuck程序,该程序在作为Brainfuck编译并执行后将返回该字符串。 假设所有输入均编码为ASCII。 假设输出的BF程序将在具有无限磁带的环境中执行。 假定指针从单元格0开始,每个单元格都初始化为零值。 下面的每个示例代表给定输入的一种可能的正确输出。尤其是,这些示例包括额外的换行符和空格,以帮助人类阅读。解决方案可以自由地以任何方式格式化输出的BF代码。 磁带是双重无限的。 解释器提供的所有单元都是8位单元。上溢和下溢围绕着可预测且理智的问题。 例子 空格串 给定输入,您的程序/函数可能返回: +++++ +++++ +++++ +++++ +++++ +++++ ++ . 感叹号 给定输入!,您的程序/函数可能返回: +++++ +++++ +++++ +++++ +++++ +++++ +++ . 两个字母 给定输入hi,您的程序/函数可能返回: +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++ …

27
数数,替换,重复!
定义 如下定义CURR序列的第n 个数组。 从单例数组A = [n]开始。 对于A中的每个整数k,用k个自然数替换条目k,从1到k递增。 重复上一步骤n-1次。 例如,如果n = 3,我们从数组[3]开始。 我们替换3用1,2,3,得到[1,2,3] 。 我们现在更换1,2,和3带1 ; 1,2和1,2,3(resp。),产生[ 1,1,2,1,1,2,3 ]。 最后,我们对数组中的所有六个整数执行与上一步相同的替换,得到[ 1,1,1,2,1,1,1,2,1,2,3 ]。这是第三个CURR阵列。 任务 编写一个函数程序,给定严格的正整数n作为输入,该程序将计算第n 个 CURR数组。 输出必须是某种类型的平面列表(以及从函数返回的数组,您语言的数组语法的字符串表示形式,以空格分隔的等)。 这是代码高尔夫球。可能以字节为单位的最短代码获胜! 测试用例 1 -> [1] 2 -> [1, 1, 2] 3 -> [1, 1, 1, 2, 1, 1, 2, 1, 2, 3] 4 -> …

15
g o l f a t 2
有时将笛卡尔坐标转换(x,y)为极坐标确实很费力(r,phi)。虽然你可以计算r = sqrt(x^2+y^2)很容易,你经常计算时的角度需要的情况下有些区别phi,因为arcsin,arccos以及arctan和所有其他三角函数有一个共同域,每个只有跨越半个圆。 在许多语言中,都有用于将直角坐标转换为极坐标的内置atan2函数,或者至少具有给定的(x,y)计算角度的函数phi。 任务 你的任务是写一个程序/功能采用两个(浮点,但不能同时为零)笛卡尔坐标(x,y),并输出对应的极角phi,其中phi必须处于度,弧度或等级(与等级余平均gradians其是1 /整圆的400),以您较方便的为准。 角度是在正方向上测量的,对于,我们有零角度(1,0)。 细节 您不得使用内置插件是计算角度phi给出两个坐标,其中包括atan2,rect2polar,argOfComplexNumber和类似的功能。但是,您可以使用通常的三角函数及其反函数,它们只需一个参数。任何单位符号都是可选的。 半径r必须为非负数,并且phi必须在范围内[-360°, 360°](无论输出270°还是,都无关紧要-90°)。 例子 Input Output (1,1) 45° (0,3) 90° (-1,1) 135° (-5,0) 180° (-2,-2) 225° (0,-1.5) 270° (4,-5) 308.66°
18 code-golf  math  geometry  trigonometry  code-golf  number-theory  fibonacci  code-golf  math  sequence  fibonacci  code-golf  string  code-golf  math  graphical-output  geometry  code-golf  string  code-golf  math  geometry  code-golf  math  bitwise  number  popularity-contest  graphical-output  image-processing  fractal  code-golf  number-theory  code-golf  date  multi-threading  code-golf  math  code-golf  math  number  sequence  code-golf  math  number  sequence  arithmetic  code-golf  decision-problem  logic-gates  code-golf  decision-problem  balanced-string  code-golf  math  arithmetic  combinatorics  code-golf  expression-building  code-golf  physics  code-golf  abstract-algebra  code-golf  number  arithmetic  integer  code-golf  ascii-art  number  code-golf  number-theory  primes  code-golf  arithmetic  grid  code-golf  code-golf  sequence  code-golf  kolmogorov-complexity  compression  code-golf  math  number  arithmetic  array-manipulation  code-golf  primes  hexagonal-grid  complex-numbers  code-golf  number  counting  code-golf  math  number  arithmetic 

4
实施SHA-256
给定一个字节序列,输出该序列的SHA-256哈希值。 SHA-256算法 以下伪代码来自SHA-2的维基百科页面。 Note 1: All variables are 32 bit unsigned integers and addition is calculated modulo 2^32 Note 2: For each round, there is one round constant k[i] and one entry in the message schedule array w[i], 0 ≤ i ≤ 63 Note 3: The compression function uses 8 …

5
约旦分解
重要说明:因为此挑战仅适用于平方矩阵,所以每当我使用术语“矩阵”时,都假设我是指平方矩阵。为了简洁起见,我将省略“方形”描述。 背景 通过使用相似的对角矩阵(一个不在主对角线上的元素为0的元素),可以简化许多与矩阵相关的操作,例如计算行列式,求解线性系统或将标量值函数扩展到矩阵。到原始矩阵(意味着,对于输入矩阵A和对角线矩阵D,存在一些可逆矩阵P,使得D = P^(-1) * A * P;另外,D和A共享一些重要性质,如本征值,决定因素,而迹线)。对于具有不同特征值的矩阵(矩阵的特征多项式的根,通过求解det(A-λI) = 0给出λ,其中I是与相同维的恒等式A),对角化很简单:D是一个矩阵,其特征值在主对角线上,并且P是一个由对应于这些特征值的特征向量组成的矩阵(顺序相同)。这个过程称为本征分解。 但是,具有重复特征值的矩阵不能以这种方式对角线化。幸运的是,任何矩阵的约旦范式都可以很容易地计算出来,并且比常规的对角矩阵难得多。它还具有很好的特性,如果特征值是唯一的,则Jordan分解与特征分解相同。 约旦分解解释 对于A特征值均具有1的几何多重性的方阵,约旦分解的过程可描述如下: 令λ = {λ_1, λ_2, ... λ_n}为A具有多重性的特征值列表,其中重复的特征值连续出现。 创建一个对角矩阵,J其元素是的元素λ,顺序相同。 对于每个多重性大于1 1的特征值,将特征值的每个重复项的右边放在a 的主对角线上J,最后一个除外。 所得矩阵J是的约旦范式A(对于给定矩阵,可以有多个约旦范式,具体取决于特征值的顺序)。 一个可行的例子 设A以下矩阵: A具有多重性的特征值是λ = {1, 2, 4, 4}。通过将它们放入对角矩阵,我们得到以下结果: 接下来,将1s 放在每个重复特征值中的一个之外的所有右边。由于4是唯一重复的特征值,因此我们1在前四个值旁边放置一个: 这是Jordan的正常形式A(单个矩阵可能具有几种有效的Jordan正常形式,但是出于解释的目的,我将详细介绍该细节)。 任务 给定方阵A作为输入,输出有效的Jordan范式A。 输入和输出可以采用任何合理的格式(2D数组/列表/任何形式,列表/阵列/任何列或行向量,内置矩阵数据类型等)。 的元素和特征值A将始终是范围内的整数[-200, 200]。 为了简单起见,所有的特征值将具有1的几何多重性(因此上述过程成立)。 A 最多为10x10矩阵,至少为2x2矩阵。 不允许使用计算特征值和/或特征向量或执行特征分解,Jordan分解或任何其他类型的分解/对角化的内建函数。允许矩阵算术,矩阵求逆和其他矩阵内置函数。 测试用例 [[1, 0], [0, 1]] …

9
来回顺序
想象一下,由一个路径<,并>在结尾的@,如 ><>@ 助行器从最左侧的单元格开始。他将按照以下方式遍历该路径: 如果步行者在@牢房中,则他已达到目标并完成。 如果助行器在>牢房中,则整个路径会周期性地向右移动一步,并随身携带助行器。 如果助行器在<牢房中,则整个路径会周期性地向左移动一步,并随身携带助行器。 然后,步行者迈出一步。如果他在路径的两端,那么他会从一端移开。否则,他会继续朝最后一步移动的方向移动(忽略旋转),最初向右走。 让我们来研究以上示例。步行者的位置标有^: ><>@ --rotate--> @><> ^ ^ step right (first step): @><> --rotate--> ><>@ ^ ^ step right: ><>@ --rotate--> @><> ^ ^ step left (dead end): @><> --rotate--> ><>@ ^ ^ step left: ><>@ --rotate--> @><> ^ ^ step left: @><> Goal reached! …

13
直流打高尔夫球的技巧
您对DC打高尔夫球有哪些一般提示? dc是早于C语言的UNIX / Linux计算器实用程序。我对如何缩短我的直流程序(计算?)感兴趣。我正在寻找可应用于通用代码高尔夫球的想法,这些想法至少特定于dc(例如,删除注释不是有帮助的答案) 请为每个答案发布一个提示。
18 code-golf  tips  dc 

3
最高分
介绍 假设一个字段是一个仅填充字符-和的矩形[0-9]。字段的示例是: 11-011123 111-010-- 0010---01 111-01234 您会看到该字段被分为三个较小的区域: 要计算较小区域的分数,我们只需将所有数字加起来即可。例如: 11 111 0010 111 1 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 1 + 1 + 1 = 9 该地区的总分为9。现在,我们在第二个区域执行相同的操作: 011123 010 0 + 1 + 1 + 1 + 2 + …
18 code-golf  number  grid 

1
数一下ASCII hamantaschen!
今天是普im节(Purim),一种习俗是散发出带有馅料的三角形饼干hamantaschen(单数:hamantasch)。另一种习惯是大量饮酒。 我不是最完美的面包师。。。我有很多不规则尺寸的hamantaschen可供分发,还有很多朋友可以给他们!如果我给您发送了一张我的饼干的照片,您能告诉我我有多少个大小和馅料吗?但是因为是普im节,而且我太醉了,无法阅读太多代码,所以它必须尽可能地小。 定义 尺寸 hamantasch可以是任何大小。最小的hamantasch是1号,看起来像这样: /\ -- -- \/ 有时,多个hamantaschen可能会重叠。以下形状算作两个hamantaschen(一个尺寸1,一个尺寸2): /\ /\ \ ---- 一些hamantaschen 充满了。这将通过用字符填充内部的所有空白来表示。请注意,尺寸1的hamantaschen不能填充。 我们将根据馅料和大小来命名 hamantaschen。让我们使用格式<filling> <size>,如果没有填充,- <size>可以使用空格代替-,但markdown并不是这样)。 这是一个. 2,一个. 4和一个- 3: /\ /./\ ---- /./ \ \../ /./ \ \/ -------- 这些是@ 3,a . 2和a - 4: /\ / /\ /\ / /@@\ /..\ / /@@@@\ ---- …

23
产生奇偶校验位
甲奇偶校验位,是的校验的最简单的形式之一。首先,您必须选择奇偶校验。假设我们选择了偶数。现在,我们需要一条消息来传输。假设我们的信息是“ Foo”。用二进制形式写成: 01000110 01101111 01101111 现在,我们计算其中1的s 的总数为15。由于15是一个奇数,因此我们必须在消息末尾添加一个额外的位,而现在我们将获得偶数个“ on”位。最后添加的位称为“奇偶校验位”。如果我们为校验和选择了奇数奇偶校验,则必须添加一个额外的“ 0”,以便打开位数保持为奇数。 挑战: 您必须编写一个程序或函数来确定字符串的正确奇偶校验位是多少。您的程序必须接受两个输入: 字符串,s。这是将计算校验和的消息。这将仅限于95个可打印的ASCII字符。 一个字符或单个字符串p,将e用于偶校验或o奇校验。 并产生代表正确奇偶校验位的真假值。如果是1,则为True,如果为,则为false 0。 不允许对字符串或字符中的“ on”位数进行计数的内建函数。例如,执行以下操作的函数f:f('a') == 3或被f('foo') == 16禁止。其他任何事情,例如基本转换,都是公平的游戏。 测试IO: (without the quotes) s: "0" p: 'e' output: 0 s: "Foo" p: 'e' output: 1 s: "Hello World!" p: 'o' output: 0 s: "Alex is right" p: 'e' …

6
对字符串进行长度编码
假设我们使用以下规则从另一个字符串中拉出一个字符串,该字符串仅包含ASCII可打印字符,并称为*-string。如果在进程停止之前字符串用完,则表示错误,并且在这种情况下,进程的结果是不确定的: 从...开始 d=1, s="" 每当遇到a时*,乘以d2。每当遇到另一个字符时,将其连接到的末尾s并从中减去1 d。如果现在d=0停止并返回s 定义的例子: d->d 769->7 abcd56->a *abcd56->ab **abcd56->abcd *7*690->769 ***abcdefghij->abcdefgh 未定义的示例:(请注意,空字符串也将是其中之一) *7 **769 *7* *a*b * 您的工作是获取一个字符串并返回*产生该字符串的最短-string。 程式范例: 7->7 a->a ab->*ab abcd->**abcd 769->*7*69 您的程序应处理任何至少包含一个字符且仅包含非*ASCII可打印字符的字符串。您永远不能返回未定义过程的字符串,因为根据定义,它们不能产生任何字符串。 适用标准漏洞和I / O规则。
18 code-golf  string 

3
重构字形矩阵
作为其压缩算法的一部分,JPEG标准沿着交替方向的对角线将矩阵展开为向量: 您的任务是将展开的矢量与矩阵维一起取并重建相应的矩阵。举个例子: [1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3], 4, 3 应该屈服 [1 2 3 4 5 6 7 8 9 1 2 3] 而尺寸6, 2会给 [1 2 6 3 1 2 5 9 4 7 8 3] 规则 您可以选择仅将一个尺寸作为输入。各个输入可以任何顺序进行。您可以假定宽度和高度为正,并且对于给定的矢量长度有效。 您可以假设向量元素是小于的正整数10。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输入向量可以任何方便,明确,平坦的列表或字符串格式给出。 输出矩阵可以是任何方便,明确,嵌套的列表或字符串格式,也可以是带有两个矩阵维的平面列表。(或者,当然,如果您的语言包含矩阵类型,则作为矩阵类型。) 适用标准代码高尔夫球规则。 …

2
城市:景点
我位于无限二维城市的位置(0,0),该城市被完美地分为以每个格点为中心的块,其中一些包含建筑物。某个点(x,y)上的建筑物占据了整个正方形,并且在(x-.5,y-.5)和 (x + .5,y + .5)处具有相对的角,包括边界。如果从(0,0)到建筑物中与其他建筑物不相交的点之间存在某些线段,则可以看到建筑物。 例如,我(@)可以看到*以下城市的6座建筑物(): * * * *@ x** * y 我看不到x在(-1,-1)处标记有的建筑物,因为它被相邻的两个障碍物遮挡了;或所述一个标有y在(3,-2) ,因为它是由边缘阻碍(1,-1)的建筑物。 输入值 多行字符串或行列表,可以选择用空格填充到矩形中。它仅包含: 一个@(我的位置) 空间 *,代表建筑物。 总会有至少一栋建筑物,因此至少有一栋可见的建筑物。 输出量 可见建筑物的数量。 测试用例 *@ 1 * ******* @ * 7 ***** **@** ***** 4 * ** @ ** 2 * * * * @ 4 @ * *** …

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.