Questions tagged «code-golf»

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

3
验证出生号码
挪威出生号码由11位数字组成,组成方式如下: DDMMYYiiikk DD 是一天(从01-31开始) MM 是月份(从01到12) YY是年份(从00-99)。1900和2000之间没有区别 iii 是“个人号码” kk 是两个控制数字 iii 由出生年份和性别决定,方法如下 0000-1900:无视,存在一些不一致和特殊情况 1900-1999:范围= 000-499 2000-2039:范围= 500-999 女:偶数(和000) 男:奇数 控制编号是通过以下方式确定的: 我们称这11位数字为: d1 d2 m1 m2 y1 y2 i1 i2 i3 k1 k2 然后可以使用以下公式计算控制位数: k1 = 11 - ((3 * d1 + 7 * d2 + 6 * m1 + …

2
斐波那契精度的Phi显示能力
编写一些代码,该代码采用单个非负整数n,并输出与第n个斐波那契数相同的十进制数的Phi 的n次幂(ϕ,黄金比例,大约为1.61803398874989)。 您的代码必须为所有输入产生正确的数字序列,最多10个字符(55个十进制数字)。输出必须是人类可读的十进制。您可以选择是将最后一位四舍五入到最接近的值,还是截断该值。请指定您的代码使用哪个代码。 n和输出,最多10位,四舍五入: 0 1 1 1.6 2 2.6 3 4.23 4 6.854 5 11.09016 6 17.94427190 7 29.0344418537486 8 46.978713763747791812296 9 76.0131556174964248389559523684316960 10 122.9918693812442166512522758901100964746170048893169574174 n并输出,最大为10,四舍五入到最接近的值: 0 1 1 1.6 2 2.6 3 4.24 4 6.854 5 11.09017 6 17.94427191 7 29.0344418537486 8 46.978713763747791812296 9 76.0131556174964248389559523684316960 10 122.9918693812442166512522758901100964746170048893169574174 第7个斐波那契数为13,因此n …

1
MarGolf遇见Langton的蚁丘
This is Markov. Markov's golf ball rolls around randomly. Markov's ball will hole however he strikes it. Markov is smart. Be like Markov. 这 是兰顿后院的一个蚁丘。 蚁丘足够大,可以容纳Markov的高尔夫球MarGolf。但是,蚁丘会根据周围的地形移动并改变方向。 任务 输入一个10x20的字段: * 马尔高夫 O 兰顿的蚁丘 , 蚁丘顺时针旋转90度 . 蚁丘逆时针旋转90度 0 MarGolf在兰顿的蚁丘 一个字段如下所示: ,...,.,,..,...,.,,.. ..,.,,,..,...,..,.,. .,,*.,....,.,,,.,,,. ,.,,.,...,,.,.,,,,,. .,..,....,,.....,,., ,.,.,...,..,.,,,,.., ....,,,,,,,,,....... ........,,.,...,..., ,,,,,,,,,,,,....,O., ,.,.,.,.....,,.,,,,, 游戏规则: …

1
打印特殊角度的sin,cos和tan
在三角学中,有某些角度称为“特殊角度”。这是因为当您采用这些角度之一的sin,cos或tan时,您得到的结果很容易记住,因为它是有理数的平方根。这些特殊角度始终是pi/6或的倍数pi/4。这是所有特殊角度及其对应的触发值的可视化。 如您所见,对于每个角度,它们都是一对对应的数字。第一个数字是该角度的余弦,第二个数字是该角度的正弦。要找到这些角度之一的切线,只需将sin除以cos。例如tan(pi/6)等于 sin(pi/6) / cos(pi/6) == (1/2) / (√3/2) == 1/√3 == √3/3 挑战 您必须编写一个包含3个输入的完整程序。 代表您应该计算的trig函数的单个char。这将是“ s”(正弦),“ c”(cos)或“ t”(棕褐色)。 输入角度的分子。这可以是任何正整数。请注意,输入5表示分子为5 * pi。 输入角度的分母。这将始终是以下之一:1, 2, 3, 4, 6 然后打印出该角度的触发函数的精确值。以下是所有角度最大为2 * pi的sin,cos和tan的列表: sin(0pi): 0 sin(pi/6): 1/2 sin(pi/4): root(2)/2 sin(pi/3): root(3)/2 sin(pi/2): 1 sin(2pi/3): root(3)/2 sin(3pi/4): root(2)/2 sin(5pi/6): 1/2 sin(1pi): 0 sin(7pi/6): -1/2 …

3
一个州获得多少票?
给定每个州的人口列表,输出从大到小,即该州在选举团中获得的选票数。 输入:第一个数字代表要分配的总票数;其后是和的列表。在此示例中,使用状态的缩写,但是可以使用任何包含大写和小写字母的名称。您可以采用任何喜欢的格式,只要其中包含的唯一信息是该州的缩写及其人口。 输入可以作为函数的参数,也可以采用任何方式。 示例(可能)输入: 538 [[CA 38000000], [NH 1300000] etc.] 输出:以某种格式输出每个州获得的票数。从最大到最小对状态进行排序。如果两个州的票数相同,则按字典中的先后顺序(按字母顺序先后)排序。 在找到投票数之前,首先检查输入列表中是否存在名为DC的州,如果存在,请给该州3票,而不论其人口多少。然后,将其从列表中删除,并分配其余的选票,就好像DC不存在一样。 选举团的票数被定义为参议员和代表人数的总和。每个州都有两名参议员,因此从总数中减去州数两倍(在示例输入中为538)以获得代表人数。为每个州指派一名代表开始。然后,执行以下过程: 分配给每个状态的数目,A,定义为P/sqrt(2)其中P是人口。 根据状态值对状态进行排序A。 为第一个州(最大的州)分配A一个代表。 重新分配A,as的值A = P/(sqrt(n)*sqrt(n + 1)),其中n是分配给该州的当前代表人数。 返回步骤2。重复执行,直到所有代表都用完为止。 示例(可能)输出:{CA: 518, NH: 20}。输出不必采用这种格式,但必须包含相同的信息。 请注意,如果由于3*(# of states)票数不足而无法合法分配票数,请打印所需的任何内容。您可能会崩溃,引发错误等。 测试用例: 538 [['CA' 38000000], ['NH' 1300000]] --> CA: 518, NH: 20 538 [['NH' 1300000], ['CA' 38000000]] --> CA: 518, NH: 20 …
9 code-golf 

14
高尔夫计算口译员
介绍 计算是一种深奥的笑话语言。 在esolangs条目中: 计算没有必需的语法,并且可以解决所有问题。它足够聪明,可以解释任何人类语言(英语,西班牙语,拉丁语等),任何编程语言(C ++,Java,brainfuck等)或任何您能想到的数据。唯一的缺点是绝对没有I / O。 一些示例程序 Hello World 基本的Hello World程序 What is love? 确定爱是(宝贝不要伤害我)。 When will we ever graduate? 确定该网站退出beta的确切日期。 挑战 您的任务是编写完整的Compute解释器。这听起来很难,但是请记住Compute绝对没有I / O。因此,您的解释器将只为输入程序中的每一行睡眠一秒钟,然后\n\nDone.在此之后输出(这是no I / O的唯一例外)。 您可以在本网站底部找到官方口译员。 请注意,官方解释器会为给定源代码中的每个字符暂停一秒钟。为了避免在等待有意义的问题来测试口译员时的漫长等待时间,我们在挑战中坚持行列。 规则 输入可能包含多行,并用分隔\n。总会有至少一行。 与正式实现不同,您不必将文件作为输入。您可以采用任何所需输入形式的Compute程序。 允许的唯一输出是\n\nDone.。尾随换行符是允许的。 允许功能或完整程序。 输入/输出的默认规则。 有标准漏洞。 这是 代码高尔夫球,因此最低字节数获胜。决胜局是较早提交的。

21
将Forsyth-Edwards表示法字符串转换为ASCII美工
在国际象棋中,通常被称为“ FEN”的福赛斯·爱德华兹符号是一种抄写木板的文字方式。它从怀特的角度从上到下描述了董事会八行中的每一行(在国际象棋中称为“等级”)。这些片段被写为K(国王),Q(女王),R(流氓),B(主教),N(骑士)和P(典当)。黑色小写使用这些字母,白色小写使用这些字母。空格由1到8的数字表示,表示有多少个连续的空格。一个完全为空的等级将是8,最右边一列(在国际象棋中称为“文件”)将是一个黑色的白嘴鸦,7r一行的每一端将是两个白棋子。通常还会添加其他信息,指示要移动哪一侧,PP4PP。等级之间用a分隔/顺便权利,移动号码,halfmove时钟,但我们会忽略他们的这一挑战的目的。 输入项 根据需要,从命令行或STDIN发送FEN字符串。您可以假定此字符串始终有效。 输出量 将实际出现的板子的简单ASCII艺术表现形式写入STDOUT: 作品以他们在FEN中的角色来表示 空方格用空格表示 碎片和正方形由管道分开,|并且板的每一侧都有管道 因此,用8/8/8/8/8/8/8/8FEN 编写的空板将显示为 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | …

2
DSA的人才库
我和一些朋友玩过DSA(主要是德国的桌面RPG,与D&D相似)。我想知道通过传球的机会是多少,因此您将必须编写一些代码来进行计算。 您的角色由统计信息(从8到14)和(TV)才能值(0到21)定义。现在,我们将以攀登为例。 才能测试 一个天赋(攀爬)如下所示:(勇气,敏捷,力量)电视:7.要测试一个天赋的角色,请使用20面骰子在这些统计数据上滚动,并尝试使其低于或等于该统计数据你做得很好。如果没有,您可以使用电视点以1:1的比例减少滚动。 例 一位有勇气12,敏捷13和力量14的猎人正在尝试爬树,他的电视是7。 他掷出3,该值低于12,因此他通过了掷骰。 然后他将17、17比4翻了17、17,所以剩下4个电视用完了,剩下3个。 对于最后一卷,您将获得14分。 所有的掷骰都通过了,猎人设法爬上了树,剩下了3台电视。 输入项 您选择的任何格式的4个值,取自您语言的标准输入。但是必须按此顺序。 例如12 13 14 7或12,13,14,7或为数组{12,13,14,7}或混合[12, 14, 8], 3 输出量 卷多久通过一次的机会。 例如(对于上述值)0.803 12,14,8,3 = 0.322 11,11,12,11 = 0.840 值得一提的是:这里再次不是格式化的问题,但可以按照自己的意愿按以下顺序输出: failed/with 0/with 1/with 2/with 3/with 4/with 5/with 6/with 7 以此类推,直到没有电视。 12,13,14,7 = 0.197/0.075/0.089/0.084/0.078/0.073/0.068/0.063/0.273 12,14,8,3 = 0.678/0.056/0.051/0.047/0.168 挑战,规则和奖金 您将发现在给定输入的情况下有机会使掷骰通过率达到+-0.5%。 如果您的程序还输出了通过n电视的机会(请参见输出),则为-20%。 这是 代码高尔夫球,因此以字节为单位的最短代码胜出!

2
三角网格:简单连接的Polyiamonds
当我们处于三角形网格踢的时候,我想指出的是,在三角形网格上有一个等同于多米诺骨牌的东西。它们被称为polyiamonds,是通过沿其边缘将等边三角形粘合在一起而形成的形状。在此挑战中,您将要确定三角形网格的哪些子集为多边形,以及它们是否在其中具有孔。因为只需要9个三角形就可以制造出一个带孔的多边形,因此您的代码需要尽可能短。 网格 我们将使用Martin的三角形网格布局作为输入: 注意以下事实:三角形的中心形成一个大致矩形的网格,并且左上三角形“指向”上方。然后,我们可以通过给出矩形“星形图”来描述此网格的子集,该星形图指示包括哪些三角形和不包括哪些三角形。例如,此地图: ** ** ***** 对应于包含一个孔的最小的多边形: 孔洞 其中包含像上面的例子中的孔(区域不是polyiamond,其由所述的两个区在所有侧面包围的部分A polyiamond 是)不是,拓扑来说,简单地连接。 挑战 编写一个函数或程序,当且仅当所指示的三角形网格的子集是简单连接的多边形时,才将如上所述的“星图”作为输入并输出真值。 更多例子 *** *** ******* 对应于polyiamond 只需连接即可。 * * ** ** *** 对应于polyiamond 只需连接即可。 ** ** *** ** **** 对应于非 polyiamond 这不会简单地连接,即使它是一个polyiamond。 输入规格 输入将仅由星号,空格和换行符组成。 输入的第一个字符将始终是空格或星号(对应于网格左上角的向上指向的三角形)。 第一行和最后一行始终至少会有一个星号。 无法保证第一行之后的行不会为空。连续两个换行符可能会出现在合法输入中。 线长不必全部相同。 获奖条件 这是 代码高尔夫球,因此以字节为单位的最短答案会获胜。 测试用例 真实地图: 1) * 2) * …

1
帮我塞满我的钱包!
不久前,我购买了一个新钱包,该钱包可容纳8张卡(两面均为4张)。但是,我似乎拥有比这更多的卡片,并且我需要选择要随身携带的卡片。有些卡片比其他卡片使用得更多,但是我更喜欢随身携带的卡片不一定是我使用最多的卡片。 挑战 给定一堆纸牌,以我的喜好和限制尽可能的最好的方式返回我的钱包的布局。布局应如下所示: __ __ (row 1) __ __ (row 2) __ __ (row 3) __ __ (row 4) 目前,我摆出了以下几张纸牌-堆叠中总是有以下选择: 1张身份证(ID) 1张驾照(DL) 2张信用卡(CC) 5张借记卡(DC) 1张公共交通卡(PC) 1张健身房出入卡(GC) 随机商店和仓库(MC)的9张会员卡 我有一些偏好和限制: 卡按优先级排序:ID,DL,CC,DC,PC,GC,MC 卡按使用频率排序:CC,DC,PC,GC,MC,ID,DL 出于安全原因,借记卡和信用卡在我的钱包总数可以比所有其它卡的总和,将在我的钱包去(至多更多ň DC + ñ CC ≤ ñ ID + ñ DL + ñ PC + N GC + N MC …

6
卡对概率
给定一个卡片组,其中N张卡片由N个卡片组成,其中N个卡片的整数值为[ 1,M ],总共N * M张卡片,计算出值为1的卡片与值为2的卡片相邻的概率。 您的解决方案可能是精确的或近似的,并且在给定相同输入的情况下,每次运行都不必相同。给定的答案应在真实解决方案的+/- 5%之内(除非RNG不太可能对您不利)。您的程序应在合理的时间内给出答案(例如,使用任何硬件不到10分钟)。您可以假设M和N合理小,并且不需要进行错误检查。 卡组不是周期性的,因此如果第一张卡为1,最后一张卡为2,则这不满足邻接要求。 作为测试用例,对于N = 4和M = 13(标准的52张卡片套),预期解决方案约为48.6%。 这是使用随机混洗的Python + NumPy中的非高尔夫实现示例: from __future__ import division from numpy import * def adjacent(N, M): deck = array([i for i in range(1, M+1)]*N) trials = 100000 count = 0 for i in range(trials): random.shuffle(deck) ores = (deck == …

15
年度中国十二生肖
2015年是山羊年!在这项挑战中,您将弄清楚哪种动物代表年份。为避免将挑战复杂化,您无需计算农历新年。 由于它们在十二生肖中只有12种动物,因此您的代码将需要尽可能短。 例子 您的程序必须获取系统年份,第一行仅供参考 2015 Goat 1924 Rat 1923 Pig 2008 Rat 规格 十二生肖的顺序是: Rat, Ox, Tiger, Rabbit, Dragon, Snake, Horse, Goat, Monkey, Rooster, Dog, Pig Rat从2008年开始,到Pig2007年开始,Ox到2009年,依此类推。 输出必须正确大写。

2
交替求解数学表达式
创建一个程序,使用表达式交替两边的元素来求解数学表达式。这样做的方法是,先阅读第一个字符,然后阅读最后一个,然后阅读第二个字符,再阅读第二个字符,再读另一个字符,而不是从左到右阅读。这将为您提供一个新的表达式,您必须对其进行计算和输出。 a*b/c+d-e 135798642 <-- Order you read the expression in ae*-bd/+c <-- Order of operation. 例: 1*3/2+4-5 15*-34/+2 = -255 如果表达式不起作用,则1必须将其插入必要的位置以使其起作用。 一些示例可能会更好地说明它: Input: 1+1+1+1+1 Result: 23 // Because 1+1+1+1+1 -> 11++11++1 -> 23 Input: 1+2-3+12-5 Result: -19 // Because 1+2-3+12-5 -> 15+-22-13+ -> 15+-22-13+1 -> -19 // | // Not …

1
戊糖验证器
作为一个不介意查看他们的五角星形以查看其是否为矩形的人,我决定让您编写一个执行此操作的程序。 你的任务 给定一些输入,并用包含12个唯一字符的换行符分隔,请确定这是否是有效的解决方案。 有效的解决方案必须 每个字符有5个(换行符除外) 每组字符必须完全连接 每组字符必须具有唯一的形状 呈规则的矩形 如果这是有效的解决方案,请输出真实值,否则输出错误值。 您的程序可以是函数,也可以是完整程序,但必须将输入从stdin输入并输出到stdout。 测试用例 有效的解决方案 000111 203331 203431 22 444 2 46 57 666 57769! 58779! 58899! 5889!! 00.@@@ccccF111//=--- 0...@@c))FFF1//8===- 00.ttttt)))F1/8888=- 无效的配置 invalid (doesn't contain 12 unique characters) 111112222233333444445555566666 77777888889999900000qqqqqwwwww (Each set has the same shape) 1234567890qw w1234567890q qw1234567890 0qw123456789 90qw12345678 (None of …

6
计算克罗内克符号
这里和这里的相关链接,但是这里是简短的版本: 您有两个整数的输入,a且b介于负无穷大和无穷大之间(尽管如有必要,我可以限制范围,但函数仍必须接受负无穷大)。 Kronecker符号的定义 您必须返回Kronecker符号(a|b)进行输入,a并且b在哪里 (a|b) = (a|p_1)^e_1 * (a|p_2)^e_2 * ... * (a|p_n)^e_n 在那里b = p_1^e_1 * p_2^e_2 * ... * p_n^e_n,并p_i与e_i在的因式分解素数和指数b。 对于奇素数p,(a|p)=a^((p-1)/2) (mod p)定义在这里。 对于b == 2,(n|2)={0 for n even; 1 for n odd, n=+/-1 (mod 8); -1 for n odd, n=+/-3 (mod 8) 对于b == -1,(n|-1)={-1 for n<0; …

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.