编程拼图和代码高尔夫

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

14
一个月中工作日的百分比
给定一年零一个月,找出该月工作日的百分比。工作日为星期一至星期五,与节假日或其他特殊情况无关。使用公历。 输入值 ISO 8601格式的年月(YYYY-MM)。年份始终具有四个数字,月份始终具有两个数字。给定的年份不会早于1582年。 输出量 输出是给定月份的工作日百分比(根据上述定义),四舍五入为整数。没有百分号或小数位。 样品1 Input Output 2010-05 68 样品2 Input Output 2010-06 73 样品3 Input Output 1920-10 68 样品4 Input Output 2817-12 68 一个星期过去了,答案已经被接受。出于好奇,我们在比赛中收到的意见书的大小: 129 – Z Shell 174 – VB.NET 222 – C 233 – C 300 – C 以及我们自己的(未排名)解决方案: 75 – PowerShell 93 – Ruby …
11 code-golf  date 

7
具有奇特秘密力量的阵列战斗
这是一个相对简单的二维数组挑战。 想象一下一个有625英尺长士兵的战场。您指挥奇数部队,但不幸的是,偶数部队的力量使您不堪重负。值得庆幸的是,您的士兵拥有秘密力量:如果每个奇兵和周围同伴的力量可以被秘密力量数字整除,那么他们将发动最终的进攻并取得胜利!您必须尊重每位胜利的士兵。 规则 给定一个25 x 25的整数数组,其中每个元素都包含其x和y位置加1的乘积,返回满足以下条件的每个“胜利”奇数元素的坐标: 元素值及其相邻奇数元素(上,下,左和右)的总和可被输入(秘密幂数)整除。它必须在所有四个侧面上与其相邻且不能在边缘上。 提交可以是需要单个输入的功能或完整程序。输出可以是任何顺序。 我们的25 x 25阵列(战场)如下所示: 1, 1, 1, 1,... 1, 2, 3, 4,... 1, 3, 5, 7,... 1, 4, 7, 10,... etc. 例 这是一个3 x 3的示例: 43, 57, 71 46, 61, 76 49, 65, 81 为了确定某个元素(居中的61)是否获胜,我们将其值与相邻的奇数元素相加。 61 + 57 + 65 = 183 如果总计可被输入整除,则打印元素的x和y位置。如果我们的输入为3,则因为183可被3整除,所以将打印“ …

2
贝壳球高尔夫
此任务是在glob扩展后将最短路径输出到文件。 什么是贝壳球?在大多数外壳中,您可以*在路径中使用字符来表示该位置上的任何字符。例如,如果目录foo包含bar baz和asdf,foo/b*则将扩展为foo/bar foo/baz。 现在,假设当前目录包含一个名为的文件ihavealongname,仅此而已。如果要引用此文件,可以键入*,它将仅表示一个文件,而不是输入全名。 如果目录中还包含一个名为的文件ialsohavealongname,则无法执行*,因为它将匹配这两个文件。我至少必须要做ih*。 该*模式还可以匹配我要查找的文件上方的目录。如果只有两个目录foo和bar,但foo只包含一个文件baz,并bar包含一个文件asdf,我可以匹配foo/baz用*/baz。或者,更简洁地说*/b*。如果bar是空的,*/*将起作用。 您的任务:给定表示“当前目录”的路径字符串数组和单个目标路径,输出可能的最短字符串,该字符串在扩展* s后将仅扩展到该目标路径。 目标路径可以当作它自己的字符串,路径数组的索引,传入的路径数组的第一项或其他非硬编码的便捷方式。如果不确定,请在评论中提问。 保证目标路径存在于“当前目录”中。 您可以假设所有路径仅包含字母数字ASCII(和/s)。您可以将扎根(以开头/)或相对(不以开头/)的路径作为输入路径。 如果存在多个同样短的可能性,请返回其中的任意一个或全部。 这是 代码高尔夫球,最少的字节获胜! 测试用例,感谢Kevin Cruijssen。

7
七巧板奎因斯(Robbers'Thread)
这是一个 警察和强盗挑战警察的线索可以在这里找到 作为强盗,您要面对的挑战是从警察的线程中获取输出,并找到输出的字谜,当程序运行该字谜时,会提供原始输出。 获胜者将是在这个问题上最有效的人。 规则 您可能无法破解提供的程序标记为安全的答案。 如果警察提供了您想要的解决方案所用的语言,则您必须使用该特定语言来破解它,如果他们选择不这样做,则您可能会以任何竞争性语言来破解它。 适用Quines的标准规则。 裂缝一定不是完美的奎因。也就是说,他们不得输出其确切来源,而应重新排序(该顺序由警察提供)。

11
飙车倒计时
挑战: 在假设的情况下,比赛的倒数计时器在计数之间具有随机间隔,以防止过早开始,例如 3 (0.82 seconds pass), 2 (0.67 seconds pass), 1 输入: 没有 输出: 编写一个程序(或函数),以每次计数之间0.50秒至1秒的随机时间间隔打印3个数字。 注意: 程序必须输出每个数字(3、2、1),每个数字之间具有随机的时间间隔(0.50到1到百分之一;无硬编码)。随机间隔的精度必须达到数百(例如:0.52)。您不需要输出时间间隔,只需输出计数。 正如@JoKing所阐明的,我的意思是统一随机的(您可以使用语言的伪随机生成器。 正如许多人所阐明的那样,我的意思是说2到10之间的任何十进制数字(0.50、0.51等,一直到0.98、0.99、1)。 这是代码高尔夫球,因此字节数最少的程序将获胜。
10 code-golf  random 

10
一些孤独的素数
我知道,我知道,还有另一个挑战。 有关 一个孤独的(或分离的)主要是一个素数p,使得p-2,p+2,p-4,p+4... p-2k,p+2k对于一些k都是复合材料。我们称这样的素数为k孤立的素数。 例如,第5次隔离的素数是211,因为它们201, 203, 205, 207, 209, 213, 215, 217, 219, 221都是复合的。(p-2*5=201,p-2*4=203等) 挑战 给定两个输入整数n > 3和k > 0,输出最小的kth次隔离质数严格大于n。 例如,对于k = 5及n范围内的任何值4 ... 210,输出应为211,因为它是最小的5次隔离质数,严格大于input n。 例子 n=55 k=1 67 n=500 k=1 503 n=2100 k=3 2153 n=2153 k=3 2161 n=14000 k=7 14107 n=14000 k=8 14107 规则 如果适用,您可以假定输入/输出将适合您语言的本机Integer类型。 输入和输出可以通过任何方便的方法给出。 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 禁止出现标准漏洞。 …

30
什么是文件扩展名?
您面临的挑战是找到提供的文件名的文件扩展名: hi.txt -> txt or .txt carrot.meme -> meme or .meme lol (undefined behavior) what..is..this..file -> file or .file .bashrc -> bashrc or .bashrc T00M@n3KaPZ.h0wC[]h -> h0wC[]h or .h0wC[]h agent.000 -> 000 or .000 您必须从字符串的最后. 或最后.到结尾再获取文本。正则表达式的第一个捕获组匹配/\.([^.]+)$/有效,在.s 上分割输入并返回最后一个也是如此。 文件名将始终至少包含一个.,但可能包含多个.。(请参见示例) 输入将始终匹配^[.a-zA-Z0-9^!\[\]{}@$%+=]+$。
10 code-golf  string 

3
生成流氓地图
今天,我们将为Roguelike RPG生成地图! 示例图: ########## #### F# #### ## ## C#C# # ## # # C #E # #### # # # # #P # ########## #是墙壁,P是玩家的起点,F是必须达到的终点,C是可以收集的硬币,E是可以战斗的敌人。 地图规格: 高度和宽度都应在10到39之间(包括10和39)。高度不必等于宽度。 地图边框应填满墙壁。 P 应该放在左下角。 F 应该放在右上角。 应该有1到3个敌人。 应该有2到4个硬币。 中间应该有一些墙。应该有从得到一个路径P的每一个C,E以及F,牢记玩家不能斜走。 每种可能的组合都应有发生的机会。 规则 最低字节程序获胜。 您的程序不应接受任何输入。 您的程序可能不会因错误而退出(非致命输出是STDERR可以的,但是在生成地图后我们无法出现类似流氓的崩溃!) 允许使用单个尾随换行符,并允许尾随空格。 不允许其他输出。

22
删除元音时不要使用太多不同的字符
挑战在于从STDIN的字符串中删除元音(a,e,i,o,u)(是的,我知道,很简单)。您可以期望您的程序不会在中运行任何参数argv。 例: This program will remove VOWELS. So we can now speak without them. 更改为: Ths prgrm wll rmv VWLS. S w cn nw spk wtht thm. 有一个陷阱。根据不同字节的数量来决定获奖项目。例如a ab具有三个不同的字节(a,b和空间)。如果两个或多个条目将具有相同数量的不同字节,则对这些条目的字节数进行回退。

2
高尔夫我的Ada阵列
背景 Ada是一种编程语言,其简洁性并不十分出名。 但是,其数组文字语法在理论上可以允许相当简洁的数组规范。这是数组文字 语法的简单EBNF描述(可传递到bottlecaps.de: array ::= positional_array | named_array positional_array ::= expression ',' expression (',' expression)* | expression (',' expression)* ',' 'others' '=>' expression named_array ::= component_association (',' component_association)* component_association ::= discrete_choice_list '=>' expression discrete_choice_list ::= discrete_choice ('|' discrete_choice)* discrete_choice ::= expression ('..' expression)? | 'others' 为了简单起见,我们将自己限制为一维整数数组。这意味着我们将仅对表达式值使用整数。也许在将来的挑战中,我们可以尝试更高级的方法(例如声明变量和多维数组)。你不会有高尔夫整数文字。 为了清楚起见,以下是Ada数组文字和python式等效表示形式的一些示例: (1, 2, …

10
确定一个网格是否包含另一个网格
挑战 创建一个函数将两个二维字符数组(如果编程语言没有字符作为数据类型,则为字符串)作为输入:a和b。如果您的语言不支持这些输入,则可以使用任何其他标准的一字节变量。 您的任务是确定b是否包含a。如果是这样,则返回true。否则,返回false。 样本测试用例 a: 123 456 789 b: 123 456 789 应该返回true。 a: code golf b: thisis code!! golf!! ohyeah 应该返回true。 a: abcd efgh ijkl b: abcdef ghijkl mnopqr 应该返回false。 a: abc def b: 1abc2 3def4 5ghi6 应该返回true a: ab cd b: #ab## ##cd# 应该返回假 最少字节获胜。

6
一致的开销字节填充(COBS)
令我惊讶的是,这还没有发布! 在一致的开销字节填充(COBS)算法用于分隔字节流。 我们选择一个帧标记(我们将使用0x00),并且在流中出现0x00的任何地方都将其替换为字节数,直到下一个出现0x00为止(我们将其称为里程碑)。这将值的范围从0..255减小到1..255,从而使0x00可以明确地界定流中的帧。 在一个里程碑,如果下一个255B不包含0x00,则超出最大里程碑长度-算法必须“停顿”在255B并放置另一个里程碑。这是“一致的开销”。 第一个字节将是第一个里程碑,最后一个里程碑将是直到帧标记的字节数。 维基百科的一些示例(最好阅读彩色文章): 0x00 as frame marker Unencoded data (hex) Encoded with COBS (hex) 00 01 01 00 00 00 01 01 01 00 11 22 00 33 03 11 22 02 33 00 11 22 33 44 05 11 22 33 44 00 11 00 00 …

5
二次序列中的有效术语?
给出四个数字。对于该序列,前三个分别是,和:a一个abbbcCc Tn=an2+ b n + cŤñ=一个ñ2+bñ+CT_n=an^2+bn+c 您可以通过任何方式输入这四个数字。输出应该是在你的答案提到的两个不同的输出中的一个,一个装置,所述第四数目是序列中的项(上述方程具有用于至少一个溶液这是当一个整数,,和是替换给定值),另一个则相反。ññn一个一个abbbCCcŤñŤñT_n 这是代码高尔夫,所以最短的答案以字节为单位。您的程序应适用于任何输入其中数字为负或正(或0),十进制或整数。为了避免出现问题但保持一定的复杂性,非整数总是以结尾。不允许使用标准漏洞。a ,b ,c ,Tñ一个,b,C,Ťña, b, c, T_n.5.5.5 测试用例 a |b |c |T_n |Y/N ------------------------ 1 |1 |1 |1 |Y #n=0 2 |3 |5 |2 |N 0.5 |1 |-2 |-0.5|Y #n=1 0.5 |1 |-2 |15.5|Y #n=5 0.5 |1 |-2 |3 |N -3.5|2 |-6 |-934|Y …

3
键入需要多长时间?
介绍 我可以使用QWERTY键盘布局以适当的速度打字。但是,如果像yellowwooddoor这样的单词有很多重复的字母,则键入它会花费更长的时间。更糟的是,当像“跳”这样的单词的同一根手指用于多个不同的连续字母时。 这是我在每个手指上键入字母所花费的时间(非常不科学地衡量): 列是手指名称,每秒击键,秒/击键以及每个手指使用的键 Typing same letter twice: L Pinky 5.2 0.1923076923 1qaz L Ring 5 0.2 2wsx L Mid 5.3 0.1886792453 3edc L Index 5.5 0.1818181818 4rfv5tgb R Thumb 6.5 0.1538461538 [space] R Index 6.9 0.1449275362 6yhn7ujm R Mid 6.3 0.1587301587 8ik, R Ring 6.2 0.1612903226 9ol. R Pinky …

6
又是万圣节!
问题描述 我们都喜欢Twix(因为它是最好的糖果),但这是孩子们的第一个万圣节---我们必须为他们抓住每种糖果中的至少一种。每个万圣节,Numberline大街上的所有居民都会发送一封电子邮件,说明他们今年将赠送的糖果类型。 哦! 我们生活在一维世界中。 在某些方面(而不是其他方面)非常懒惰,我们绘制了房屋的地图,并给出了他们在街上的位置。我们还注意到了他们所拥有的糖果类型。这是我们今年制作的地图: [(-2, {"Kisses", "KitKats"}), (1, {"KitKats", "Peanut Butter Cups"}), (6, {"Kisses", "Twix"}), (9, {"Skittles"}), (10, {"Twix"})] 为了孩子们的小腿,我们需要找到从附近任何房子开始的最短步行路程,以至少收集每种糖果中的一种。 例子 在几个用户(包括Shaggy)的请求下,我将介绍一些可行的示例。希望这可以清除一切。:) 输入: [(-2, {"Kisses", "KitKats"}), (1, {"KitKats", "Peanut Butter Cups"}), (6, {"Kisses", "Twix"}), (9, {"Skittles"}), (10, {"Twix"})] 输出: [1, 2, 3] 另一个地图和解决方案... 输入: [(-3, {"KitKats", "Twix"}), (-1, {"Hundred …
10 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.