编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

11
Unicode分数
给定格式的分数m/n(其中m和n是互质整数),输出相应的Unicode分数。您的程序/函数不应接受任何与Unicode字符不对应的输入。接受数组(例如[2, 3]与相对)2/3。m / n相对m/n还可以。两个单独的输入m,n并且也有效。 必须处理的Unicode分数如下: ½, ⅓, ⅔, ¼, ¾, ⅕, ⅖, ⅗, ⅘, ⅙, ⅚, ⅐, ⅛, ⅜, ⅝, ⅞, ⅑, ⅒ 因此,可能的输入如下: 1/2, 1/3, 2/3, 1/4, 3/4, 1/5, 2/5, 3/5, 4/5, 1/6, 5/6, 1/7, 1/8, 3/8, 5/8, 7/8, 1/9, 1/10 字符的Unicode代码点如下: 188 ¼ 189 ½ 190 ¾ 8528 …

7
半指数函数
阿半指数函数是一个当它与本身组成给出了一个指数函数。例如,如果为f(f(x)) = 2^x,则将f为半指数函数。在此挑战中,您将计算一个特定的半指数函数。 具体来说,您将使用以下属性计算从非负整数到非负整数的函数: 单调递增:如果x < y,则f(x) < f(y) 至少有一半指数:对于所有的x,f(f(x)) >= 2^x 词典上最小的:在具有以上属性的所有函数中,输出一个使maximums最小的函数f(0),给定选择,minimizes f(1),然后f(2),依此类推。 对于输入,此函数的初始值为0, 1, 2, ...: [1, 2, 3, 4, 8, 9, 10, 11, 16, 32, 64, 128, 129, 130, 131, 132, 256, 257, ...] 您可以通过以下任意一种方法将其输出为函数或完整程序: 以x作为输入,输出f(x)。 采取x作为输入,输出所述第一x值f。 无限输出所有f。 如果要取x并输出f(x),x必须为零索引。 参考实施 这是代码高尔夫-以字节为单位的最短代码获胜。一如既往,禁止出现标准漏洞。

3
解码人造盲文
⢣⠃⢎⠆⣇⡇⡯⡂⠈⡏⢰⢵⢐⡭⢸⠪⡀⢸⢐⡭⠀⢹⠁⢎⠆⢸⣱⢸⡃⢎⠰⡱⢸⣱⢸⡃⠈⡏⢸⡃⡱⡁⢹⠁⢸⡀⡇⡗⢅⢸⡃⠈⡏⢸⢼⢸⢐⡭⠀ ⣇⢸⡃⢹⠁⢹⠁⣟⢸⢕⢐⡭⠀⡮⡆⡯⡂⣟⠀⡯⠰⡱⢸⣸⢸⢕⠀⣏⡆⢎⠆⢹⠁⣪⠅⢸⢼⢸⠰⣩⢸⢼⠀⡮⡆⡗⢼⢸⣱⠀⢎⠆⡯⠀⢇⠇⡮⡆⡯⡂⡇⡮⡆⣟⡆⣇⢸⡃⠸⡰⡸⢸⢸⣱⠈⡏⢸⢼⠀ ⢎⠆⡗⢼⢸⡃⢸⡃⡗⠔⡇⡯⠂⢹⠁⢣⠃⠸⡸⢸⡃⡯⡂⢹⠁⡇⢎⢰⢵⢸⡀⢸⡀⡇⡗⢼⢸⡃⢐⡭⢸⡃⡯⠂⡮⡆⡯⡂⡮⡆⢹⠁⣟⢐⡭⠀⢎⢸⢼⢰⢵⢸⢕⢰⢵⠰⡁⢹⠁⣟⢸⢕⢐⡭⠀ ⡮⡆⢐⡭⢸⠕⢰⢵⠰⡁⣟⠀⡇⣪⠅⢈⣝⢸⡃⡯⡂⢎⠆⠸⡰⡸⢸⢸⣱⠈⡏⢸⢼⠀ ⣪⠅⢎⠆⢸⠈⡏⠀⣇⠰⡱⠰⡱⢸⠪⡀⣪⠅⢸⡀⡇⡗⢅⢸⡃⠸⡰⡸⠰⡱⢸⢕⢸⣱⢐⡭⠀⡮⡆⡯⡂⣟⠀⣪⠅⣟⢸⠕⢰⢵⢸⢕⢰⢵⠈⡏⢸⡃⣏⡆⢸⣳⠘⡜⠀⢹⠁⢇⢆⠇⢎⠆⢸⡀⡇⡗⢼⢸⡃⣪⠅ ⡇⡗⢼⢸⠕⢸⣸⠈⡏⠀⡇⣪⠅⢰⢵⠀⣪⠅⢹⠁⡯⡂⡇⡗⢼⠰⣩⠀⢎⠰⡱⢸⠢⡇⢹⠁⡮⡆⡇⡗⢼⢸⢸⠢⡇⢎⡅⢸⠅⡮⡆⣇⡇⡱⡁⢸⣳⢸⢕⢰⢵⢸⢸⡀⣇⢸⡃⠰⡱⢸⠅ ⢎⠆⡗⢼⢸⡀⢣⠃⢸⡃⡗⢼⠰⣩⢸⡀⡇⣪⠅⡧⡇⢸⣸⢸⠕⢸⠕⢸⡃⡯⡂⢎⢰⢵⢐⡭⢸⡃⢸⡀⣟⠈⡏⠈⡏⢸⡃⡯⡂⣪⠅⢰⢵⢸⠢⡇⣏⡆⢐⡭⢸⠕⢰⢵⠰⡁⣟⢐⡭⠀ ⡮⡆⣟⡆⢎⢸⣱⢸⡃⡯⠰⣩⢸⢼⢸⢀⠇⡗⢅⢸⡀⡗⠔⡇⡗⢼⠰⡱⢸⠕⠰⣩⡆⡯⡂⣪⠅⢹⠁⣇⡇⢇⠇⢇⢆⠇⡱⡁⢣⠃⣩⡃ ⢎⠆⣇⡇⢹⠁⡯⠂⣇⡇⢹⠁⢸⠢⢺⢰⢵⠘⡜⠀⣟⡆⣟⠀⣇⡇⡯⠂⡯⠂⣟⢸⢕⠀⢎⠆⡯⡂⢸⡀⢎⠆⢇⢆⠇⣟⢸⢕⠰⡁⡮⡆⣪⠅⣟⠀ ⣪⠅⡧⡇⢎⠆⡯⡂⢹⠁⣟⢐⡭⠈⡏⠀⢇⢆⠇⡇⡗⢼⢐⡭⠀ ⡗⢼⠰⡱⠀⣇⠰⡱⠰⡱⢸⠕⢸⢼⠰⡱⢸⡀⣟⢐⡭⠀ 上面的ASCII版本 ⡯⡂⣟⢸⡀⡮⡆⢹⠁⣟⢸⣱⠀ 关于盲文字符 盲文字符将4 x 2的矩形点封装在一起,可以将其视为布尔矩阵。 所有这些矩阵的串联是一个4 x 2 * n布尔矩阵,其中n是输入字符串的长度。 您应该寻找没有任何点的垂直线,并使用它们作为分隔符将每个字符的大矩阵分解为较小的矩阵。 然后,寻找将其转换为英文字母或空格的模式。请注意,删除分隔符(垂直的空线)后,空格为4 x 0矩阵。 以下是ASCII字母的说明: A | B | C | D | E | F | G | H | I | J | K | L …

21
确定丰度
超丰数是一个整数n,它为除数和函数 σ的比率设置了一个新的上限。换句话说,当且仅当对于小于n的所有正整数x而言,n才是多余的: σ(n)n>σ(x)xσ(n)n>σ(x)x\frac{\sigma(n)}n>\frac{\sigma(x)}x 对于一些值: n σ(n) σ(n)/n superabundant 1 1 1.0000 yes 2 3 1.5000 yes 3 4 1.3333 no 4 7 1.7500 yes 5 6 1.2000 no 6 12 2.0000 yes 7 8 1.1429 no 8 15 1.8750 no 9 13 1.4444 no 这些的较长列表(用于测试用例)可以在OEIS A004394中找到。 一个强烈推荐的否定测试用例(如果您的口译员可以处理的话)是360360,因为它与最后一个多余的数字联系在一起。 挑战 您的程序应采用单个正整数,并输出表示该整数是否过多的真实或错误值。 因为这是代码高尔夫球,所以最短的答案以字节为单位。

22
将ISBN-13转换为ISBN-10
介绍 在此挑战中,您的任务是,在给定书号为ISBN-13的情况下,为书籍生成ISBN-10代码。这样的ISBN-13代码由以下几部分组成-: 978-GG-PPPP-TTT-C 字母G(组),P(发布者),T(标题)和C(校验和)都代表一位数字。出于这一挑战的目的,分组和计算C(参见挑战)并不有趣,我们将删除所有连字符以简化此任务。 ISBN-10号的布局非常相似: GG-PPPP-TTT-c 字母G,P和T中的相同的13位数字的ISBN,但是c是不同的(并且使用不同的算法来计算)。c选择数字的方式应使以下等价成立(数字顺序): 10*G + 9*G + 8*P + … + 3*T + 2*T + 1*c = 0 (mod 11) 例 让我们考虑一下ISBN编号9780345391803:要获得其相应的ISBN-10代码,我们只需删除前导978和校验和3yield 034539180。 接下来,我们需要计算新的校验和: 10*0 + 9*3 + 8*4 + 7*5 + 6*3 + 5*9 + 4*1 + 3*8 + 2*0 = 185 下一个可被整除的数字11是187,因此新的校验和为2,因此得到的是ISBN-10代码0345391802。 规则 您的输入将始终具有一个对应的ISBN-10数字(即,该数字正好是13位数字,以开头978) …

8
建立这座金字塔
你的金字塔 我要您建造的金字塔完全由立方体组成。它有24层,从顶部开始的第 N 层包含以N×N正方形排列的N 2个立方体。金字塔看起来像这样: 要建造金字塔,您将需要大量的多维数据集。您将得到4900个立方体,它们以70 x 70的正方形排列,如下所示: (好的,我承认正方形的图片完全没有必要。) 由于1 2 + 2 2 + 3 2 + ... + 24 2 = 70 2,因此您拥有正确数量的立方体来构建金字塔。您所要做的就是告诉我每个多维数据集应该放在哪里。 你的任务 您应该在正方形的立方体和金字塔的立方体之间选择任意双射。(如果您的回答说出您使用的是哪种4900,那就太好了。) 然后,编写执行以下操作的函数或程序: 给定一个立方体在70 x 70平方中的位置(作为一对坐标(X,Y)), 输出其在金字塔中的位置(作为三坐标(A,B,C))。 输入和输出坐标都可以是0索引或1索引。假设索引为1,则您的输入(X,Y)将是一对1到70之间(A,B,C)的整数。A应该是从顶部开始计数的层(介于1和24之间),并且(B,C)应该是该层中该立方体的坐标(介于1和之间A)。 例如: 金字塔的顶部立方体有坐标(1,1,1)。 金字塔的底座的四个角上有坐标(24,1,1),(24,1,24),(24,24,1),和(24,24,24)。 如果决定将正方形的角放置在金字塔的角上,则在输入(70,1)时可以给出输出(24,24,1)。 您可能会假设您只会获得有效的坐标(X,Y)作为输入。正确性完全由以下规则决定:两个不同的有效输入应始终给出两个不同的有效输出。 这是代码高尔夫球:最短的代码获胜。

11
它是它本身的子串吗?
给定一个字符串,返回该字符串是否是程序源代码的子字符串。 应用标准的quine规则,这意味着您无法阅读自己的源代码。确保输入的长度小于或等于程序的长度。您可以返回任何两个不同的值,不一定返回true和false值。您也可以提交功能而不是完整程序。 这是一个代码高尔夫球,所以最短的代码胜出! 一个例子 如果你的源代码print(input() = False),它应该返回True为nt(i,但假的tupn。

30
比较以字符串形式给出的两个数字
我上班有问题。我需要比较来自两个不同数据库的两个数字作为字符串。数字可能带有前导零和/或前导/后跟空格。所以我可能"0001 "来自一个数据库,也可能来自另一个数据库" 1 "。 我用以下代码解决了C#中的问题: Func<string, string, bool> f = (a,b) => int.Parse(a.Trim()) == int.Parse(b.Trim()) 挑战 这是一个非常简单的挑战,适合初学者和任何深奥的语言。给定两个数字作为可能带有前导零和/或前导/后跟空格的字符串,请编写最短的代码来检查两个字符串是否表示相同的数字。 输入必须是两个字符串或您的语言中的等效字符串(char数组可以),它们将始终表示大于零的整数值。 输出必须是代表真值和假值的任何两个一致值。 例子 A B Result ---------------------------- "0001" "1 " true "1450" "1450 " true "0010001 " " 10001 " true "0010000" " 10 " false "101023" "101024" false 这是代码高尔夫球,因此每种语言的最短代码可能会胜出!

27
VEVO用户帐户检查器
我们经常在YouTube上看到音乐视频。许多托管音乐视频的YouTube频道都是“由VEVO提供支持”的。通过将VEVO嵌入到其视频缩略图中并将VEVO附加到其频道名称,可以轻松识别这些内容。 现在,编写一些代码来测试用户给定的字符串是否为VEVO用户帐户。 有效的VEVO用户帐户字符串的要求: 必须仅包含大写,小写和数字字符。(无空格或标点符号) 长度不能超过80个字符。 字符串末尾必须有“ VEVO”子字符串 测试用例: 有效输入: AdeleVEVO ConnieTalbotVEVO SHMVEVO justimberlakeVEVO DJMartinJensenVEVO test123VEVO 输入无效: syam kapuk jypentertainment Noche de Brujas testVEVO123 当然,因为这是code-golf,所以我正在寻找使用任何编程语言的最短代码。

9
小组是周期性的吗?
介绍 如果您已经知道什么是循环组,则可以跳过此部分。 一个组是由一个集合和一个关联的二进制运算定义的$(也就是说,(a $ b) $ c = a $ (b $ c)。该组e中仅存在一个元素,而a $ e = a = e $ a对于该组中的所有元素a(恒等)。对于a该组中的每个元素,都存在一个精确的b使得a $ b = e = b $ a(逆)元素对于组中的每个两个元素a, b,a $ b都位于组中(闭包)。 我们可以a^n代替来写a$a$a$...$a。 通过任何元件产生的循环子a组中的是<a> = {e, a, a^2, a^3, a^4, ..., a^(n-1)},其中n是子组的顺序(大小)(除非该亚型是无限的)。 如果一个组可以由其元素之一生成,则它是循环的。 挑战 给定有限群的Cayley表(乘积表),确定它是否为循环的。 例 让我们看一下下面的Cayley表: 1 2 3 …

11
骑士在N步能走到哪里?
这是APL CodeGolf 秋季比赛的第 3洞。我是该问题的原始作者,因此可以在此处重新发布。 鉴于: 转数(如果没有运动为0,请说明,否则我们将其称为1), 在8 x 8棋盘上的一个或多个起始位置(以任何形式,例如0或1索引坐标或64个连续的数字/字符或A1-H8 –状态)的列表, 返回(以任何顺序)在给定匝数后,骑士可以位于的唯一位置列表(与输入格式相同)。 每个骑士必须每转一个步,但您不必担心多个骑士占据同一广场。 骑士只能相对于其当前位置移动到标记为X的位置,标记为♞: 示例(1索引坐标) 1从[[1,1]]: [[2,3],[3,2]] 2来自[[1,1]]: [[1,1],[1,3],[1,5],[2,4],[3,1],[3,5],[4,2],[4,4],[5,1],[5,3]] 1从[[1,1],[5,7]]: [[2,3],[3,2],[3,6],[3,8],[4,5],[6,5],[7,6],[7,8]] 2来自[[1,1],[5,7]]: [[1,1],[1,3],[1,5],[1,7],[2,4],[2,6],[2,8],[3,1],[3,3],[3,5],[3,7],[4,2],[4,4],[4,6],[4,8],[5,1],[5,3],[5,5],[5,7],[6,4],[6,6],[6,8],[7,3],[7,7],[8,4],[8,6],[8,8]] 0来自[[3,4]]: [[3,4]]

25
解析我的世界语!
世界著名的构造语言世界语使用拉丁字母(有关详细信息,请参见链接的维基百科页面)。但是,有些字符带有重音:characters,ĉ,ĥ,ĵ,ŝ和ŭ。(C抑扬音,g抑扬音,h抑扬音,j抑扬音,s抑扬音和超音。)自然地,这些字符很难键入。即使是这个问题,我也必须在Unicode选择器中搜索字符。因此,已经开发了使用字母“ x”的约定以用于电子用途。例如,“ cxu”用于“ĉu”。(注意:世界语字母通常不使用字母“ x”。” 但是,我是一个语言纯粹主义者!这个“空中报价” *胡说八道杀了我!我需要一个程序来解决此问题,最好尽可能短,以便可以尽快将其输入到我的终端中! 挑战 您的任务是使用x约定获取一串世界语,并将其转换为真实的世界语。 实际上,您必须映射: cx: ĉ gx: ĝ hx: ĥ jx: ĵ sx: ŝ ux: ŭ Cx: Ĉ Gx: Ĝ Hx: Ĥ Jx: Ĵ Sx: Ŝ Ux: Ŭ 所有其他可打印的ASCII字符都应被接受并且不能更改。Unicode会很好,但不是必需的。 输入和输出可以采用适合您的语言的任何格式。祝好运! 测试用例 "input" : "output" _____________ "gxi estas varma" : "ĝi estas varma" "Cxu sxi sxatas …

12
删除不明确的复数!
编程非常严格。您不能告诉程序“输出香蕉计数”,而必须告诉它print(bananas)。 但是,当您这样做时,最终会遇到一个问题:您不知道事先拥有多少个香蕉,因此您不知道是否使用复数。 有时,程序员会走懒惰的路。他们只检查而不是检查there are X banana(s)。 但这很丑陋,因此我们需要一个程序来解决此问题。 方法) 要删除字符串中的歧义复数,请执行以下步骤: 将空格上的字符串分成单词列表。 对于以结尾的每个单词(s),请执行以下操作: 如果前面的字是a,an,1或one,除去(s)在字的结尾。 否则,如果该字是第一个字在字符串中或前述字不是a,an,1或one,替换(s)在与字的末尾s。 将单词列表重新组合成一个字符串,以保留原始空格。 例子) 让我们来一个字符串there's a banana(s) and three apple(s)。 首先,我们将字符串分成单词列表: ["there's", "a", "banana(s)", "and", "three", "apple(s)"] 第二步,我们使用两个以(s):banana(s)和结尾的单词apple(s)。 之前的单词banana(s)是a,因此我们删除了(s)它banana。这个词之前apple(s)是three的,所以我们改(s)到s,因此变得apples。 我们现在有["there's", "a", "banana", "and", "three", "apples"]。将列表重新加入,我们得到there's a banana and three apples。这是我们的最终结果。 挑战 创建一个程序或函数,该程序或函数采用任意合理格式的模糊字符串,并返回该字符串的明确版本。 您可以假定该字符串不包含任何换行符,制表符或回车符。 我忘了指定是否对空间或空间(即,是否组织分裂了okay then两个空格应该是["okay", "then"]或["okay", "", "then"]张贴的挑战时,那么你可以假设分裂两种形式)。 测试用例) …
21 code-golf  string 

15
扩展数组
给定两个正整数p和q,您的任务是返回通过应用以下算法创建的数组A: 以A = [p,q]和d = 2开头 对于每一对(X,Y)中的连续号码的甲,其总和为整除d,插入(X + Y)/ d之间X和ÿ。 如果找到至少一对匹配的对,则增加d并继续执行步骤#2。否则,停止并返回一个。 例 以下是p = 1和q = 21时的详细过程。 1 21 | Iteration #1: we start with d = 2 and A = [1, 21] \/ | 1 + 21 is divisible by 2 -> we insert 11 22/2=11 | | 1 …

13
矩阵排名第一吗?
给定一个整数矩阵,测试它是否为秩一,这意味着每一行都是同一向量的倍数。例如,在 2 0 -20 10 -3 0 30 -15 0 0 0 0 每行是的倍数1 0 -10 5。 相同的定义也适用于列代替行。另外,如果矩阵像一个乘法表,则它是排名第一的矩阵: * 1 0 -10 5 ---------------- 2 | 2 0 -20 10 -3 | -3 0 30 -15 0 | 0 0 0 0 我们已经分配了行标签r[i]和列标签,c[j]因此每个矩阵条目M[i][j]都是对应标签的乘积M[i][j] = r[i] * c[j]。 输入: 整数矩阵作为您选择的2D容器。例如,列表列表,2D数组或类似列表。除非数组格式要求,否则不应将width或height作为附加输入。 矩阵可以是非正方形的。它将至少有一个非零条目-您不必处理空矩阵或零矩阵。 …

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.