编程拼图和代码高尔夫

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

3
证明我是错的!
介绍 您的人生使命很简单:在互联网上证明人们做错了! 为此,您通常会仔细分析他们的陈述并指出他们之间的矛盾。 现在该使它自动化了,但是由于我们很懒惰,所以我们希望以最小的努力(最短代码)证明人们是错误的。 规格 输入项 您的输入将是合取范式的公式。对于格式,可以根据您的语言需要使用以下格式或定义自己的格式(不过,您可以使用的格式编码不能超过纯CNF)。但是,测试用例(此处)以以下格式提供(尽管生成您自己的用例并不难)。 您的输入将是一个变量列表的列表(您也可以将其读为字符串/需要字符串)。输入是合取范式(CNF)的公式,写为一组子句,每个子句都是两个列表的列表。子句中的第一个列表对正文字(变量)进行编码,第二个列表对负(负)文字(变量)进行编码。子句中的每个变量都进行“或”运算,所有子句都进行“与”运算。 更清楚地说:[[[A,B],[C]],[[C,A],[B]],[[B],[A]]]可以理解为: (A OR B OR (NOT C)) AND (C OR A OR (NOT B)) AND (B OR (NOT A)) 输出量 输出为布尔值,例如某个真实值或一些虚假值。 该怎么办? 很简单:检查手头给出的公式是否可以满足要求,例如,是否对所有变量都分配了true和false,以便整个公式得出“ true”。如果公式可满足要求,则输出将为“ true”,否则为“ false”。 事实:在一般情况下,这是一个NP完全问题。 注意:允许生成真值表并检查结果是否为真。 角落案例 如果您得到一个空的3级列表,则该子句中没有这样的(正/负)变量-有效输入。 如果需要,可以保留其他不确定的情况。 您也可以在公式为空(一级列表)时返回true,在子句为空(二级列表)时返回false。 谁赢? 这是代码高尔夫球,因此最短的答案以字节为单位! 标准规则当然适用。 测试用例 [[[P],[Q,R]],[[Q,R],[P]],[[Q],[P,R]]] -> true [[[],[P]],[[S],[]],[[R],[P]],[[U],[Q]],[[X],[R]],[[Q],[S]],[[],[P,U]],[[W],[Q,U]]] -> true …
22 code-golf  math  logic 

10
这个正方形对称吗?
写一个程序或函数,它在一个4×4栅格的文本组成的正好是4 A的,4 B'S,4 C's和4 D的,如: ACDC BBCA BADD ABCD 所述ABCD的可以是任何布置,但总是会有各自的4。您可以假定输入有效。如果需要,您还可以假定它具有尾随换行符和/或它按阅读顺序排成一行,例如ACDCBBCABADDABCD。如果需要,您也可以分别ABCD用0123或替换字符1234(仅此而已)。 如果文本网格具有任何形式的反射对称或旋转对称,则输出真实值。特别: 如果有一条中心水平对称线。例如 BACD BACD BACD \___ bottom mirrors top BACD / 如果有一条中心垂直对称线。例如 BCCB DAAD CAAC BDDB \/___ right mirrors left 如果有对角线对称线(在任一方向上)。例如 ___ diagonally mirrored / ABDC BACD DCAB CDBA \___ diagonally mirrored 如果存在90°旋转对称性。例如 BDAB ACCD same if rotated 90 degrees …

2
虚拟键盘文字输入
在现代游戏机和其他没有传统键盘的设备上,尝试输入文本是一场噩梦。不得不在虚拟键盘上用几个按钮和操纵杆来打字是很烦人的,而且我希望尽可能少地进行动作/按钮按下。 您将使用的键盘如下所示: +---+---+---+---+---+---+---+---+---+---+ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | +---+---+---+---+---+---+---+---+---+---+ | q | w | e | r | t | y | u | i | o | p | +---+---+---+---+---+---+---+---+---+---+ | a | …

24
排序乐队名称
挑战说明 你有许多乐队,每个都有一个名字录制了许多歌曲音乐库,如Queen,Aerosmith,Sunny Day Real Estate,The Strokes。当音频播放器按乐队名称按字母顺序显示您的音乐库时,通常会跳过该The部分,因为许多乐队名称都以开头The,从而更容易浏览媒体集。在此挑战中,给定一个字符串列表(数组),您需要以这种方式对其进行排序(即,省略The名称开头的单词)。您可以编写方法或完整的工作程序。 样本输入/输出 [Queen, Aerosmith, Sunny Day Real Estate, The Strokes] -> [Aerosmith, Queen, The Strokes, Sunny Day Real Estate] [The Ramones, The Cure, The Pixies, The Roots, The Animals, Enrique Iglesias] -> [The Animals, The Cure, Enrique Iglesias, The Pixies, The Ramones, The Roots] [The …

18
高尔夫找到无聊的数字
如果一个整数中有一个数字/数字序列连续重复(您将理解为什么我说“连续”)5次或更多次,我们称其为“无聊”。 例如,“ 11111无聊”而12345不是“ 无聊” 。 使用说明 以整数作为输入 如果整数无聊,则输出真值;如果整数无聊,则输出假值。 例 11111=> true或1(1重复5次) 12345=> false或0 1112111=> false或0 4242424242=> true或1(42次重复5次) -11111=> true或1 3452514263534543543543543543876514264527473275=> true或1(543重复5次) 如果您使用其他类型的“真”和“假”,请指定它。 规则 基本的代码高尔夫球规则适用。 祝好运!
22 code-golf  number 

20
反转并减去
挑战说明 让我们取一个正整数n,反转其数字以获得rev(n)并获得这两个数字之差的绝对值:(|n - rev(n)|或abs(n - rev(n)))。 例: n = 5067 rev(n) = 7605 |n - rev(n)| = |5067 - 7605| = |-2538| = 2538 重复多次此操作后,大多数数字将变为 0(从而终止循环)... 5067 -> 2538 -> 5814 -> 1629 -> 7632 -> 5265 -> 360 -> 297 -> 495 -> 99 -> 0 ...虽然有些数字(例如 1584)陷入了无限循环: 1584 …

12
多项式感知
给定两个f,g整数的任意多项式的多项式,您的程序/函数应评估第二个多项式中的第一个多项式。f(g(x))(又名两个多项式的合成 (fog)(x)) 细节 允许内置。您可以假定任何合理的格式作为输入/输出,但是输入和输出格式应该匹配。例如格式化为字符串 x^2+3x+5 或作为系数列表: [1,3,5] or alternatively [5,3,1] 此外,可以假定输入多项式被完全展开,并且期望输出也被完全展开。 例子 A(x) = x^2 + 3x + 5, B(y) = y+1 A(B(y)) = (y+1)^2 + 3(y+1) + 5 = y^2 + 5y + 9 A(x) = x^6 + x^2 + 1, B(y) = y^2 - y A(B(y))= y^12 - …

5
换向27个功能
介绍 让我们将三元函数定义为从三元素集S = {0,1,2}到其自身的函数:它与的S另一个元素的每个元素相关联S。三元函数的一个示例f是 f(0) = 0; f(1) = 2; f(2) = 0 共有27种不同的三元函数,我们用0到26之间的整数表示它们:函数f编码为f(0) + 3*f(1) + 9*f(2)。上面的示例函数被编码为数字6。 我们可以应用两种三元功能f和g顺序,如果f(g(k)) == g(f(k))适用于所有k在S,那么功能上下班。您的任务是验证是否是这种情况。 输入项 您的输入是两个整数,范围从0到26。它们表示两个三元函数,f并且g。输入必须采用十进制,二进制或一元(1s的字符串)格式。 输出量 如果和,您的输出是真实值fg下班,。您可能不认为输入是有序的。 例子 考虑输入5和16。它们对三元函数进行编码 f(0) = 2; f(1) = 1; f(2) = 0 g(0) = 1; g(1) = 2; g(2) = 1 我们有f(g(1)) == f(2) == 0和g(f(1)) …

2
在2D地牢中找到宝藏
您位于一楼的地牢中。有一个被锁着的门保护的宝藏。可以通过找到相应的钥匙来打开门。您的目标是找到通往宝藏的最短路径。 输入项 输入将是代表地牢初始布局的二维网格。 ########### #$ # g# # # #### ###G## # # ####C# #c @ # ########### 这是您:@ 这些是墙壁:# 这是宝藏:$ 锁着的门是大写字母:A... Z 每扇门都有对应的小写字母:a...z 永远存在一个@和一个$。 地牢将始终为矩形。 不能保证地牢的外边缘是一堵墙。这是有效的地牢: $ A## @ a 不能保证宝藏是可以到达的。有些地牢可能无法解决。 可能有些门没有钥匙,并且有些钥匙没有打开任何门。 永远不会有重复的门或钥匙。 输出量 程序应该打印的序列R,L,U,D(或4个其它不同符号)来表示最短可能路径宝。在此,分别RLUD代表右,左,上和下。如果有多个最短路径,则程序只需要打印其中一条即可。 您不能移动到墙上。 您不能移动到地牢边界之外。 您必须先捡起钥匙才能上门。 移至钥匙上进行拾取。 不必打开每一扇门。 如果无法通过有效的移动顺序到达宝库,则您的程序必须终止而不打印任何内容。(允许尾随换行符。) 计分 这是代码高尔夫球,因此具有最低字节数的答案将获胜。 测试用例 每个测试用例的第一行都将具有地牢的高度和宽度,最后一行将具有最佳移动次数的一条可能路径。 1 2 @$ R …

15
计算N的分区
您的挑战很简单:给定一个整数N,输出每个总和为N的正整数列表。例如,如果输入为5,则应输出 [1, 1, 1, 1, 1] [1, 1, 1, 2] [1, 1, 3] [1, 2, 2] [1, 4] [2, 3] [5] 这些列表不必以任何特定顺序输出,每个列表中的数字也不必。例如,这也是'5'的可接受输出: [1, 1, 1, 2] [5] [3, 1, 1] [2, 1, 2] [4, 1] [1, 1, 1, 1, 1] [2, 3] 您可以放心地假设输入将是一个正整数,并且您可以采用任何合理的格式使用此数字。 您不得使用任何内置函数来执行此操作。 如果您的程序失败或对于N而言花费的时间太长,这可以,但是您至少必须为前15个产生正确的输出。 存在标准漏洞,最短的答案以字节为单位! 测试IO 1: [[1]] 2: …

6
古西班牙字母顺序
在1994年之前,西班牙词典使用字母顺序排列,具有特殊性:有向图ll,ch被认为是单字母。ch立即跟进c,并ll立即跟进l。添加以西班牙语开头的字母ñ,n则顺序为: a, b, c, ch, d, e, f, g, h, i, j, k, l, ll, m, n, ñ, o, p, q, r, s, t, u, v, w, x, y, z 自1994年以来ll,并ch被认为是(两个字母组l,l并且c,h分别地),并且因此按字母顺序相同的英文字母的例外ñ。 旧的命令肯定会更有趣。 挑战 输入零个或多个单词的列表,然后输出根据旧西班牙字母顺序排序的列表。排序是在单词之间(而不是单词中的字母之间)。也就是说,单词是原子的,并且输出将以可能不同的顺序包含相同的单词。 为了简化,我们不会考虑字母ñ,或重音的元音á,é,í,ó,ú,或大写字母。每个字都是一个或多个字符的序列,取值范围从ASCII 97(a)到ASCII 122(z)。 如果l连续超过两个字母,则应将它们从左到右分组。也就是说,lllis lland then l(不是land then ll)。 输入格式可以是:用空格,换行符或任何方便的字符分隔的单词。您可以选择是否将单词用引号引起来。单词列表或单词数组也是可以接受的。任何合理的格式均有效;只需在答案中说明即可。 以类似的方式,输出将是任何合理的格式(不一定与输入相同)。 打高尔夫,最短的胜利。 测试用例 在以下示例中,单词用空格分隔。第一行输入,第二行输出: llama coche …

3
跟随点
挑战 给定一个矩形的字符网格 美国广播公司 FGHIJ 克拉姆诺 PQRST 和一个点和空格尺寸相同的网格 。。。 。。。 。。 。。。 输出从左上角开始的点通过网格跟随点生成的字符串。这个例子会产生ABGLQRSNIJE 笔记 您可以将输入网格作为2D阵列或您语言中最接近的替代形式,而不是多行字符串。 您可以使用语言的NULL值代替空格。但是,您必须使用点来标记路径。 您无需在同一行上用空格分隔点。我只是为了可读性添加了它们。 最小的网格大小为1x1。 起点和终点只有一个邻居。它们之间的点将始终具有精确的两个垂直或水平邻居。这保证了路径是明确的。 路径不会成对角线。 网格中的字符将[a-z]是最方便的范围内的所有大写或小写字符。 路径将始终从左上角开始。 规则 允许功能或完整程序。 输入/输出的默认规则。 有标准漏洞。 这是代码高尔夫球,因此最低字节数获胜。Tiebreaker是较早提交的内容。 测试用例 网格#1 中国农业银行 DEFGHUQ XLUSDQZ 阿苏克西 吴科 友邦 。。 。。。 。 。。。。 。 。 => ABEFGSKUSAWA 。。。。。。。 。 。。。。 。。。。 。。 。。。。。。。 => ABCABCWQZIMPUOIAIAWAXLUUK …
22 code-golf  string  grid 

30
反向正向运行
输入项 您的输入是任何合理格式的一位数字列表,包括一串数字。输入将不为空。 输出量 您的输出应为输入列表,但每个最大的非零数字都将反转。 例 考虑输入 95883007414830 <---> <----> 非零行程已用箭头标记的地方。反转所有这些运行,我们获得输出 38859003841470 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 这个挑战是相关的,但更为复杂,因为它包括其他字符串处理。 测试用例 4 -> 4 00 -> 00 123 -> 321 0010 -> 0010 12000345 -> 21000543 18161604 -> 61618104 95883007414830 -> 38859003841470 010230456078912 -> 010320654021987 357509902003550 -> 575309902005530 2492882377675046 -> 5767732882942064 03026302053000357099 -> 03036202035000753099 排行榜 这是一个堆栈片段,用于按语言生成排行榜和获奖者名单。为了确保您的答案显示出来,请以表格标题开头 …

30
N之后的最小整数可被2、3和4整除
归功于应归功于谁。 目的:给定一个整数N > 0,从最小的整数A,B以及C使: 所有的A,B以及C严格大于N; 2分歧A; 3分歧B; 并4划分C。 这是一个代码高尔夫球,因此最短的答案以字节为单位。您可以使用在挑战后制作/更新的语言,但严格来说这是非竞争性的。 测试用例 N => A, B, C 1 => 2, 3, 4 4 => 6, 6, 8 43 => 44, 45, 44 123 => 124, 126, 124 420 => 422, 423, 424 31415 => 31416, 31416, 31416 1081177 => 1081178, 1081179, 1081180
22 code-golf  math  number 

3
霍尔数
正如我们从“圣数字”中学到的那样,有5个圣数字(0, 4, 6, 8, 9),而仅由这些数字组成的正整数是圣数字。此外,数字的完整度是数字中的孔的总和(+2对于每个0或8,+1否则)。 现在,还有一个要考虑的附加属性,可以真实准确地表示数字的圣洁性。您会看到,不仅数字中的孔数量很重要,而且数字出现的位置也很重要。 考虑数字88。根据我们的旧规则,它的圣洁度为4。但这不公平!在8左边做更多的工作比其他8- 10倍的工作!它的工作应该得到回报。我们将以等于其右边所有数字的总圣洁度的额外圣洁度奖励它(包括此规则授予其右边数字的额外圣洁度),减去-1。 以下是更多需要考虑的示例: Number: 8080 Digital holiness: (2 + 7 - 1) + (2 + 3 - 1) + (2 + 1 - 1) + (2 + 0 - 1) Total holiness: 15 Number: 68904 Digital holiness: (1 + 5 - 1) + (2 …

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.