编程拼图和代码高尔夫

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

13
is_gaussian_prime(z)?
任务 编写一个函数,该函数接受a,b代表高斯整数z = a+ib(复数)的两个整数。程序必须根据a+ib是高斯素数来返回true或false 。 定义: a + bi 当且仅当满足以下条件之一时,它是高斯素数: a且b均为非零且a^2 + b^2为素数 a是零,|b|是素数,|b| = 3 (mod 4) b是零,|a|是素数,|a| = 3 (mod 4) 细节 您应该只编写一个函数。如果您的语言没有函数,则可以假定整数存储在两个变量中,然后打印结果或将结果写入文件。 您不能使用语言的内置功能,例如isprime或prime_list或nthprime或factor。最低字节数获胜。程序必须a,b在a^2+b^232位(带符号)整数的where 处工作,并且结束时间不应超过30秒。 首要清单 点表示高斯平面上的质数(x=实数,y=虚轴): 一些较大的素数: (9940, 43833) (4190, 42741) (9557, 41412) (1437, 44090)

7
代码填字游戏
这是警察和强盗的挑战。如果您是警察(填字游戏制造商),请在此处回答;如果您是强盗(填字游戏求解器),请回答相关问题。您可以同时担任这两个角色。 警察(益智类) 您的任务是编写10×10 填字游戏,其中的代码片段代替了单词或短语,而是线索的解决方案。每个线索将是一个非空的字符序列,因此运行它所引用的代码片段会将序列输出到stdout。 您的帖子必须包括三件事: 您的空白 10×10纵横网格,使用#为深色(线索分离器)和_用于灯(在待填充电池)。 每条水平或垂直的2个或更多的光序列(由黑暗或网格边缘限制)都是您必须为其提供线索的条目。为方便起见,您应以通常的方式(从左至右,从上至下)对这些编号,方法是_在每个条目的开头用唯一的字符标识符(例如1、2,...,A,B )替换,...)。 您的网格可能有许多暗度。 您的网格可能有许多线索。 水平条目始终从左至右阅读,垂直条目从上至下阅读。 线索列表,其中包含填字游戏中上下左右的每个条目。 线索必须包含至少1个且不超过10个字符。 如果您的线索中包含空格,请在格式化帖子时确保它们显而易见。 页眉和页脚代码段,每个20个字符或更少。 它们分别在解决方案摘要之前和之后运行,并且可能有助于重命名较长的内置插件等。 确保线索匹配其相应代码段的过程为: 连接页眉,摘要和页脚:[header][snippet][footer]。 作为常规程序运行此程序(独立于以前的运行),然后查看打印到标准输出的内容。 如果这与线索相符,则该片段是有效的解决方案。 为简单起见,您只能在整个过程中使用可打印的ASCII(十六进制代码20至7E)。页眉和页脚本身也可能包含制表符和换行符。 附加条款 对于任何摘要,[header][snippet][footer]在一台像样的现代计算机上运行都不会超过一分钟。 您必须指定您的编程语言(和版本)。 您可能不使用任何常见的哈希算法。 您可能不使用外部库。 您代码中的所有内容都必须是确定性的,时不变的,并且不需要网络连接。 #并且_可以在片段(或其他地方)发生。 您可能会像COTO那样揭露填字游戏中的某些字符。他们仍然算作灯。不需要强盗使用它们,它们只是很好的提示。 例 使用Python 3.部首一个简单的例子:p=print;t=5;。没有页脚。 未解决的网格: ########## 1___2___## _###_##### _###_##### _###_##### ####_##### ####_##### ###3______ ####_##### ####_##### 线索: ACROSS 1: 8 3: A! …

1
是否可以使钳位函数比JS中的三元函数短?
想象一下这个短函数将一个数字钳位在0到255之间: c = n => n > 0 ? n < 255 ? n : 255 : 0 这是使用JavaScript(没有ES.Next功能)的钳位函数的最短版本吗? PS:不确定是否相关,但是0和255不是随机的,其想法是将数字钳位为8位无符号整数。

17
迷宫
阿斯图里亚斯国王筒仓的墓地里刻有一个字样:SILO PRINCEPS FECIT(国王筒仓为此)。 第一个字母位于中间,从那里沿任何非对角线方向向外辐射阅读。最后的字母位于所有四个角。在这个挑战中,您将概括化制作它们的过程。 输入项 字符串(或等效字符串)和整数。您可以对输入做出以下假设: 该字符串的长度将为奇数。 整数将是小于字符串长度两倍的1到1之间的奇数。 输出量 字符串的字面迷宫,使用整数作为高度或宽度(有关高度示例,请参见模型)。输出应为每个字母,不带空格,默认情况下,系统/语言均使用换行符。 测试用例 请注意,输入1或(长度* 2-1)将导致水平或垂直回文。 Input: FOO, 3 Input: BAR, 1 Input: BAR, 3 Input: BAR, 5 Output: OOO Output: RABAR Output: RAR Output: R OFO ABA A OOO RAR B A R Input: ABCDE, 5 Input: ABCDE, 3 Input: *<>v^, 5 …
22 code-golf  string 

23
倒置的金字塔加法…反转!
倒置金字塔加法是获取一个数字列表并将其连续加在一起直到达到一个数字的过程。 给出数字后,2, 1, 1将发生以下过​​程: 2 1 1 3 2 5 这以数字结尾5。 你的任务 给定“颠倒金字塔”(升序)的右侧,编写将返回原始列表的程序或函数。 新的额外挑战:尝试在小于O(n ^ 2)的范围内进行操作 例 f([5, 2, 1]) => [2, 1, 1] f([84,42,21,10,2]) => [4,7,3,8,2] 注意:倒置金字塔永远不会为空,并且将始终仅由正整数组成。

16
哪个大数字更大?
输入项 整数a1,a2,a3,b1,b2,b3的范围均为1到20。 输出量 True if a1^(a2^a3) > b1^(b2^b3) and False otherwise. ^是这个问题的幂。 规则 这是代码高尔夫球。对于标准台式机上的任何有效输入,您的代码必须在10秒内正确终止。 您可以输出True或True,False和False。 您可以假设自己喜欢的任何输入顺序,只要在答案中指定了输入顺序即可,并且始终保持相同。 对于这个问题,您的代码应始终正确。那就是因为浮点数的不正确,它不会失败。由于输入范围的限制,这应该不会太难实现。 测试用例 3^(4^5) > 5^(4^3) 1^(2^3) < 3^(2^1) 3^(6^5) < 5^(20^3) 20^(20^20) > 20^(20^19) 20^(20^20) == 20^(20^20) 2^2^20 > 2^20^2 2^3^12 == 8^3^11 1^20^20 == 1^1^1 1^1^1 == 1^20^20
22 code-golf 

20
这是一项年度任务,好
给定数字1≤n≤365,以“天数月”格式输出一年中的第n天。例如,给定1,您应输出“ 1st January”,不带“ of”。 将使用公历,该程序不应计入leap年,因此您的程序在任何情况下均不应输出“ 2月29日”。只要遵循前面提到的“日数月”格式,就可以使用任何方法。您的程序还应该正确输出序号,这意味着它应该始终输出1st,2nd,3rd,应该分别将1、2或3作为任何输入的日期。允许前导空格或其他缩进。 这是代码高尔夫,所以最短的解决方案就是胜出。 测试用例: 1 gives 1st January 2 gives 2nd January 3 gives 3rd January 365 gives 31st December 60 gives 1st March 11 gives 11th January
22 code-golf  date 

13
八枚金币
这是另一个谜题的“对应”,即 Puzzling.SE上的公平之王的八枚硬币。 您可以阅读以上背景拼图。有关此难题的详细信息如下。 创建了一组8种不同值的硬币,国王希望您找出最大的N,以便可以使用不超过8个硬币的组合并免费支付从0到N的任意数量的价格。 例如,(摘自Glorfindel的答案)。如果给出一组值分别为1、2、5、13、34、89、233、610的硬币,则程序应输出1596,因为0到1596(含)之间的每个数字都不能用总和表示给定列表中的8个数字(数字可以重复),而1597不能以这种方式表示。 以数学的方式,如果输入是由8个正整数组成的集合S,则所需的输出N满足对于介于0和N之间的任何数字n的情况,存在x1,x2,x3,...,x8,从而 x1+x2+...+x8=nandx1,x2,...,x8∈{0}∪Sx1+x2+...+x8=nandx1,x2,...,x8∈{0}∪小号x_1 + x_2 + ... + x_8 = n \quad\textrm{and}\quad x_1, x_2, ...,x_8 \in \{0\} \cup S 您的目标是编写一个程序,一个函数或一个片段,以8个数字作为输入,并如上所述输出最大N。 规则: 允许灵活的I / O,因此您的程序可以采用最合适的任何形式进行输入。您可能会假设输入数字的排序方式最适合您的程序。 如果您的程序取决于输入顺序,请在答案中注明 输入是一组8个不同的正整数(无零)。输出是一个非负整数。 如果输入集中没有1,则您的程序应输出0,因为从0到0的任何数字都满足要求。 在输入无效的情况下(集合包含零,负或重复的数字),您的程序可以执行任何操作。 禁止出现标准漏洞。 您的程序应在几分钟后在现代计算机上运行。 测试用例(大部分取自有关“困惑”的链接问题下的答案): [1, 2, 3, 4, 5, 6, 7, 8] => 64 [2, 3, 4, 5, 6, …

19
位浮点序列
从LSB到MSB都有一点浮动,每次移动一个位置,直到它浮动到容器的顶部为止: 0000 0001 0010 0100 1000 一旦一位浮到顶部,另一位开始其旅程,并在遇到另一位时停止: 1001 1010 1100 直到容器中填充了位,这种情况才会发生: 1101 1110 1111 挑战 给定一个整数,输出该位数的容器的“ 位浮点序列 ”。 序列的每个术语都可以由您选择的任何分隔符分隔。 编辑:序列必须显示为十进制整数,从第一个therm:开始0。 容器大小应大于零,并且最多为您选择的语言支持的最大整数的位数。您可以假定输入始终符合此要求。 例子 仅需要数字序列,以二进制表示为例: 对于1:0 1 0 -> 0 1 -> 1 对于3:0 1 2 4 5 6 7 000 -> 0 001 -> 1 010 -> 2 100 -> 4 …

22
重叠的字符串块
挑战: 给定多行字符串的列表,将它们重叠(在左上角)并输出结果。 例: 输入:["aaaa\naaaa\naaaa\naaaa","bb\nbb\nbb","c"] 输出: cbaa bbaa bbaa aaaa 挑战规则: 输入格式灵活。允许您以2D行列表(即[["aaaa","aaaa","aaaa","aaaa"],["bb","bb","bb"],["c"]])或3D字符列表(即)获得输入[[["a","a","a","a"],["a","a","a","a"],["a","a","a","a"],["a","a","a","a"]],[["b","b"],["b","b"],["b","b"]],[["c"]]]。您可以通过STDIN一对一地接受所有输入。等等。 输出格式严格。您可以选择打印或返回多行字符串。(如果您的语言没有任何字符串,则可以选择将其输出为2D字符列表。但前提是您的语言完全没有字符串。) 输入列表的顺序当然很重要(但是,如果选择这样做,则可以反向输入)。 输入将只包含在Unicode范围可打印ASCII [ 33 ,126 ][33,126][33,126](!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~)。 输入将仅是矩形(因此没有奇怪的形状)。不过,输出不是必需的矩形。 尾随空格和单个尾随换行符是允许的。前导空格和/或换行符不行。 一般规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于具有默认I / O规则的答案,因此允许您使用STDIN / STDOUT,具有适当参数的函数/方法以及返回类型的完整程序。你的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接(即TIO)。 另外,强烈建议为您的答案添加说明。 测试用例: 输入:["aaaa\naaaa\naaaa\naaaa","bb\nbb\nbb","c"] 输出: cbaa bbaa bbaa aaaa 输入:["12345\n54321","00\n00\n00\n00","001\n011\n012"] 输出: 00145 01121 012 00 输入:["sm\noo\nmr\nee\nt!\nh_\ni_\nn_\ng_","!@#$%^\n&*()_+\nqwerty\nuiopas","this\nis_a\ntest"] 输出: this%^ is_a_+ testty uiopas …

13
多种颜色的外套
挑战 给定一个唯一的颜色名称列表作为输入,按它们在约瑟夫的《惊人的彩色彩色梦coat》中首次出现的顺序对其进行排序。 例 Input: green, blue, red, brown Output: red, green, brown, blue 颜色的完整列表按顺序是: 1. red 2. yellow 3. green 4. brown 5. scarlet 6. black 7. ochre 8. peach 9. ruby 10. olive 11. violet 12. fawn 13. lilac 14. gold 15. chocolate 16. mauve 17. cream 18. crimson …

15
图片输出视觉图
编写一个程序,为画框的肖像输入绘画的尺寸,消光宽度和画框宽度。程序应使用符号将图形输出X为绘画,+消光和#框架。这些符号必须以空格分隔。只要输出在视觉上符合条件,尾随空格就可以。输入可以是0。 输入:3 2 1 2(宽度,高度,遮罩宽度,框架宽度) 输出: 以文本形式: # # # # # # # # # # # # # # # # # # # # + + + + + # # # # + X X X + # # # # + X X X + …

18
播放Zip,Zap,Zop
有一个临时改进的热身游戏,您可以将自己排列成一个圆圈,并通过指向一个人并说出序列中的下一个单词来发送拉链,快速键和快速键,然后他们进行相同的操作,直到所有人热身或随你。 您的任务是创建一个程序,该程序在给定输入单词的情况下按顺序给出下一个单词。(Zip-> Zap-> Zop-> Zip)由于可以使用多种不同的方式来表达这三个单词和风格,因此程序应模仿大小写和字母重复并带有后缀。 详细地说,您输入的内容将是一个或多个Zs,然后是一个或多个Is,As或Os(都相同的字母),然后是一个或多个Ps(到目前为止所有字母都可能是混合大小写),然后是一些任意的后缀(可能为空)。您应该完全保留Zs和Ps的行程以及后缀,但应将s 更改为Is,将As 更改A为Os,或将Os更改为Is,以保留大小写。 示例测试用例 zip ==> zap zAp ==> zOp ZOP ==> ZIP ZiiP ==> ZaaP ZZaapp ==> ZZoopp zzzzOoOPppP ==> zzzzIiIPppP Zipperoni ==> Zapperoni ZAPsky ==> ZOPsky ZoPtOn ==> ZiPtOn zipzip ==> zapzip zapzopzip ==> zopzopzip zoopzaap ==> ziipzaap 规则和注意事项 您可以使用任何方便的字符编码进行输入和输出,前提是该字符编码支持所有ASCII字母并且是在此挑战之前创建的。 您可以假设输入单词是Zip,Zap或Zop的某种变体。所有其他输入都会导致未定义的行为。 有效输入将完全匹配正则表达式Z+(I+|A+|O+)P+.*(混合使用) 高尔夫快乐!
22 code-golf  string 

24
计算三角形数量
给定一个正整数列表,找到我们可以形成的三角形数量,以使三角形的边长由输入列表的三个不同条目表示。 (灵感来自CR。) 细节 如果三个边长a ,b ,c的所有排列都满足严格的三角形不等式a + b > c ,则可以形成三角形。(这意味着a + b > c,和必须全部成立。)a,b,ca,b,ca,b,ca+b>c.a+b>c.a + b > c.a+b>ca+b>ca+b > ca+c>ba+c>ba+c>bb+c>ab+c>ab+c>a 三个边长必须出现在列表中的不同位置,但不一定必须成对地分开。a,b,ca,b,ca,b,c 输入列表中三个数字的顺序无关紧要。如果我们考虑一个列表a和三个数字a[i], a[j], a[k](i,j,k两两互不相同),那么(a[i],a[j],a[k]), (a[i],a[k],a[j]), (a[j], a[i], a[k])等等都被视为同一个三角形。 可以假定输入列表至少包含3个条目。 您可以假定输入列表按升序排序。 例子 可以在“ 在线试用”上找到一个小型测试程序! Input, Output: [1,2,3] 0 [1,1,1] 1 [1,1,1,1] 4 [1,2,3,4] 1 [3,4,5,7] 3 [1,42,69,666,1000000] 0 [12,23,34,45,56,67,78,89] 34 …

30
字符串旋转-输出字符串重复将第一个字符移到末尾
这里的挑战是要取一个字符串并输出其所有旋转值,方法是将第一个字符重复移动到末尾,每个字符串中的每个字符一次,以原始字符串结尾: john -> ohnj, hnjo, njoh, john 您也可以从另一个方向循环移动字符: john -> njoh, hnjo, ohnj, john 即使在此之前到达原始单词,您仍然应该每个字母旋转一圈: heehee -> eeheeh, eheehe, heehee, eeheeh, eheehe, heehee 字符数组是允许的,只要结果如上所示即可。 最短答案胜出!
22 code-golf  string 

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.