Questions tagged «code-golf»

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

11
编写程序以显示目录树屋
C:/从stdin或从文件读取的给定目录(例如)产生目录树,每个文件/文件夹根据其深度缩进。 例 如果我有一个C:/驱动器只包含两个文件夹foo和bar,和bar是空的,而foo含有baz.txt,那么在运行的输入C:/产生: C:/ bar/ foo/ baz.txt 输入运行时会C:/foo/产生 foo/ baz.txt 因为这是codegolf,所以最低字节数为准。文件扩展名(例如baz.txt)是可选的。附加说明:隐藏的文件可以忽略,目录必须实际存在,可以假定文件不包含不可打印的字符或换行符,但所有其他可打印的ASCII字符都很好(必须支持带空格的文件名)。可以将输出写入文件或标准输出。缩进可以由制表符或4个空格组成。

6
图像的反向拜耳滤波器
几乎所有的数码相机传感器都组织在一个光电传感器网格中。每个光电传感器都对三种原色之一敏感:红色,绿色和蓝色。这些光传感器的组织方式被称为拜耳滤镜,其发明者伊士曼·柯达(Eastman Kodak)的布莱斯·拜耳(Bryce Bayer)。拍摄图像后,四个光电传感器组成最终图像中一个像素的RGB值。您的任务是反转该过程,并根据其像素的滤镜颜色为其着色。为了简单起见,我们将忽略伽马校正。 例如:“常规”正向拜耳过滤器步骤为: 潘通蜂蜡色的光线照射到传感器上; BGGR(蓝-绿/绿-红)滤镜将其分解为四射线。 四个光线照射到传感器上,显示为:81-168/168-235(传感器值范围为0-255); 拜耳滤镜将其转换为一个具有颜色(235、168、81)的RGB像素。 反向拜耳过滤器步骤为: 颜色(235、168、81)的RGB像素被分为四个具有RGB值的像素:(0,0,81)-(0,168,0)/(0,168,0)-(235,0,0)。 挑战 您应该编写执行以下操作的最短函数或程序: 像输入一样获取文件名,然后输出DeBayered图像。 输出可以写入文件或显示在屏幕上。 输出必须是原始图像宽度的两倍和高度的两倍。 输入图像的每个像素必须根据BGGR(蓝-绿/绿-红)Bayer滤镜模式进行映射,如下图所示: 我们假设两个绿色光电传感器都接收到相同的信号,因此拜耳矩阵中的两个G值都等于RGB图像中的G值。 您可能不会返回结果图像的数组表示形式。输出必须是可以显示为图像的图像或文件(任何合适的图像格式)。 例 给定此文件作为输入: 生成的图像应为: 参考python实现: from PIL import Image import numpy import sys if len(sys.argv) == 1: print "Usage: python DeByer.py <<image_filename>>" sys.exit() # Open image and put it in a numpy array …

5
填充2D网格
挑战说明 让我们将其称为二维矩形数组(意味着其每个子数组具有相同的长度),即grid。网格的每个单元都是空白或边框。在字符网格中,空白由单个空格表示;其他任何字符均视为边框。样本网格(为了便于阅读而添加了+,,|和-,它们不属于网格): +----+ | | | | | | | | | | +----+ an empty 4x5 grid +------+ | | | # | | # | +------+ a 6x3 grid with 2 borders +----------+ | | | | | ##### | | # # | | ## # <------ …

2
这是Bub。并非世界一流的足球运动员
这是巴布。Bub是一位足球运动员。但是,他不是一个好人。他仍然无法将球踢入网中!(如果您没有注意到,那@就是球。 _____ | \ O | \ \|/ | \ | | net \ / ─ @ |_________\ 为了帮助他提高技能,他开发了一个系统来评估他踢球时的表现。他称其为“ 10分制”。 但是,他不知道要达到x分数需要做什么。您需要帮助他可视化球的位置,以便他可以设定他想要获得多少分的期望。他每回合可以取得10分。 因此,这是您的挑战。 给定数字x,Bub得到的点数输出球在场上的位置。以下是一些有用的标记: Bub距网路正好50个空格。 对于Bub到达的每个点,球都会向网移动5个距离。因此,如果巴布得到3分,则球距网35球。 Bub每获得3分,球就开始向空中移动!它向上移动了一个空间。 如果Bub获得的点数会将球移动到球网后面,则可以将球放在球网内的任何位置。 请记住,您需要绘制Bub,球和球网。 为了帮助您入门,请参考以下示例: 点数:5 _____ | \ O | \ \|/ | \ | @ | \ / ─ |_________\ 适用标准规则。字节数最少的代码胜出!打高尔夫球快乐!

9
弗雷德的水费单
弗雷德(Fred)是一个准友善的人,但实际上他是卑鄙的。 因此,弗雷德一个人住在加利福尼亚洛斯阿尔托斯的一间小公寓里。弗雷德之所以如此刻薄,是因为他对水非常专一。因此,他需要您的帮助来弄清自己的水费单。 您的工作是编写一个函数或程序,该函数或程序在给定用作输入水的量(始终为整数)的情况下返回其水费账单。 耗水量是分层的。这意味着价格取决于水的数量。 这些是其对应的等级,价格和水量: Tier I First 10 Ccf: $3.8476/Ccf Tier II Next 17 Ccf: $4.0932/Ccf Tier III All subsequent water: $4.9118/Ccf 对于n百立方英尺(Ccf),也有以下附加费用: CPUC fee: 1.5% of above charges LIRA quantity surcharge: $0.047*n PBOP amoritization surcharge: $0.004*n 第一层,第二层,第三层,CPUC,LIRA和PBOP费用之和为总水费。您应该将此金额返回或打印到控制台,并四舍五入到小数点后两位。 这是两个示例: Input: 15 ... Calculations which you do not need to …
9 code-golf  math 

6
索引总和并去除我的矩阵
索引总和并去除我的矩阵 给定您喜欢的语言的matrix / 2d数组 输入: 矩阵将始终具有奇数长度 矩阵将永远是完美的正方形 矩阵值可以是您语言中的任何整数(正数或负数) 例: 1 2 3 4 5 6 7 2 3 4 5 6 7 8 3 4 50 6 7 8 9 4 5 6 100 8 9 10 5 6 7 8 -9 10 11 6 7 8 9 10 11 …

10
边缘导数
我首选的近似导数的方法是中心差,它比前向差或后向差更准确,而且我也懒于进行高阶运算。但是,中心差异要求您要评估的点的任一侧都有一个数据点。通常,这意味着您最终在两个端点上都没有导数。为了解决这个问题,我希望您在边缘切换到前进和后退差异: 具体来说,我希望您对第一个点使用正向差异,对最后一个点使用向后差异,对中间的所有点使用中心差异。另外,您可以假设x值是均匀间隔的,并且只关注y。使用以下公式: 祝您好运,我很期待看到有人提出一个简单的规则,该规则可以在正确的位置复制所有3个导数! EX输入: 0.034 9.62 8.885 3.477 2.38 我将使用FD,CD和BD表示在哪个点使用哪种算法,因此使用5个以上的点来近似使用 FD CD CD CD BD 然后计算出的值将是: 9.586 4.4255 -3.0715 -3.2525 -1.097 您可以假设始终至少有3个输入点,并且可以使用单精度或双精度进行计算。 和往常一样,最短的答案是成功的。
9 code-golf  math 

13
从Rgb到Cmyk
给定3字节或RGB作为输入,计算最接近的CMYK值并输出。 创建带有参数和返回值的函数或在stdin / stdout上运行的程序 使用您选择的颜色配置文件,但提供参考 输入可以是[0; 255]范围内的单独数值,也可以是6位十六进制字符串 输出应为[0; 1]或[0; 100]范围内的单独数值 标准代号高尔夫:无漏洞,最短代号获胜 欢迎奢侈的想法 样本数据: input output 108,174,106 [0.3793103448275862, 0.0, 0.3908045977011494, 0.3176470588235294] 0,0,0 0,0,0,1 170,255,238 33,0,7,0 0x0088ff 1,0.4667,0,0 [250,235,215] [0,6,14,1.96] #123456 .7907,.3953,0,.6627 未经校准的映射很好,可能是最简单的 无需输入验证;允许使用浮点数(范围从0到255),但也可以四舍五入 输出格式应清晰注释或显而易见;即: 按此顺序的CMYK 百分比[0; 100]或纯数字[0; 1]都无关紧要 测试应包括简单的示例[0,0,0]。 我可以找到这个网站上最多的在线工具。有谁知道提供超过4位数字的工具?

2
复利的反正则表达式
Koronkorko是芬兰的复利一词。我们不希望对字符串产生复合兴趣,因此让我们找到最短的正则表达式以排除它。 给定仅由大写字母字符AZ组成的字符串,如果不包含substring,则确定与该字符串匹配的最短正则表达式KORONKORKO。包含KORONKORKO为子字符串的任何字符串都不应与正则表达式匹配。 只有字符A- ,Z,[,],-,^,,?,*,+,|,(并)应在表达式中使用。 我认为可以使用表达式中的118个字符来完成此操作。你能把它缩短吗? 注意:此挑战来自Ohjelmointiputka(芬兰语)。

1
近似Fransén-Robinson常数
给定一个输入n,输出的值Fransén-罗宾逊常数与n数字的小数点后进行舍入。 规则 您可以假设所有输入都是1到60之间的整数。 您可能不存储任何相关值-必须计算常数,不能调用该常数。 四舍五入必须符合以下条件: 如果最后一位之后的数字小于5,则最后一位必须保持相同。 如果最后一位之后的数字大于或等于5,则最后一位必须加1。 您只能输出前n+1几位。 有标准漏洞。 测试用例 >>> f(0) 3 >>> f(1) 2.8 >>> f(11) 2.80777024203 >>> f(50) 2.80777024202851936522150118655777293230808592093020 >>> f(59) 2.80777024202851936522150118655777293230808592093019829122005 >>> f(60) 2.807770242028519365221501186557772932308085920930198291220055

4
可视化教堂数字
背景 可视化λ微积分项 著名的lambda-juggler(和代码高尔夫球手)John Tromp设计了一个有趣的可视化 λ微积分项。用他的话说: 抽象(lambda)由水平线表示,变量由从其绑定lambda向下发出的垂直线表示,应用程序由连接最左侧变量的水平链接表示。 例如,λ项λf.λx.f(f(f(fx)))对应于可视化: ------------------- | | | | ------------------- | | | | | | | | |---- | | |---- | |---- |---- | 从上到下阅读: 第一水平线代表第一λ。 从它开始的四行代表体内的f s。 类似地,第二条水平线代表第二条λ,从其下降的一条新线代表体内的x。 最右边的f线和x线由代表应用程序(f x)的水平线连接。 下一个应用是[f(f x))等。 教堂数字 在Church数是在λ演算项的特定序列,考虑以下图案: 0 = λf. λx. x 1 = λf. λx. f …

3
简化日期
这类似于简化分数,但带有日期! 程序的输入必须采用以下格式mm/dd : 3/4 //March 4 12/15 //December 15 1/1 // January 1 我们假定输入将是有效的,以使月份中包含以下天数: January 31 February 28 March 31 April 30 May 31 June 30 July 31 August 31 September 30 October 31 November 30 December 31 程序的工作是采用假定的有效输入,并迭代(或递归)简化日期,并在每次迭代(包括第0次)时,输出日期,并带有上面写的月份的全名。 例如: 输入以下内容: 12/18 将输出 December 18 June 9 February 3 已经简化的输入仅输出自身: …

13
计算离散傅立叶变换
对任意长度的序列实施离散傅立叶变换(DFT)。这可以实现为函数或程序,并且序列可以作为参数或使用标准输入给出。 该算法将基于标准DFT向前计算结果。输入序列的长度为N,由组成[x(0), x(1), ..., x(N-1)]。输出序列将具有相同的长度和组成[X(0), X(1), ..., X(N-1)],其中每个X(k)由下面的关系定义。 规则 这是 代码高尔夫球 因此最短的解决方案将获胜。 不允许在向前或向后(也称为反向)方向上计算DFT的内建函数。 浮点数错误将不算在您身上。 测试用例 DFT([1, 1, 1, 1]) = [4, 0, 0, 0] DFT([1, 0, 2, 0, 3, 0, 4, 0]) = [10, -2+2j, -2, -2-2j, 10, -2+2j, -2, -2-2j] DFT([1, 2, 3, 4, 5]) = [15, -2.5+3.44j, -2.5+0.81j, …
9 code-golf  math 

1
双游程编码
每个人都知道游程长度编码是什么。它已经成为许多代码高尔夫球挑战的主题。我们将研究某些变化。 例 Normal: 11222222222222222222233333111111111112333322 Run-length: 112(19)3(5)1(11)2333322 括号中的数字指定上一个符号出现的次数。在该示例中,仅对5个或更多字符的运行进行编码。这是因为4或更少的编码运行不会改善字符数。 挑战 编写一个实现行程编码这种变化形式的函数/程序,但也可以对两个符号的行程进行编码。两个符号的行也必须用括号括起来。组也将括在括号中。您的程序必须接受一个字符串作为输入,并输出经过修改的字符串并带有缩短该字符串的修改。 例 Normal: 111244411144411144411167676767222222277777222222277777123123123123 Double run-length: 1112((444111)(3))67676767((2(7)7(5))(2))123123123123 笔记 111未编码,因为对其进行编码(1(3))并不短。 该字符串444111出现3次,因此被编码。 676767未编码,因为((67)(4))比以前更长。 222222277777222222277777未编码为((222222277777)(2))。为什么?因为222222277777本身可以简化为2(7)7(5)。 123123123123 未编码,因为您的程序应该处理两个符号而不是三个符号。 这是 代码高尔夫球所以最短的代码胜出。决胜局是提早提交的。 如果我错过了任何事情,或者您不确定任何事情,请在评论中通知我。

16
两组相等吗
{}是空集。您可以使用,()也[]可以选择使用。 我们不会严格定义“集合”,但是集合都满足以下属性: 集合遵循通常的数学结构。以下是一些要点: 集不排序。 没有集合包含自身。 元素是否在集合中,这是布尔值。因此,集合元素不能具有多重性(即,一个元素不能多次出现在集合中。) 集合的元素也是集合,并且{}是唯一的原始元素。 任务 编写确定两个集合是否相等的程序/函数。 输入项 通过stdin或function参数的两个有效集合。输入格式不合理。 一些有效的输入是: {} {{}} {{},{{}}} {{{{{},{{}}}}}} {{},{{},{{}}}} {{{},{{}}},{{{{{},{{}}}}}}} 输入无效: {{} {} Brackets will always be balanced. {{},{}} {} Set contains the same element twice 输出量 如果输入相等,则为真实值,否则为假。 测试用例 您的提交应正确回答所有有效输入,而不仅仅是测试用例。这些可以随时更新。 真相: {} {} {{},{{}}} {{{}},{}} {{},{{},{{{}},{}}}} {{{{},{{}}},{}},{}} 虚假: {} {{}} {{},{{},{{{}},{}}}} {{{{}}},{},{{}}} …

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.