Questions tagged «code-golf»

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

3
建立一个程序来分析硬币翻转顺序选择
在我的一本老书中的一个谜题中,定义了一个游戏,其中两个玩家选择掷硬币的顺序,他们认为当硬币被反复掷硬币时,硬币掷序列会首先出现。(实际上掷骰子是奇数,甚至是掷骰子,但是就问题对等而言,这个小细节并不重要。) 注意,如果玩家1选择,TTT而玩家2选择HTT,则该玩家2赢得游戏的机会为7/8,因为唯一的方法TTT可能HTT是前三局都是尾巴。 您的工作是创建一个程序或函数,以推断出两个选定序列之一首先出现的可能性。您的程序将接受两行输入(或两个字符串作为参数),每行代表长度为10或更短的序列: HTT TTT 并以小数或小数形式输出第一个玩家获胜的概率: 7/8 0.875 以任何语言执行此操作的最短代码都会胜出。

6
以QR码输出2015
任务很简单。只需将数字2015输出为QR码并将其写入以newyear.pngPNG格式命名的文件即可。代码必须在任何一天都有效,因此也许您不应该使用当年。 文字的QR码如下所示: # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # …

7
魔术盒问题
您有一个大小为m * n的输入数组。数组中的每个单元格都用P或T填充。对数组唯一可以执行的操作是翻转列。翻转列时,该列的所有单元格中的字母都会切换(P变为T,反之亦然)。如果具有相同字母(例如PPPP)的行数为“ x”,那么您将得到一个分数。设计一种算法,该算法接受数组并返回解决方案(要翻转的列),以使生成的数组具有最大数量的点。 注意:如果有多个解决方案的得分最高,请选择翻转次数最少的解决方案。例: 输入数组: PPTPP PPTPP PPTTP PPPTT PPPTT 输出: 3 说明: 一种产生最高点的解决方案:翻转列号。3 则原始数组为: PPPPP // 1 point PPPPP // 1 point PPPTP PPTTT PPTTT //Total: 2 points 请注意,也可以翻转第4列和第5列以获得2分,但这需要额外的翻转。 您可以使用任何方便的输入格式来表示二维数组,也可以使用任何两个不同但固定的值来表示P和T。 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。
15 code-golf 

4
10、10、10 ...我希望吗?
前言 当我今天早些时候在射箭900圈时(10头结束时每箭6箭,10头结束时每箭3箭,总共90箭,最高得分900),我想到了这一挑战。 在射箭比赛中(假设您使用FITA提供的目标面孔 [射击的纸张]射击),对于每个箭头,您的最高得分为10。目标面孔包含10或11个直径逐渐减小的环,彼此嵌套。从内圈向外,从10点算到一个点(在11个圈的情况下,存在第二个最里面的圈,记为“ X”,得分为10,但在打破平局的情况下使用:较高的值)。观察: 当然,我指的是FITA度量标准评分,如上图所示。如果仔细观察,您可能会看到最里面的环,它是一条淡淡的虚线,其分数未标记。那就是我所指的“ X”,但是除非您争夺奖金,否则您不必理会。 挑战 创建一个函数(或完整程序,如果该语言不支持该函数),则接收一个完美的正方形图像作为输入(或图像文件名,如果需要的话),其中包含一定数量的绿色(十六进制#00FF00,RGB(0, 255,0))点的大小,并返回分数。图像中可能包含绿点以外的数据,但绿色始终是完全相同的阴影。 您可能会想像正方形图像代表目标脸,最外面的环在4个点(顶部中心,底部中心,右中心,左中心)接触。所表示的目标面部将始终具有相同的比例,所有环的宽度都恰好是输入目标图像宽度的1/20。例如,给定输入尺寸为400px x 400px的输入图像,您可以假定每个环的内部宽度均为20px,如下所示: 澄清说明 如果触摸两个单独的环,则计算两个环中的较高者 您无需自动解决未命中或“ x”的情况,除非尝试获得奖金 您可以假设没有绿色圆圈重叠 您还可以假设图像中没有其他那种绿色阴影的像素 图片将采用PNG,JPEG或PPM格式(您可以选择) 如果在发布此问题之前进行创作,则允许使用外部图像处理库 您可以假设一个目标上的所有绿色圆圈的直径相同 如果拍摄(哈哈)重叠的圆圈奖励,则可以假设图像中至少一个圆圈没有另一个重叠的圆圈 不允许出现标准漏洞 测试用例 以下两种情况应分别获得52分(或在奖金为52分时有1个“ x”和1个未中): 最后一个测试用例应得分25: 奖金 如果还返回未命中数(在任何环之外),则为-25个字节 如果您还返回Xs的量,则为-30个字节(假设最里面的x是图像宽度的3/100,然后10是图像宽度的2/100。1-9的比例保持不变) 如果您考虑重叠的圆圈,则字节计数为-35% 这是代码高尔夫球,因此最少的字节获胜。玩得开心!

11
构造图
在此挑战中,您的任务是根据一系列指令构造一个无向图。每个非负整数都有一个指令,并且每个指令都会将给定的图转换为新的图。 指令0:添加一个新的断开连接的节点。 指令1:添加一个新节点,并将其连接到每个现有节点。 伪指令m > 1:删除度(邻居数)可被整除的所有节点m。请注意,0所有m节点都可以将其整除,因此始终会删除断开连接的节点。 从空图开始,指令从左到右一一应用。例如,[0,1,0,1,0,1,3]使用令人敬畏的ASCII技术对序列进行如下处理。我们从空图开始,并按照的指示添加一个顶点0: a 然后,按照的指示添加另一个顶点并将其连接到第一个顶点1: a--b 我们按照0和的指示添加另一个断开连接的顶点,然后添加一个连接的顶点1: a--b c \ \ / `--d 我们重复这一次,作为导演0和1: ,--f--e / /|\ a--b | c \ \|/ `--d 最后,按照以下指示删除3级顶点a和:b3 f--e |\ | c |/ d 这是由序列定义的图[0,1,0,1,0,1,3]。 输入值 非负整数列表,代表指令序列。 输出量 序列定义的图中的节点数。 测试用例 [] -> 0 [5] -> 0 [0,0,0,11] -> 0 [0,1,0,1,0,1,3] …

1
射线追踪闪亮的球体
我下载了POV-ray,并渲染了这种有光泽的90年代金属球体样式: 您的任务是做同样的事情,但要通过自己以尽可能少的字节实现渲染引擎来实现。您不必复制此精确图像-只要符合以下条件,无穷棋盘上方反射球的任何图像都可以。 规则: 该图像必须描绘出一个悬在无限棋盘上方的反射球体。图像本身必须同时显示棋盘本身及其在球体中的反射。必须在视觉上清楚地知道这就是我们所看到的。除此之外,几何形状,颜色,材料属性等的详细信息取决于您。 场景中必须有一些照明:球体的某些部分应该比其他部分更暗,并且在视觉上应该可以大致分辨出光线的来源。除此之外,照明模型的细节由您决定。(如果愿意,可以发明自己的简化照明模型。)球体不必投射阴影。 以上两个标准-是否真的看起来像是被光源照亮的棋盘上方的发光球-将由社区使用投票进行判断。因此,答案必须有一个积极的分数,才有资格获胜。 输出必须至少为300x300像素。可以将其显示在屏幕上或写入文件,也可以。 您的代码应该在一台合理的现代计算机上运行不到一个小时。(这很慷慨-POV射线实际上是在瞬间渲染上述场景。) 不能使用内置的光线跟踪功能-您必须自己实现渲染器。 这是code-golf,因此具有最短代码(以字节为单位)的正得分条目将获胜。但是,也欢迎您玩一幅通过画一幅漂亮的图画来获得最多选票的元游戏(同时当然要使代码尽量简短)。 这个挑战看似很难,但由于几何形状是固定的,因此通过光线跟踪渲染这种场景的算法非常简单。这实际上只是在输出图像中的每个像素上进行迭代并评估数学表达式以查看其应为哪种颜色的情况,因此,我很乐意看到一些好的答案。

4
伪造预测
新的天气预报超级计算机已经到货,并且不起作用。 同时,您的老板希望您通过伪造每日风向图来花一些时间来购买技术人员。 您的任务是绘制代表风向的箭头网格。 网格为: 由15像素的正方形瓷砖组成 8瓦乘8瓦 总计120像素见方 000背景 每个网格图块都有8个可能的方向,代表风向: 北 东北 东 东南 南 西南 西方 西北 必须将其描述如下: N NE E SE S SW W NW 地图必须逐渐变化,以便可信。 这意味着每个图块可能仅与它的邻居相差一个步骤。特别: 一个图块只能与四个相邻图块中的每一个相差一个增量或减量。(或3个用于边砖,2个用于边砖)。 例如,与邻居E相邻的图块可以是NE,E或SE(假设它与其他邻居一致)。 方向可以回绕,即N-> NW和NW->N。 为了说明这一点,以下映射是有效的: NW N NE NE NE NE NE NE N NE NE NE NE NE NE E NE …

6
绘制同心ASCII六边形
编写尽可能短的程序,该程序采用一组不同的正整数,并输出由斜线,下划线,空格和换行符组成的具有那些边长的同心六边形的ASCII渲染。 以https://mothereff.in/byte-counter计数的最短程序(以字节为单位)获胜。 例子 (它们看起来更好,行距更少。) 如果输入为1输出,则应为边长为1的六边形: __ / \ \__/ 请注意,六边形的顶部和底部使用两个下划线,因此比例更好。 通常,大小为N的六边形在每个倾斜的侧面上包含N个斜杠,并且在顶部和底部上均包含2 * N下划线。 如果输入为1 2输出,则应为边长为1和2的同心六边形: ____ / __ \ / / \ \ \ \__/ / \____/ 如果输入是1 3输出,则应为: ______ / \ / __ \ / / \ \ \ \__/ / \ / \______/ 如果输入是1 3 2输出,则应为: ______ / …

4
链上的数字
可以显示一些正整数具有称为链可除性的属性。对于要被n整除的数字 ,它必须满足三个要求: 每个数字除以由 n个 数字数字。 例如,该数目是7143链被2整除,因为7划分114和分歧43.据不连锁被3整除,因为7不划分143。 考虑到可除性的每个子序列都不能有前导零。 例如,数字14208不能被2整除,因为08具有前导零。但是,它可以被3整除,因为208没有前导零。 数字中的所有数字必须唯一。 例如,数字14280可被2、3和4链除。如果我对链可除性的解释不清楚,请在评论中提出问题。 输入值 程序的输入包含一个整数n,后跟一个空格,然后是一个已将某些数字替换为下划线的数字。例如,以下是可能的输入: 3 6__2__4508 n将大于1。该数字永远不会完全下划线。您不能保证第一位不是下划线。第一个数字将永远不会为0。Ñ永远不会大于或等于在号码位数。 输出量 输出数字,并用整数替换数字,以使所得数字可被n整除。如果存在不止一种完成链可分割数的方法,则任何一种都可以用作输出。如果没有数字可以完成,请输出no answer。例如,示例输入的输出可能是: 6132794508 这是代码高尔夫球,所以最短的代码获胜。
15 code-golf  math 

16
Shortlex中的那个数字是多少?
大多数计算机以二进制形式存储整数,但以十进制形式输出它们。但是,十进制只是一种表示形式,我们碰巧发现它很方便。 挑战是编写一些代码以shortlex十进制输出整数值。 那是什么? http://en.wikipedia.org/wiki/Shortlex_order Shortlex将数字序列的长度作为值的主要指示符。该序列从代表零的空字符串开始,为... ε,0,1,...,8,9,00,01,...98,99,000,001,...,998,999,0000,... (请考虑使用Excel列,但仅使用十进制数字。) 如上所述,编写一个程序或函数,该程序或函数接受一个整数并返回与该整数的shortlex小数表示形式相对应的字符串。 测试值: 0→“”(空字符串) 1→“ 0” 10→“ 9” 11→“ 00” 42→“ 31” 100→“ 89” 800→“ 689” 1060→“ 949” 10270→“ 9159” 100501→ “ 89390”
15 code-golf  number 

5
ASCII架构师
您不想为昂贵的体系结构程序花钱,因此决定自己动手做。您决定使用ASCII设计建筑物。您的程序将采用以特定方式设置格式的单个字符串,并且程序将输出建筑物。 输入值 输入由单行字符组成。可以假定它仅包含字母a-j,数字1-9,符号-和+。 输出说明 对于每个字母a-j,程序将输出一条垂直线,如下所示。我们将其称为一列。 . .. ... **** ***** ****** ------- -------- +++++++++ ++++++++++ abcdefghij 例如,输入abcdefgfedefghgfedc将输出: . * *** *** ***** ***** ******* --------------- ----------------- ++++++++++++++++++ +++++++++++++++++++ 字母可以以正整数为前缀n,这将n在列下方添加空格字符。我们将其称为偏移量。例如,使用S注解空格,输入3b2b3b将输出: + + +++ S+S SSS SSS 字母也可以加上负整数作为前缀-m,这将删除列的底部m 非空白字符(不将其替换为空白,而是将其完全删除)。我们称其为片。例如,输入-1j-2j-3j-4j-5j-6j-7j-8j将输出: . .. ... *... **... ***... -***... --***... +--***.. 可以将偏移量和切片应用于同一行,但是偏移量必须先行。换句话说,字母可以以开头n-m,其中n偏移量m的大小是切片的大小。例如,使用S注解空格,输入“ 2-4j”将输出: . . …

3
每个字符多少个字符?
在http://shakespeare.mit.edu/上,您可以在一页上找到莎士比亚戏剧的全文(例如Hamlet)。 编写一个脚本,该脚本接收来自stdin的剧本的URL,例如http://shakespeare.mit.edu/hamlet/full.html,并输出每个与stdout对话的剧本字符的文本字符数,并根据谁进行排序说话最多。 戏剧/场景/动作标题显然不算作对话,角色名称也不算。斜体文本和[方括号文本]不是实际的对话,因此不应计算在内。对话中的空格和其他标点符号应计算在内。 (尽管我没有看全部,但是剧本的格式看起来非常一致。请告诉我是否忽略了任何内容。您的剧本不一定适合这首诗。) 例 这是Much Ado About Nothing中的模拟部分,以显示我期望的输出: 什么都不做 场景0。 信使 我会。 美丽 做。 莱昂纳托 你永远不会。 美丽 没有。 预期产量: LEONATO 15 Messenger 7 BEATRICE 6 计分 这是代码高尔夫。以字节为单位的最小程序将获胜。

9
编写程序以验证Erdős–Straus猜想
编写程序,以验证Erdős-Straus猜想。 程序应该采取作为输入一个整数n(3 <= n <= 1 000 000),并打印三重身份满足整数4/n = 1/x + 1/y + 1/z,0 < x < y < z。 最短的代码获胜。 一些例子: 3 => {1, 4, 12} 4 => {2, 3, 6} 5 => {2, 4, 20} 1009 => {253, 85096, 1974822872} 999983 => {249996, 249991750069, 62495875102311369754692} 1000000 => {500000, …

7
计算手机按键
您的任务是计算在旧手机上输入给定文本所需的按键总数。 键映射为: 1:1 2:abcABC2 3:defDEF3 4:ghiGHI4 5:jklJKL5 6:mnoMNO6 7:pqrsPQRS7 8:tuvTUV8 9:wxyzWXYZ9 0:<space><newline>0 要输入exaMPle TExt 01,您将33 99 2 6666 77777 555 33 0 8888 33333 99 8 0 <a 1-sec pause here in real life but we'll ignore it>000 1总共按下37次按键。 该*键将显示一个特殊字符映射: .,'?! "-()@ /:_;+ &%*=< >£€$¥ ¤[]{} \~^¡¿ §#|` 并.突出显示第一个()。您可以使用矩形导航键移动以突出显示所需的字符,然后再次按下该键即可选择。 因此,要插入$,您将按,*↓↓↓↓→→→<select>即总共9次按键。 …
15 code-golf 

11
在您的答案上方输出答案
编写一个程序,<code>...</code>当按投票对答案进行排序时,该程序输出该问题的答案的第一个HTML 块的内容,该内容就在您的问题上方。Top!如果您是最佳答案,请输出。 忽略投票否定或没有<code>...</code>标签的答案。程序的源代码必须出现在<code>...</code>帖子的第一块中。当您use backticks或 indent things with 4 spaces. 这是代码高尔夫球,用最少的字符赢得的答案。 附加规则(已更新) 以您想要的任何编程语言进行回答,但是如果您多次回​​答,则使用不同的语言。 您可能没有对输出进行硬编码。您的程序正常运行的能力不应取决于它的投票数或上面的答案是什么。如果投票分配发生了巨大变化,您的程序仍应正确输出其上方答案的代码。 你可能通过答案的某些独特属性(例如用户名(如果只有一个答案)或答案的直接链接)对程序进行硬编码,以便在该页面上自行搜索(以便查找下一个最高的名称)。 如果两个答案的票数相等,您仍应使用高于您的答案(我相信它将是最新的)。 您<code>...</code>的答案中可能有多个块,但第一个必须包含程序的源代码。
15 code-golf 

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.