Questions tagged «code-golf»

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

3
期间2反向Quine
您的任务是编写一个程序,以反向输出其自己的源代码。但是,当运行反向代码时,应以正确的方向输出源代码。 例 说你的程序是abc。运行时,应输出cba。cba,运行时应输出abc。 规则 您的程序应遵循适当的规则的所有规则(输出源代码除外)。回文禁止。 随机说明:我知道这一点,但是我相信这个挑战是不同的,因为转换后的代码必须具有相同的属性。
10 code-golf  quine 

4
X代表现场–打印作业
给定两个数字,请在指定位置(±10%)上打印带有“ X”的页面。 这些数字必须是百分比或页面的打印区域尺寸的分数,例如[25,75]或["15%","0%"]或[0.33,1]。您不必考虑边距。只要记住声明哪个数字是宽度,哪个数字是高度,以及哪个角是原点即可。 您当然可以假设已连接打印机,并且任何虚拟打印机也都可以计数。实际上,您可能想在开始此挑战之前将PDF打印机设置为默认打印机。 您可以创建一个可打印的文件(例如PDF),然后将其发送到虚拟打印机,后者又会创建您的结果PDF,但您可能不会直接创建最终的PDF。这必须是正确的打印作业。 如果可能,请提供结果的照片,扫描结果或屏幕截图,或链接到在线文档。请注意,Imgur接受PDF。 如果您实际放置一个X而不是使用假定的字体和纸张尺寸输出换行符和空格,那么您当然会获得更多的好评。 例 对于左上角输入的高度75%和宽度25%,打印以下文档:

5
查找用户的SE信誉
挑战 给定SE用户的ID,从用户已注册的所有Stack Exchange网络中输出其信誉总和。 规则 如果用户在站点上的信誉不超过101,则将其总计为零。 您不应该算出51区代表或隐藏社区! 不允许使用URL缩短器。 例子 可调整的 用户3244989(测试版衰减) 14141 用户918086(Dennis) 204892 用户11683(Jon Skeet) 1029180 获奖 以字节为单位的最短代码获胜。

1
C#二进制数的第一个1(从右到左)
我正在尝试使用C#在数字的二进制表示形式中找到第一个1(从右到左)的索引。例如,由于二进制中的100为: 0b1100100 第一个1在右边的第三位置,因此它应该产生3。 234应该产生2,0应该产生0,依此类推。 这是我当前的解决方案: k < 1 ? 0 :(int)Math.Log(k & -k, 2) + 1; 有什么办法可以缩短它的时间?
10 code-golf  tips  binary  c# 

1
最短的python A + B程序,带有输入和输出
你们当中有些人可能会说我在浪费时间,但是这项任务并没有给我带来500天以上的和平。需要使用Python 3.x编写一个程序,该程序将两个数字作为输入并显示其总和。数字以以下格式给出: a b 一些示例测试用例: 100 500 -> 600 3 4 -> 7 代码长度通过公式max(没有空格,制表符或换行符的代码长度,代码长度/ 4)计算得出。我只知道2个解决方案,每个解决方案都有36个字符的长度: print(sum(map(int, input().split()))) 和: print(eval(input().replace(' ', '+'))) 我也知道,存在的解决方案的长度为34个符号。您可以在此网站上进行检查。
10 code-golf  tips  python 

3
二元解算器
介绍 拼图规则: 谜题Binary(也称为Takuzu或Subiku)很容易理解,并且只有几个规则: 由于游戏的名称是二进制,所以很明显,但是只能填充零和一。 同一数字最多只能垂直或水平相邻 每行和每一列必须包含相等数量的零和一(这意味着每个二进制游戏都将始终具有偶数维)。 可能没有重复的行,也没有重复的列(零和一的顺序完全相同)。 如果愿意,可以在www.binarypuzzle.com上玩游戏。 策略: 根据规则1,在以下情况下,我们始终可以填充数字: -同一位数字中已有两个彼此垂直或水平相邻,在这种情况下,我们可以在两侧填充相对的数字。即.11...→ 0110..。 -在垂直或水平方向上有两个相同的数字,它们之间只有一个间隙。即.1.1..→.101.. 根据规则1,当剩下三个空格并且我们不能有三个相邻的相同数字时,我们可以填充其中一个空格。即.0.1.0→ 10.1.0(我们仍然必须填写两个,而且中间不能有三个相邻的,所以第一个间隙必须是a 1。) 根据规则2,如果一半的空白已经用相反的数字填充,那么我们总是可以填充行或列中的剩余空白。即.1.011→010011 根据规则3,如果在相等顺序的行上只剩下两个要求解的数字,我们总是可以填充相反的数字。即101100 & 1..100→101100 & 110100 根据规则3,有时我们可以在一条有序排列的直线上留出三个间隙时填充一个间隙。即010011 & .1.01.→ 010011 & .1.010(此处我们不能在1末尾填写a ,因为这意味着我们必须在其他两个空白处填充零,使两行顺序相等。) 例: 我们从以下6x6网格开始,其中填充了一些1和0(点是我们尚未填充的间隙): .1.... .10.0. 1.11.. .1.... ...1.0 ...... 根据规则1和2,我们可以填写以下数字: .1.01. .1010. 101100 010011 .0.1.0 .010.. 根据规则1,我们可以在第5行第1列中填写1: .1.01. .1010. 101100 010011 10.1.0 …

9
做译员!
是的是一种基于堆栈的语言,其中有一些用空格分隔的指令: yes: Push 1 to the stack no: Push 0 to the stack what: Push the input to the stack (input is taken at the start of program execution and is the same for the whole execution) sure: Increment the last item in the stack nah: Decrement the last item …

4
产生漩涡!
今天的任务是在给定单个参数的情况下创建漩涡。 此参数确定每个臂的长度(以字符为单位)。 每条手臂的每个“层”比最后一个包含更多的字符。 给定臂长,这是漩涡的外观: 0: # 1: # ### # 2: # # # ### # # # 3: ## # # # ### # # # ## 4: # # ## # # # ### # # # ## # # 10: # # # # # #### # …

4
贪婪地划分重复的组合列表
首先,一些定义: 给定n和k,考虑多重集的排序列表,对于每个多重集,我们从中选择带有重复的k数字{0, 1, ..., n-1}。 例如,对于n=5和k=3,我们有: [(0,0,0),(0,0,1),(0,0,2),(0,0,3),(0,0,4),(0,1,1),( 0,1,2),(0,1,3),(0,1,4),(0,2,2),(0,2,3),(0,2,4),(0, 3、3),(0、3、4),(0、4、4),(1、1、1),(1、1、2),(1、1、3),(1、1, 4),(1、2、2),(1、2、3),(1、2、4),(1、3、3),(1、3、4),(1、4、4) ,(2、2、2),(2、2、3),(2、2、4),(2、3、3),(2、3、4),(2、4、4),( 3,3,3),(3,3,4),(3,4,4),(4,4,4)] 甲部分是与所有多集的在部分的交集的大小是至少属性多集的列表k-1。也就是说,我们将所有多重集都一次相交(使用多重集相交)。例如,[(1, 2, 2), (1, 2, 3), (1, 2, 4)]是一个零件,因为其交点的大小为2,但[(1, 1, 3),(1, 2, 3),(1, 2, 4)]不是,因为它的交点的大小为1。 任务 您的代码应带有两个参数n和k。然后,它应该按排序的顺序贪婪地遍历这些多集并输出列表的各个部分。对于这种情况n=5, k=3,正确的分区是: (0, 0, 0), (0, 0, 1), (0, 0, 2), (0, 0, 3), (0, 0, 4) (0, 1, 1), (0, 1, …

2
派生单位
挑战 给定一个SI基本单位列表,一个方程式列表和一个目标,您必须仅使用基本单位导出目标的单位。 衍生单位 从维基百科: 国际单位制(SI)指定一组七个基本单位,所有其他SI度量单位均从该基本单位中得出。这些其他单位(SI得出的单位)中的每一个都是无量纲的,或者可以表示为一个或多个基本单位的幂的乘积。 例如,SI导出的面积单位是平方米(m 2),SI导出的密度单位是公斤/立方米(kg / m 3或kg m -3)。 七个SI基本单位是: 安培,A 坎德拉,CD 开尔文,ķ 千克公斤 米,米 摩尔,摩尔 其次,小号 例 输入值 基本单位: d [m] m [kg] t [s] 方程式: v = d/t a = v/t F = m*a E = F*d 目标: E 输出量 E [kg*m*m/s/s] 输入值 基本单位: G …

3
整数与发音词之间的映射
目的 这个想法是提供将32位整数映射到最大字符数为9的可发音单词之间或从该单词映射来的必要代码。例如,这可以使序列号更容易记住或输入表格。 既需要将整数转换为相应单词的方法又需要将单词转换回相应整数的方法。 规则 整数和单词之间必须存在一对一的映射,并且整个32位整数(或者换句话说,从0到4294967295的任何整数)都必须是可映射的。尽管显然,并非所有单词都有意义,但是输入未映射到整数的单词可能具有未指定的行为。 您可以自由决定确切的“发音”词集是有意义的,以及映射的完成方式,但是词至少必须遵循以下规则: 只能使用基本的26个字母(A ... Z)作为字符。口音,套管等不得用于扩展可能的组合。 每个单词最多9个字符。 两个辅音(BCDFGHJKLMNPQRSTVWXZ-20个可能性)不能彼此相邻放置(它们必须被元音包围)。 两个元音(AEIOUY-6种可能性)不应彼此相邻放置(它们必须被辅音包围)。 注意:最简单的方案是将所有单词构造为CVCVCVCVC(C是辅音和V元音),给出4147200000组合,而32位整数有4294967296个可能的值,所以这还不够。您需要通过允许较短的单词或通过允许扩展组合的数量VCVCVCVCV组合。 其他标准规则也适用,并且标准漏洞也被禁止。 输入/输出 对于每次提交,必须提供两段代码: 一个以整数作为参数/输入并返回/打印相应单词的参数 一个以单词作为参数/输入并返回/打印相应整数的函数 另外,您可以选择提交处理这两种操作的单个代码: 当给定整数作为输入时,它将输出相应的单词 当给定一个字符串作为输入时,它将输出相应的整数 获奖条件 这是一个代码高尔夫球,答案最少的字节(将两个代码段加在一起时,用于选择分离代码段的解决方案)将获胜。

10
像铁氟龙一样光滑
从字面上看!4月6日是美国国家聚四氟乙烯节,用聚四氟乙烯涂层锅庆祝(我们将做些什么)。因此,给定一个正整数n,创建一个特富龙锅。锅的“锅”部分是一个八边形,其侧面各由n字符组成,除了使用字符{或的侧面外,}视其侧面而定。这些边的字符长度始终为1。如果n为1: _ / \ { } \_/ 正如你所看到的,每一方由一个字符(或者{,},/,\,或_)。如果n是2: __ / \ / \ { } \ / \__/ 句柄将以创建,n+3 =并以零(0)结尾。 如果n是: _ / \ { }====0 \_/ n 是2: __ / \ / \ { }=====0 \ / \__/ n 是3: ___ / \ / \ / \ { }======0 …

2
两条道路分叉成黄色的木头(第3部分)
注意:这是基于两条道路在黄色的木头上分叉(第2部分),这是我的先前挑战。由于该问题的受欢迎程度,并且两条道路在黄色的树林中分叉(第1部分),所以我想提出第三条。但是前两个太简单了(第一个回答为2字节,第二个回答为15字节。)所以我做了一些更复杂的事情…… 灵感来源 这一挑战的灵感来自罗伯特·弗罗斯特(Robert Frost)的著名诗作《未走的路》: 两条道路在黄色的树林中分叉, 对不起,我无法同时行进 ,成为一个行人,我站了很久 ,俯视着一条路,尽我所能 ,一直到弯曲的灌木丛中。 ... 2段落已修剪... 我将叹息地告诉这个问题,因为它 在某个年代和年代都在变老: 两条路在树林中分叉,而我- 我走过的路少了, 这一切都改变了。 请注意倒数第二行I took the one less traveled by,。 背景故事 您被分配帮助一位盲人冒险者,他们在道路上行走,并受到“未走的路”的启发。冒险家正在接近叉路,并希望走少走的路。您必须找到冒险家实际所在的位置,并告诉冒险家转弯的地方。 挑战 您的目标是在地图上找到岔路口最少经过的道路。您的地图是一个包含换行符(或\n,如果愿意的话)的字符串,并且具有未知的宽度和高度。在地图中,道路由数字0到9组成,交叉点由#s组成。您必须找到您当前所处的道路,以及其他道路中行驶最多的道路,以及盲人冒险者行驶较少的道路。地图中的树林由空格表示。这是一个简单的地图: 2 2 1 0 # 2 2 该地图宽5高5。注意路叉如何呈Y形。Y可以以任何方式定向,因此您必须能够理解“旋转”贴图。 什么#意思 地图分叉的地方将有一个#。这不会影响任何路径的分数。 数字实际上是什么意思 每条路径(一行数字,可能会有一个弯头)都有一个分数。路径的分数是通过将其数字相加来确定的,因此,对于第一个示例,第一条路径(从左上角,顺时针方向)的分数为2 + 1 = 3,第二条路径的分数为2 + 0 = 2,第三条路径有2 + 2 = …

16
十六进制到二进制
将十六进制数(任意大小)转换为二进制数。 输入 一个正的十六进制数字,以a 0x开头。有效输入将始终与以下正则表达式匹配:0x[0-9a-fA-F]+。如果输入的不是有效的十六进制数字,即与该正则表达式不匹配的任何数字,则输出应为0。 输出 将十六进制转换为二进制。 赢得 原始代码高尔夫球规则,咬伤次数最少(bytes)。 例子 IN: 0x12 OUT: 10010 IN: 0xFF OUT: 11111111 IN: 0XFF OUT: 0 IN: #0ac4 OUT: 0 IN: 0x00101011 OUT: 100000001000000010001 IN: 0x525600 OUT: 10100100101011000000000 IN: 0x58f70555118ec400 OUT: 101100011110111000001010101010100010001100011101100010000000000 IN: 0x6669795966AF3000 OUT: 110011001101001011110010101100101100110101011110011000000000000 IN: 0b018474 OUT: 0 IN: 9577383 OUT: 0 IN: …

8
为我的Scan-tron分级!
标准化测试通常带有scan-tron或记录您答案的某种类型的答案文档。然后,计算机或人员将检查您的答案并确定您的成绩。因此,在这里,给定scan-tron和答案键,即可确定分数和错过的问题(如果有)。scan-tron只是具有多行答案的文档,用户可以在其中填写(在本例中为带圆圈的)答案。例: --- 1. |a| b c d --- 如您所见,这是选择了答案选择的问题1,a因为它周围有一个框。对于挑战,你将得到一个扫描-TRON与n问题(1 <= n <= 10),只有四个答案表示为a,b,c,或d。答案键将以无空格且全部小写的字符串形式给出。带有答案键的示例scan-tron: Scan-tron --- 1. |a| b c d --- --- 2. a |b| c d --- --- 3. a b |c| d --- Answer Key abb 您可以将答案键和scan-tron作为单独的输入或以选定的顺序输入,只要它们可以被识别(即,答案键与scan-tron分开)即可。分数将四舍五入到最接近的十分之一。上面的示例输出: Score: 66.7 Missed #: 3 其他可接受的答案是: 66.7 3 或者错过了多个问题 66.7 3 …

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.