编程拼图和代码高尔夫

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

14
推导其指数生成函数为正切的序列
几乎每个函数都可以表示为具有无限项的多项式。 例如, e^x = 1 + x + x^2/2! + x^3/3! + x^4/4! + ... 例如, sin(x) = x - x^3/3! + x^5/5! - x^7/7! + ... n第-个项的系数形成一个序列,相应的函数称为生成函数该序列。 的系数 n第-项形成一个序列。 通常,n-th项的分母为n!。因此,我们将系数乘以n!得到另一个序列,该序列的指数生成函数将是原始函数。 例如,其指数生成函数为的序列e^x将为1,1,1,1,...。 例如,其指数生成函数为的序列sin(x)将为0,1,0,-1,0,1,0,-1,...。 任务 您的任务是找到指数生成函数为n的序列的第n个项。tan(x) 测试用例 n result 0 0 1 1 2 0 3 2 4 0 5 16 …

12
Oneliner合并具有相同第一个字段的行
这是我的第一个代码高尔夫问题,因此,如果不合适的话,我谨此致歉,并欢迎您提供任何反馈。 我有一个具有这种格式的文件: a | rest of first line b | rest of second line b | rest of third line c | rest of fourth line d | rest of fifth line d | rest of sixth line 实际内容和定界符也有所不同。内容只是文本。分隔符每行仅出现一次。对于这个难题,可以随意更改定界符,例如,使用“%”作为定界符。 所需的输出: a | rest of first line b | rest of …


2
图像捉迷藏
在这一挑战中,您需要在照片中找到特定像素(用真实相机拍摄)。 您将传递一个(R,G,B)元组和一个图像,并且需要在图像中返回一个与给定RGB颜色匹配的点(x,y)。图像可能具有与颜色匹配的多个点。您只需要找到1。 的挑战是,你需要做的是在阅读的几个像素越好。您的分数将是在所有测试用例中读取的像素总数。 如果愿意,只要不对像素进行任何处理,就可以将整个图像读取为RGB值数组。我完全出于效率目的而允许这样做。例如,在Python中list(Image.open("image_name+".jpg").convert("RGB").getdata())就可以了。 不允许硬编码位置。您的算法不仅适用于下面列出的测试用例,还应能很好地工作。不允许在测试用例之间保存数据。我选择<10了在图像中不经常出现的RGB值()(以免影响您的算法)。如果您在算法中使用随机性,请设置一个种子,以使分数保持恒定。 图片可以在Github上找到 测试用例: image_name: (r, g, b) [all possible answers] barn: (143,91,33) [(887,1096),(2226,1397),(2007,1402),(2161,1508),(1187,1702)] (53,35,59) [(1999,1260)] (20,24,27) [(1328,1087),(154,1271)] (167,148,176) [(1748,1204)] (137,50,7) [(596,1498)] (116,95,94) [(1340,1123)] (72,49,59) [(1344,857),(1345,858),(1380,926),(1405,974),(1480,1117)] (211,163,175) [(1963,745)] (30,20,0) [(1609,1462),(1133,1477),(1908,1632)] (88,36,23) [(543,1494),(431,1575)] daisy: (21,57,91) [(1440,1935),(2832,2090),(2232,2130),(1877,2131),(1890,2132)] (201,175,140) [(1537,1749),(2319,1757)] (169,160,0) [(2124,759)] (113,123,114) [(1012,994),(2134,1060),(1803,1183),(1119,1335)] (225,226,231) [(3207,829),(3256,889),(3257,889),(1434,981),(2599,1118),(2656,1348),(2656,1351)] (17,62,117) [(2514,3874),(2336,3885)] (226,225,204) [(3209,812)] …

4
除数图中的最短路径
介绍 在这个挑战中,我们将处理某个无限的无向图,我将其称为高除数图。其节点是从2开始有两个节点之间的边缘的整数A <B ,如果一个分割b和一个2 ≥b 。由2到18范围组成的子图如下所示: 16-8 12 18 \|/ |/| 4 6 9 10 15 14 | |/ |/ | 2 3 5 7 11 13 17 可以证明无限高的除数图是连通的,因此我们可以询问两个节点之间的最短路径。 输入输出 您的输入是两个整数a和b。您可以假定2≤a≤b <1000。您的输出是无限高除数图中a和b之间的最短路径的长度。这意味着路径中的边数。 您可能会发现以下事实很有用:始终存在从a到b的最佳路径,该路径先增大然后减小,并且仅访问严格小于2b 2的节点。特别地,由于b <1000,您只需要考虑小于2000000的节点。 例子 考虑输入3和32。节点3和32之间的一条可能路径是 3 -- 6 -- 12 -- 96 -- 32 该路径有四个边,结果没有较短的路径,因此正确的输出是4。 作为另一示例,用于最佳路径2和25是 2 -- …

1
生成循环数组
介绍 甲指针数组是一个数组L,其中的非零整数0 ≤ L[i]+i < len(L)为所有指数保持i(假定从0开始的索引)。我们说索引i 指向索引L[i]+i。如果索引形成一个length周期,则指针数组是一个循环len(L)。这里有些例子: [1,2,-1,3]不是指针数组,因为3不会指向索引。 [1,2,-1,-3]是一个指针数组,但不是循环,因为没有索引指向-1。 [2,2,-2,-2] 是一个指针数组,但不是一个循环,因为索引形成两个周期。 [2,2,-1,-3] 是一个循环。 输入值 您的输入是以任何合理格式显示的非零整数的非空列表。它可能未排序和/或包含重复项。 输出量 您的输出将是一个循环,该循环包含输入列表中的所有整数(也可能还有其他整数),并计算重复数。它们不必以与输入中相同的顺序发生,并且输出在任何意义上都不必最小。 例 对于输入[2,-4,2],可接受的输出为[2,2,-1,1,-4]。 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。感谢您在答案中包含几个示例输入和输出。 测试用例 这些以格式给出input -> some possible output(s)。 [1] -> [1,-1] or [1,1,1,-3] [2] -> [2,-1,-1] or [1,2,-2,-1] [-2] -> [1,1,-2] or [3,1,2,-2,-4] [2,-2] -> [2,-1,1,-2] or [2,-1,2,-2,-1] [2,2,2] -> [2,-1,2,-2,2,-2,-1] …

30
单独的字母和数字
一段文字混合了数字和字母。您的任务是按照每行的相同顺序将数字左侧和右侧的字母分开。 规则: 数字是纯整数;因此没有小数点,也没有负/正号。 数字可能是连续的,也可能不是连续的,但是无论如何,它们都必须以相同的顺序推到左侧。 单词之间可能出现数字。 文本仅包含ASCII字母和数字,以及空格,下划线,逗号和点。 用最少的按键操作(如vim宏)或最少的字节数(在编写脚本的情况下)执行此操作的人就是赢家。 示例文字: A word can have any number of text like 433884, but all the numb89ers has to be moved left side but alph6abetical va9lues has to be pas46ted on right side. The text might con4tain chara29cters s2huffled like hlep or dfeintino or even …

5
自动房屋建筑商
自动房屋建筑纳米机器人已经制造出来,编写它们是您的工作。 这是通过输入创建的房子 7 4 2 /-----/| / / | |-----| | | | | | | / |_____|/ 输入是包含房屋尺寸的字符串。 7 是宽度。 |_____| ---7--- 4 是高度。 | | | | 2 是深度 / / 有了这个输入,您可以建造房屋吗? 您的代码必须尽可能小,以使其适合机器人。 笔记 您将输入的最小尺寸为3 2 2。您的程序可以执行尺寸小于3 2 2。 测试用例 3 2 10 /-/| / / | / …

10
最短的语法窗口
连字符是包含所有26个字母的句子或摘录,如本代码高尔夫球挑战中所示。但是,语法窗口是某种文本片段形式的语法,可能在一个较大的作品中的某个地方出现或终止于单词的一半。这些自然地随处可见,是真正的Pangram的适当子集,因此只需验证某物是否包含Pangrammatic窗口就很无聊,而且之前也已完成。 因此,我们有兴趣根据字母长度找到给定文本中最小的文本!当然,以最短的代码(以字节为单位)以适合主题。 规则与准则 接收一个字符串作为输入,如果存在,则返回输入中最小的语法窗口的字符串。如果没有,则返回布尔False或空字符串。 字符串是否为语法窗口不区分大小写,仅取决于26个字母,而不取决于任何标点符号,数字或其他奇数符号。 同样,语法窗口的字母长度是单独出现在其中的字母出现的总数,而不仅仅是每个字符的数量。基于此计数,返回值必须最小。毕竟,我们是语言学家,而不是程序员。 但是,语法化窗口的输出必须是输入的精确子字符串,包含相同的大小写和标点符号等。 如果存在多个具有相同字母长度的最短的语法窗口,则返回其中任何一个。 测试用例 'This isn't a pangram.' ==> False 'Everyone knows about that infamous Quick-Brown-Fox (the one who jumped over some lazy ignoramus of a dog so many years ago).' ==> 'Quick-Brown-Fox (the one who jumped over some lazy ig' '"The five boxing wizards …
15 code-golf  string 

9
球拍/计划中的高尔夫技巧
您在球拍 / 计划中打高尔夫球有哪些一般提示?我正在寻找可用于编码高尔夫问题的想法,这些想法至少在某种程度上特定于球拍/计划(例如,“删除评论”不是答案)。 我知道Scheme和Racket(以前称为PLT Scheme)在技术上是不同的语言,但是在许多方面都非常相似,并且很多代码(我怀疑)都将按两种方式运行。如果您的提示仅适用于上述一种语言,请注意。
15 code-golf  tips  lisp 

5
编码代码页
介绍 代码页将整数值映射到特定字符。我们可以像这样可视化代码页: + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- + --- +- -+ --- + --- + --- +- | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | …

30
切换字符串
挑战涉及简单地在另一个字符串中切换一个字符串。 说明 如果切换字符串是主字符串的子字符串,则从主字符串中删除切换字符串的所有实例; 否则,将切换字符串附加在main string的末尾。 规则 所有字符串均由可打印的ASCII字符组成 该函数应带有两个参数:主字符串和切换字符串。 在主串可以是空的。 该拨动弦不能为空。 结果应该是一个字符串,可以为空。 最短的答案将获胜。 例子 function toggle(main_string, toggle_string){ ... } toggle('this string has 6 words ', 'now') => 'this string has 6 words now' toggle('this string has 5 words now', ' now') => 'this string has 5 words' 测试案例 '','a' => 'a' …
15 code-golf  string 

10
确定输入的类型
挑战很简单:确定输入的类型,然后输出一个标识它是什么类型的标识符。 “UI”,无符号整数:0,1,34,111111111111111111111111111111111111111111 “SI”,有符号整数:+0,+1,+42,-1,-3,-111111111111111111111111111111111111111111 “UD”无符号十进制:0.0,1.23,1234.1234 “SD”,符号十进制:-0.0,+0.0,-1.235 “ LE”,字母:a- z和A-Z “ SY”,符号:ASCII代码点:([32-47, 58-64, 91-96, 123-126]即,除数字和字母外的所有字符) “ ST”,字符串:两个或多个无法解析为上述任何数字格式的字符 规则: 输入的长度为1-99个字符 输入将仅包含可打印的ASCII字符,代码点:32-126。 输出应该是上面定义的两个标识符字母(UI,SI ...) 适用标准I / O规则 例子: UI: 0 01 34 12938219383278319086135768712319838871631827319218923 SI: -0 +01 +1 -123 +123 UD: 0.0 3.1415 2.718281828459045235360287471352662497757 SD: +0.0 -3.1415 +2.718281828459045235360287471352662497757 LE: a k L Z SY: @ …

12
多维数据集距离数的稀有度
灵感来自这个 Numberphile进入 背景 整数n的立方距离数在此定义为一组整数,它们是给定x的x³距离。举一个简单的例子,使用和时,立方体距离数为。n=100x=2{92,108} 只需更改x即可将其扩展为更大的集合。使用x ∈ {1,2,3,4}和相同n=100,我们得到结果集{36,73,92,99,101,108,127,164}。 让我们来定义CD(N,X)的所有整数的集合n ± z³带z ∈ {1,2,3,...,x}。 现在我们可以集中讨论这些立方距离数字的一些特殊属性。在数字可以具有的许多特殊属性中,我们在此处感兴趣的两个属性是素数和素数除数。 对于上面的示例CD(100,4),请注意它们73, 101, 127都是素数。如果将它们从集合中删除,则剩下{36,92,99,108,164}。这些数字的所有主除数都是(按顺序){2,2,3,3,2,2,23,3,3,11,2,2,3,3,3,2,2,41},这意味着我们有5个不同的主除数{2,3,23,11,41}。因此,我们可以定义CD(100,4)具有ravenity 1中5。 这里的挑战是以最小的字节编写一个函数或程序,以输出给定输入的泛滥。 输入值 两个正整数n和x,采用任何方便的格式。 输出量 当用CD(n,x)计算时,一个整数,描述两个输入数字的奇异性。 规则 输入/输出可以通过任何合适的方法。 适用标准漏洞限制。 为了便于计算,您可以假设输入数据将使CD(n,x)在集合中仅具有正数(即,没有CD(n,x)会具有负数或零)。 该函数或程序应该能够处理输入数字,以便n + x³适合您语言的本机整数数据类型。例如,对于32位带符号整数类型,所有输入数字n + x³ < 2147483648都可以。 例子 n,x - output 2,1 - 0 (since CD(2,1)={1,3}, distinct prime divisors={}, ravenity=0) 5,1 - 2 100,4 …

6
玩具店利润
故事 “ 2016年?好吧。”玩具销售商希尔伯特抱怨道。他睁开眼睛,擦干沙拉酱从耳朵里滴了出来,吃了早晨的起司奶油。典范假期。不过,他现在需要去上班,并完成年度会计。 圣诞节是一年中非常丰收的时期,尤其是对他的销售而言。希尔伯特(Hilbert)确切地知道它是如何工作的:一个人走进商店,购买了他们提供的第一份礼物。他们为此付费并跑到另一家商店。在实践中,礼物实际上是什么并没有真正改变。价格也不要紧,前提是价格不要太高。这完全取决于圣诞节前的剩余时间-时间越短,客户的悔恨就越大,他们愿意支付的价格就越高。 希尔伯特所需要做的就是看他的手表-他马上就知道他的顾客可以花多少钱。他可以轻松地利用这一事实:他只是找到可以出售给特定客户的最昂贵的礼物,并将其提供给他们。直到现在,他才意识到自己去年忘记采用这种狡猾的策略。那会改变的! 尽管如此,希尔伯特想知道如果他实际上使用了他的宏伟计划,他的生意将会蓬勃发展。他设法将来商店的人的名单汇总在一起,但是他不确定自己可以为他们赚多少钱。 您的任务(TL; DR) 输入包括可用礼物价格的升序列表和客户预算的列表。预算清单的顺序与客户到达商店的顺序相同-条件是每个客户都愿意至少支付与前者相同的费用,这意味着预算也在不断增加。 对于每个客户,找到他们愿意支付的最昂贵的礼物,然后输出价格。如果预算内没有可用的礼物,则输出0。 -40%如果算法的渐近时间复杂度为O(n+m)(而不是琐碎的O(n*m)),那么您将获得字符奖励,其中n, m输入列表的长度在哪里。 这是代码高尔夫球,最短字节获胜。禁止出现标准漏洞。 例 输入: 1 2 2 2 5 7 10 20 1 1 2 3 6 6 15 21 21 22 输出: 1 0 2 2 5 2 10 20 7 0 这项任务是从本地编程比赛中提取的,由我翻译成英语。这是原始作业:https : //www.ksp.sk/ulohy/zadania/1131/
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.