Questions tagged «code-golf»

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

7
计算一年中的天数
似乎我们还没有这个,所以我们开始: 挑战 编写一个以日期作为输入并输出年份的天数的程序或函数。您不能为此使用任何内置函数! 规则 像往常一样,您可以编写完整的程序或函数。 输入格式由您决定,但必须包含一年,一个月和一天。弄清楚您的解决方案使用哪一个! 不允许与日期相关的内建函数!你得自己做。与日期操作无关的内建函数很好。 公历的基础是公历。 您必须考虑of年。 您只需要处理[1,9999]范围内的年份 标准漏洞禁止出现。 最低字节数获胜! 测试用例 输入格式为YYYY / MM / DD 2016/07/05 -> 187 2000/03/28 -> 88 0666/06/06 -> 157 6789/10/11 -> 284 0004/04/04 -> 95 1337/07/13 -> 194 编码愉快!
13 code-golf  date 

2
这是Lojban中有效的辅音词组吗?
.i xu .e'o lo zunsnagri cu drani loka jboge'a 给定输入由两个字符组成的字符串,输出是否在Lojban中是有效的辅音簇。 这是CLL 3.6的引文,详细列出了有效辅音对(或无效对)的规则: 1) It is forbidden for both consonants to be the same, as this would violate the rule against double consonants. 2) It is forbidden for one consonant to be voiced and the other unvoiced. The consonants “l”, “m”, …

3
GF(5)上的不可约多项式
在一些系数的多项式字段 ˚F被称为不可约超过˚F,如果它不能被分解成低次多项式与系数的乘积˚F。 考虑Galois域 GF(5)上的多项式。该字段包含5个元素,即数字0、1、2、3和4。 任务 给定正整数n,计算在GF(5)上度为n的不可约多项式的数量。这些只是系数为0-4的多项式,不能分解为系数为0-4的其他多项式。 输入值 输入将是单个整数,并且可以来自任何标准来源(例如STDIN或函数参数)。您必须支持最大最大整数的输入,以使输出不会溢出。 输出量 打印或返回在GF(5)上不可约的多项式的数量。请注意,这些数字很快就会变大。 例子 In : Out 1 : 5 2 : 10 3 : 40 4 : 150 5 : 624 6 : 2580 7 : 11160 8 : 48750 9 : 217000 10 : 976248 11 : 4438920 请注意,这些数字构成了OEIS中的序列A001692。

3
解读数学符号
如果您已经读过卡尔·萨根(Carl Sagan)的《接触》一书,这个挑战对您来说似乎很熟悉。 给定一组数学方程式的输入,该数学方程式由一个数字,一个未知算子,另一个数字和结果组成,推论出哪些算子表示加,减,乘或除。 每个输入方程将始终包含 非负整数 一个字母A,B,C,或者D 另一个非负整数 性格 = 最终非负整数 连接在一起。例如,可能的输入是1A2=3,从中可以推断出A表示加法的值。每个整数都将满足0 ≤ x ≤ 1,000。 但是,它并不总是那么简单。之间可能存在歧义: 5A0=5:加/减 1A1=1:乘法/除法 0A5=0:乘法/除法 2A2=4:加法/乘法 4A2=2:减法/除法 0A0=0:加/减/乘 等等。面临的挑战是如何利用这种能力来缩小选择范围,并结合消除过程来弄清楚每个字母代表什么运算符。(将始终至少有一个输入方程式,并且始终可以使用一个运算符将输入中使用的每个字母唯一地唯一匹配。) 例如,假设输入为以下方程式: 0A0=0:这会将A缩小为加,减或乘(不能除以0)。 10B0=10:B必须是加法或减法。 5C5=10:C显然是加法,这使B减,这使A乘法。 因此,输出为这些输入方程应当匹配A与*,B 与-,和C用+。 输入可以以单个空格/逗号分隔的字符串或字符串数​​组的形式给出,每个字符串表示一个方程式。输出可以是单个字符串("A*B-C+"),数组(["A*", "B-", "C+"])或类似字典/字典的2D数组({"A": "*", ...}或[["A", "*"], ...])。 您可以假设一个数字永远不会被另一个不可分割的数字除(因此,您不必担心除法是浮点数还是截断法)。 由于这是代码高尔夫球,因此以字节为单位的最短代码为准。 测试用例: In Out ------------------------------- 0A0=0 10B0=10 5C5=10 A*B-C+ 100D100=10000 D* 4A2=2 4B2=2 …

5
数学替代
有时使用多个输入来运行数学问题会很有用。这项挑战的目的是要编写一个简化此任务的程序。 产生数字的表达式 您必须支持3种类型的表达: 单一数字生成器:非常简单,只需一个文字数字 多数生成器:有点复杂。它们被方括号([])包围。数字,在表达式中用逗号()分隔。实例[-1,2,3.26]。 范围生成器:这是一个大括号({})包围。它将有3个数字,以逗号分隔。此表达式的格式为{start,stop,step}。start并且stop具有包容性。 评估规则 您必须支持操作顺序。(https://en.wikipedia.org/wiki/Order_of_operations#Definition) 您不需要支持括号。 表达式中可以出现任意数量的空格。 您必须支持浮点数(无论您的语言默认为哪种精度都可以)。 除以0结果NaN(不是数字)。 您的程序必须支持乘法(*),除法(/),加法(+)和减法(-)。 输出量 输出的每一行都是生成器的组合之一。格式为表达式(将实数替换为表达式),后跟等号(=)和求值结果。生成器的所有组合都必须在输出中表示。 例子 (>>>表示输入) >>>3 * [3,2] 3 * 3 = 9 3 * 2 = 6 >>>{1,2,3} 1 = 1 <-- this is because 1 + 3 > the end >>>{0,2,1} + {0,1,1} 0 + 0 …
13 code-golf  math 

5
设置声誉
您可能确实知道,从问题页面/帖子中查看时,Stack Exchange上不同的信誉级别的格式是不同的。有所有的rep格式规则: 如果用户有1到999(一到三位数)的代表,则保留原样。 如果用户有1000至9999个代表(四位数),则它将逗号作为分隔符: 9,999 如果用户具有10000至99999 rep(五位数),则将其缩短并四舍五入。即,16741 rep的格式为16.7k,请注意点分隔符与较低rep(上一个点)的逗号不同。 已经产生了16750 16.8k(因为这似乎是固定的) 例如,16941结果为16.9k,16950向上舍入为17k,以及17014 向上舍入。 99941 舍入为99.9k,99950 100k舍入为(这实际上是我对SE上的rep- round所讨厌的,因为100,000是一个里程碑,而99950距离不远)。 如果用户的代表为100000至999999,则按以下方式四舍五入: 100100向下100k舍入到100500向上舍入到101k。事实是,四舍五入已经完成,但是小数部分被去掉了(与四位数字表示不同)。 100450会四舍五入到150,四舍五入到100k450到500。100499也不会-仍然是100k。 279843舍入为280k,和399999舍入为400k。 作为输入,您将获得原始信誉,并将其输出为格式化格式。 您可以认为输入不会收到任何无效数字/非数字或带有前导零的数字,即0001234。 由于Jon Skeet似乎不会很快达到1,000,000,因此您的代码必须尽可能短,并且您不需要处理超过100万的代表(即,对于999500及更高版本,没有特殊情况)。
13 code-golf  number 

9
Quinean Regex测试仪
这个挑战非常简单。输入一个正则表达式作为输入。 然后,输出您的源代码是否与正则表达式匹配的真假信息。就这么简单!还有两件事: 没有内置的奎因;但是,您可以通过文件IO等访问代码的源代码。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 例 如果您的源代码是abc,则输入a\wc会返回true,而输入a\dc会返回false。

8
平滑线图
给定一个整数n的输入和一个正整数m 1, m 2,...的列表,输出一个整数列表m 1 ', m 2 ',...,其中m x '被定义为m的平均值 xn到m x + n。 计算这些平均值时,请忽略超出范围的索引(并相应地调整要除以的总和)。n总是≥1,但绝不能是m(舍入)的长度的一半或更多。这意味着最小长度米为4中的元素米将是正整数,但输出必须精确到至少3位小数。 列表的输入/输出元素可以是空格/逗号分隔的字符串,也可以是数组/列表/等。对于输入,如果您的解决方案是一个函数,则可以另外使用n的第一个参数和m x的其他参数(这也适用于命令行参数)。 这是以下内容的直观表示n=1: 1 4 5 7 10 __/ | | | L avg(1,4) = 2.5 | | | \___/ | | L avg(1,4,5) = 3.333 | | \___/ | L avg(4,5,7) = 5.333 …

1
乐高齿轮火车
灵感来自Keith Randall 的Lego传动比挑战。 我也计划建造一个大型的乐高机器人,该机器人最终将能够在前所未有的竞争中摧毁其他机器人。*在构建机器人的过程中,我将使用大量齿轮系来连接机器人的不同部分。我想让您编写最短的程序,这将帮助我构建完成如此复杂的任务所需的复杂齿轮系。当然,我只会使用半径为1、2、3和5的任意乐高单位的齿轮。 齿轮系中的每个齿轮在2D网格上都有特定的整数坐标。第一个齿轮位于(0,0),最后一个齿轮位于非负坐标。第一个和最后一个齿轮的位置和尺寸将作为输入提供,您的程序必须告诉哪些齿轮去哪里填补了空白。 此外,您的程序必须在齿轮系中使用尽可能少的齿轮数。更少的齿轮/火车=更多的火车** =更大更好的销毁机器人。 输入将包含一行: X,Y,B,A X和Y是最终齿轮的坐标。一档始终位于(0,0)。B和A分别是最终齿轮和初始齿轮的半径。为了增加一些难度,您需要确保输出齿轮以正确的方向旋转。如果A和B具有相同的符号,则输出齿轮需要沿相同方向旋转,并且必须使用奇数个齿轮。如果它们的符号相反,则需要使用偶数个齿轮。 输出应为每个附加齿轮的X位置,Y位置和半径的列表,每行一个齿轮。如果有多个最小齿轮解决方案,则仅打印您选择的一种。输出中的齿轮顺序无关紧要。 示例(可能有更多等效的解决方案): in 4,0,1,1 out 2,0,1 in 7,7,-2,-2 out 4,3,3 OR 0,7,5 OR the above reflected over y=x line in 7,8,-1,2 out 7,0,5 7,6,1 OR 7,0,5 1,8,5 in 7,7,2,-2 out 4,-3,3 7,1,2 12,1,3 12,7,3 OR any permutation of the above, …

1
数字是多少?
7段数字可以使用_|字符以ASCII表示。以下是尺寸1位数: _ _ _ _ _ _ _ _ | _| _| |_| |_ |_ | |_| |_| | | | |_ _| | _| |_| | |_| _| |_| 通过使每个段成比例地变长来形成更大的尺寸。这是一对3位数字的数字。 ___ ___ ___ ___ ___ ___ ___ | | | | | | | | | | | | …

6
拆分莎士比亚剧本
威廉·莎士比亚先生写了戏剧。很多戏剧。在这个包含他的每一份作品的tarball中,他的每一部戏都是一个长文件。 需要将其拆分为场景以进行舞台制作。由于参与者不耐烦,因此您的代码需要尽可能短。 任务: 您的任务是编写一个程序或函数,以将该文件中包含的播放拆分为多个单独的文件,并从依次编号1,其中每个包含一个场景。您应该保留所有空格和标题。 输入: 输入将通过播放stdin,或将文件名作为参数。你可以选择。该剧将如下所示: TITUS ANDRONICUS DRAMATIS PERSONAE SATURNINUS son to the late Emperor of Rome, and afterwards declared Emperor. BASSIANUS brother to Saturninus; in love with Lavinia. TITUS ANDRONICUS a noble Roman, general against the Goths. MARCUS ANDRONICUS tribune of the people, and brother to Titus. LUCIUS …
13 code-golf  string 

4
西班牙不完美共轭/指示不完美共轭
给定不定式形式的西班牙语动词的输入,输出以指示性不完美的所有6种形式共轭的动词。 要使不定式与不完美的词缀合,请删除不定式的结尾(-ar,-er,-ir和有时是-ír),并添加下面列出的不完全的结尾。不完全动词中有三个不规则动词,也在下面列出。 Verb ending Replace with... -------------------------------------------------------- -ar -aba, -abas, -aba, -ábamos, -abais, -aban -er, -ir, -ír -ía, -ías, -ía, -íamos, -íais, -ían Irreg. verb Conjugations -------------------------------------------------------- ser era, eras, era, éramos, erais, eran ver veía, veías, veía, veíamos, veíais, veían ir iba, ibas, iba, íbamos, ibais, iban 出于此挑战的目的,请使用大写字母代替带重音的字母(á变为A,é变为E,í变为I)。这仅是因为带重音的字母在UTF-8中为2个字节,但是在其他编码中它们可以有所不同,因此我宁愿不必处理任何字母,而留在可打印的ASCII中。 不定式动词的长度始终为三个或更多字符,唯一的例外是动词ir,绝不包含重音字母,但以-ír结尾的动词除外,并且始终以-ar,-er,-ir,或-ír。反身动词不需要处理。 …

4
几周
您的任务是输出一个数字。给定日期范围相交的ISO周数。引用Wikipedia:,An average year is exactly 52.1775 weeks long但这不是平均值。 输入由两个以空格分隔的ISO日期组成: 0047-12-24 2013-06-01 结束日期永远不会早于开始日期。为了简单起见,我们将使用外推的格里高利历。 测试用例: Format: input -> output 2015-12-31 2016-01-01 -> 1 (both are within week 53 of 2015) 2016-01-03 2016-01-04 -> 2 (the 3rd is within week 53, and the 4th is in week 1) 2015-12-24 2015-12-24 -> 1 (this …
13 code-golf  date 

4
计算熵
输入值 M表示为两条以空格分隔的整数行的矩阵。每条线将具有相同数目的整数,并且每个整数将是-1或1为至多20每行的整数的数目 M因此将2通过n其中n在每两行的整数的个数。 您的代码应该是完整的程序。并接受标准输入或来自文件的输入(您可以选择)。您可以接受标准输入,文件输入或仅作为参数输入。但是,如果您选择后者,请给出一个代码示例,以明确说明该代码如何工作,并记住它必须是一个完整的程序,以及矩阵M将如何在输入中表示。换句话说,您可能必须进行一些解析。 输出量 所述二进制信息熵的分布M*x,其中的元素x均匀地和独立地选自{-1,1}选择。 x是一个n三维列向量。 离散概率分布的熵为 - sum p_i log_2(p_i) 在这种情况下,p_i是的概率i个独特的可能M*x。 示例和有用的提示 作为一个工作示例,让矩阵M为 -1 1 -1 -1 现在来看所有2^2可能的向量x。对于每一个,我们计算M*x所有结果并将其放入一个数组(2分量向量的4元素数组)中。尽管对于这四个向量中的每个向量,其出现的概率为1/2^2 = 1/4,但我们仅对每个唯一的结果向量M*x出现的次数感兴趣,因此,我们总结了导致相同的唯一向量的配置的各个概率。换句话说,可能的唯一M*x向量描述了我们正在研究的分布的结果,并且我们必须确定这些结果中的每一个的概率(根据构造,该概率始终是1/2^2或通常是的整数倍1/2^n),计算熵。 在一般n情况下,取决于can M的可能结果,其M*x范围从“所有不同”(在这种情况下,我们具有in的n值,每个值等于)到“所有相同”(在这种情况下,可能存在一个结果)。ip_ip_i1/2^np_1 = 1 具体来说,对于上述2x2矩阵,M我们可以通过将其乘以四个可能的配置([+-1; +-1])来发现,每个结果向量都是不同的。因此,在这种情况下,有四个结果p_1 = p_2 = p_3 = p_4 = 1/2^2 = 1/4。回顾log_2(1/4) = -2我们有: - sum p_i log_2(p_i) = -(4*(-2)/4) = 2 因此,此矩阵的最终输出为2。 测试用例 …
13 code-golf  math 

7
正反感叹号和问号对
挑战 ¡我们将给感叹和问号倒置的伙伴! 由于包含文本的句子结束于一体.,?或者!,前置倒问号,¿以疑问句(句子结尾?)和反向的感叹号,¡以感叹句(截至句子!)。结尾的句子.将被忽略。 句子将由空格(空格,制表符和/或换行符)分隔,并且仅包含字母数字,逗号,撇号和空格。每个句子至少要有一个单词。确保每个句子的第一个单词都大写。输入可以以任何空格开头和结尾。 例 输入: Hello there! What is your name? My name is Ron. What's your name? My name is Alex. Nice to meet you! Nice to meet you to! How was your break? It was great, I spent all my time code golfing! What's that? Wow, you're …

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.