编程拼图和代码高尔夫

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

20
缩短已经很短的数学表达式
一次,我做了一些实际的工作,更新了旧代码,碰到了一个表达式,该表达式等于在老式数学中用πx+ e x编写的表达式。我认为编写它的时间可能比使用我使用的语言(APL)编写的时间短,因此提出了一个非常简单的挑战: 编写一个函数或程序(以任何方式)接受零个或多个数字,并返回(以任何方式)x = 每个给定数字的上述表达式的结果,每个结果至少具有3个有效数字。 如果您的语言没有π和/或e,请使用值3.142和2.718。 得分是字节数,因此请以开头# LanguageName, 00 bytes。 不允许使用标准孔。 编辑:现在,我想出了一个解决方案,○+*,已被发现。原始代码为(○x)+*x。
15 code-golf  math  number  pi 

3
帮我安排时间
最近有人告诉我要在新年之前读一本完整的物理教科书(不幸的是,是真实的故事)。我需要您的帮助来确定每天应阅读哪些章节。这是您进来的地方。 输入值 两个日期,任何格式。第二个日期将始终晚于第一个日期。 章节编号列表。此逗号分隔的列表可以包含单个章节(12)或包含范围(1-3)。例如 1-3,5,6,10-13。 Monday -> Mo要从时间表中排除的工作日列表(用名称的前两个字母表示:)。例如 Mo,Tu,Fr。 输出量 输出将是用换行符分隔的日期和章节编号的列表(请参见下面的格式)。这些章节应在该范围内的所有日期(不包括提供的工作日)中平均分配。如果各章分布不均,请在时段结束时保留较少的章节。输出中的日期可以采用与输入不同的格式。没有章节的日子可以被忽略,或者没有章节。 例: 输入: 9/17/2015 9/27/2015 1-15 Tu 输出: 9/17/2015: 1 2 9/18/2015: 3 4 9/19/2015: 5 6 9/20/2015: 7 8 9/21/2015: 9 10 9/23/2015: 11 9/24/2015: 12 9/25/2015: 13 9/26/2015: 14 9/27/2015: 15

16
简单任务解决三次
您应该用一种语言编写3个程序和/或功能。 所有这些程序都应解决相同的任务,但它们都应提供不同(但有效)的输出。(即,对于每对程序,它们都应该是一些输入,这些输入会生成不同(但有效)的输出编号集。) 任务 您得到一个n大于1 的整数 您应该返回或输出n 不同的正整数,并且它们都不能被整除n。 数字的顺序无关紧要,数字的排列也不视为不同的输出。 有效的三元组程序,其中包含一些input => output配对: program A: 2 => 5 9 4 => 5 6 9 10 5 => 2 4 8 7 1 program B: 2 => 1 11 4 => 6 9 1 2 5 => 4 44 444 4444 44444 program …

2
球面多余的三角形
球面多余的三角形 众所周知,任何平面三角形的角度之和等于180度。 但是,对于球形三角形,角度之和始终大于 180度。球面三角角之和与180度之间的差称为球面过剩。任务是计算具有给定顶点坐标的三角形的球面超出量。 一些背景 球形三角形是球的三个大圆所定义的球的一部分。 球面三角形的两边和角度都是用角度测量来测量的,因为每一边都可以看作是球体与某个顶角位于球体中心的平面的交集: 每三个不同的大圆定义8个三角形,但我们只需要适当的三角形考虑在内,即。角度和侧面尺寸满足的三角形 根据地理坐标系定义三角形的顶点很方便。在给定端圆的经度λ和纬度Φ的情况下,要计算圆弧的长度,我们可以使用以下公式: ,在哪里 或更明确地: (来源:https : //en.wikipedia.org/wiki/Haversine_formula) 可用于求解球形三角形的两个基本公式是: 余弦定律: 罪法: (来源:https : //en.wikipedia.org/wiki/Spherical_trigonometry#Cosine_rules_and_sine_rules) 给定三个边,使用余弦规则很容易计算角度: 最后,定义一个三角形的球面多余部分: 三角形的球面过盈量与其面积之间的关系有趣的是: 因此,在单位球面上,三角形的多余部分等于该三角形的面积! 任务 编写一个函数或程序,在给定三角形顶点坐标的情况下,以度为单位计算三角形的球面超出量。顶点坐标是根据地理坐标系提供的。 每个顶点都应以形式传递[latitude in degrees][N|S][longitude in degrees][E|W]。当纬度为90时,可以跳过经度和E或。,,,是正确的顶点描述,同时或不是。W 90N90S10N100E30S20W80N55S 在测试案例中,纬度和经度始终是整数。 误差小于1度的答案将被接受(如下例所示)。因此,可以根据实际情况将结果呈现为实数或整数。 例子 输入值 90N0E 0N0E 0N90E 输出量 89.999989 输入值 90N 0N0E 0N90E 输出量 89.999989 输入值 0N0E 0N179E …

3
多方面分析
计算SI单位的乘积或比率。 例如,kg m / s s(千克/米每秒平方)应返回N(牛顿)。 输入将始终是: SI单位的符号列表,以空格分隔(代表产品)或 以上,/以及上述(表示比)。 输入将永远不包含任何其他字符(例如数字文字或其他标点符号)。 您可以假设这将始终等于单个SI单位。 使用以下符号: Base quantities: s # second m # meter kg # kilogram A # ampere Derived quantities: N = kg m / s s # newton J = N m # joule W = J / s # watt …

18
回到化学课
介绍 我从化学中学到的第一件事就是给出了烷烃燃烧的公式。最基本的示例是:2CH4 + 4O2 > 4H2O + 2CO2。注意,可以通过将每个系数除以2来简化方程,我们将得到 CH4 + 2O2 > 2H2O + CO2。为了使事情变得简单,我们将忽略此步骤。 您会看到,随着任何烷烃的燃烧,都会使用氧气。反应后,仅产生CO 2和H 2O。 任务: 给出一个完整的程序,该程序接受来自STDIN或最接近的等效值的输入,并使用STDOUT或最接近的等效值输出总反应。 输入总是会在形式C(n)H(2n+2),用n > 0。这些是一些示例输入: CH4 C2H6 C3H8 C4H10 C5H12 C6H14 etc. 一个有用的提示: 每种烷烃在燃烧反应中都有一个标准模式: 2C(n)H(2n+2) + (3n+1)O2 > (2n+2)H2O + (2n)CO2 例如 C4H10给出以下等式:2C(4)H(2*4+2) + (3*4+1)O2 > (2*4+2)H2O + (2*4)CO2。计算完所有内容后,我们得到以下最终方程式:2C4H10 + 13O2 > …

9
关于键盘的主题
Keep Talking and Nobody Explodes是一款本地多人游戏,其中一个玩家可以控制一个虚拟的“炸弹”,并且必须由另一位可以访问炸弹清除手册的玩家“专家”指导。键盘模块是游戏中需要解除的模块之一,这是我们将在此挑战中处理的模块。 任务 输入将以一行可打印的ASCII字符开始,除了空格(0x21至0x7E)。这些代表您可以看到的键盘按钮。 接下来的几行将代表“键”-只有一行包含第一行的所有字符,而不必按顺序排列。您的任务是按照匹配的按键行的顺序输出键盘字符。 例如,如果输入是 5~Fy HrD7K!#} Ui%^fHnF )Tf;y~I5 ~Fi(&5gy ,'Xd#5fZ 然后键盘按钮是5,~,F和y。只有第4个按键行~Fi(&5gy包含所有这些字符,因此我们按出现的顺序输出键盘字符,即~F5y。 规则和澄清 输入必须是单个多行字符串,键盘按钮和按键行应放在单独的行上。 仅有一个按键行,其中包含所有键盘字符。 每行,即初始键盘行和随后的按键行,将没有重复的字符。 与游戏不同,您可能不会假设键盘字符的数量,每条按键线的长度或按键线的数量。但是,保证所有关键线的长度相同。 输出可能包含单个可选的尾随换行符。同样,您可以对输入中的可选尾随换行符采用任意一种方式,但是如果需要,请在答案中指定。 尽管这似乎已经很普遍了,但我将明确指出:只要STDOUT输出正确(如果这是您选择的输出形式),就可以用错误终止此挑战。希望这将使输入的处理更加容易。 测试用例 7 4?j01C3"ch KP.OG>QB)[ z#)Kn"I2&. ]#,D|sBFy5 Qzj*+~7DLP 输出: 7。只有最后一行包含7。 0b~ Ob+hy{M|?;>=dtszPAR5 *8rCfsw|3O9.7Yv^x>Hq $ip.V@n}|La:TbIt^AOF jZ[Ec4s0|%b*$id',~J6 z*#b}-x$Ua&!O2;['T+? NVj_X8rlhxfnS\.z}];c bykscf.w^dnWj+}-*2g_ VP`AJH|&j5Yqmw/"9IMc 输出:0b~。第4个按键行已包含正确顺序的字符。 MTuz bIAr>1ZUK`s9c[tyO]~W oMGIi/H&V"BeNLua%El= j*uYbplT:~);BM|_mPZt Q}z5TC@=6pgr<[&uJnM% YOA(F~_nH6T{%B7[\u#5 y&t"8zQn{wo5[Idu4g:? [0tZG"-fm!]/|nqk,_2h …
15 code-golf  string 

4
矮胖回文
回文报很有趣,但是其他一些字符串却开始被忽略。通过将这些字符串分成回文的大块数组,可以将它们变成大块的回文。 例如,"abcabca"如果我们逐个字符地读取字符串,那么它就不是回文,但是有三种不同的方式可以使它成为大块的回文: ["abcabca"] ["a" "bcabc" "a"] ["a" "bc" "a" "bc" "a"] 如您所见,矮胖回文是一个非常包容的概念;每个字符串都可以至少以一种方式变成粗大的回文。 任务 编写一个程序或函数,该程序或函数接收字符串作为输入,并返回其回文式块状体,即回文式数组的分区数。 测试用例 OUTPUT | INPUT --------+--------------------------------------------- 1 | "" 1 | "a" 1 | "ab" 2 | "aa" 2 | "aaa" 3 | "abcabca" 4 | "abababab" 28 | "abcabcaabababababcabca" 1 | "bbbbabababbbbababbbaaaaa" 20 | "ababbaaaabababbbaaabbbaa" 5 …

5
RTTTL混淆
RTTTL或铃声文本传输语言是诺基亚在恐龙漫游土地的曙光中发明的一种音乐格式。它允许播放相当粗糙的音乐(没有和弦或任何东西),而且格式非常简单,这就是为什么我认为它很酷。看一下这个: DejaVu: d=8,o=5,b=200: e, e, c, e, g, 2g4 让我们剖析格式。开头的“ DejaVu”部分是标题-不能超过10个字符。d和o是持续时间和八度的默认值-如果音符未指定持续时间或八度,它将使用它们。最后,b是每分钟的拍数。 之后,将列出歌曲的实际音符。音符的格式为DPO,其中D为音符的持续时间(1、2、4、8、16),P为音高(A,B,C,D,E,F,G,A#,B# ,C#,D#,E#,F#,G#)和O是八度音阶(在诺基亚实现中为4-8,但是对于其他实现则有所不同。出于挑战的目的,我们将其称为1-8)。 。如果未指定持续时间或八度,则使用默认值。此外,音符后面可以有一个点-这实际上是将持续时间乘以1.5。 在此处的示例中,我们有两个没有持续时间和八度的E音符,这意味着它们具有默认的持续时间和八度(8,或者八分音符和八度5),一个没有持续时间和八度的C,一个E和一个G.最后的音符是持续时间为2(半音符)和八度为4的G音符。 既然我们已经了解了格式,那么挑战是什么?实际上,挑战与RTTTL无关。您的任务是创建一个混淆的程序,输出“ Hello,World!”。(恰好)这也是一首有效的RTTTL歌曲,长度至少为5秒。 为了测试您的RTTTL歌曲,您可以使用此站点将您的歌曲转换为MIDI文件,然后在MIDI播放器中收听。这是人气竞赛。祝好运! 编辑:如果您愿意,这是一个将MIDI转换为RTTTL的网站。链接 编辑2:这项闪亮的赏金将在7天之内颁发给获胜者(获得最高评价的职位)。

20
!万圣节守则高尔夫挑战赛
编写一个程序,该程序接受长度为2个或更多字符的输入字符串,并将该字符串 ~BOO!~ (该字符串具有开头和结尾的空格)添加到该字符串中不在两端的一致随机点中。 不允许的样本输入:2或 (空输入) 不允许的样本输出:Hello ~BOO!~ 或 ~BOO!~ Hello用于输入Hello 样本输入:Hello, World! 样本输出:Hel ~BOO!~ lo, World!或Hello, Worl ~BOO!~ d! 这是代码高尔夫,伙计们。适用标准规则。以字节为单位的最短代码获胜。 祝贺Dennis拥有最短,最诡异的程序!万圣节快乐!

7
平均角度
故事,或者我们为什么要这样做。 没有。除非斯蒂芬霍金(Stephen Hawking),否则这个练习是毫无意义的。 挑战 给定一个角度列表,找到这些角度的平均值。例如,91度和-91度的平均值为180度。您可以使用程序或函数来执行此操作。 输入值 表示角度量度的度值列表。您可以假设它们将是整数。它们可以以任何方便的格式输入或作为函数参数提供。 输出量 输入值的平均值。如果发现平均值有多个,则仅输出一个。平均值定义为 被最小化。输出必须在(-180,180]范围内,并且至少精确到小数点后两位。 例子: > 1 3 2 > 90 -90 0 or 180 > 0 -120 120 0 or -120 or 120 > 0 810 45 > 1 3 3 2.33 > 180 60 -60 180 or 60 or -60 > 0 …

18
一段时间后的时间
为了应对这一挑战,我们以以下形式编写时间: hh:mm:ss 一些例子: 12:34:08 06:05:30 23:59:00 挑战是在经过数小时,数分钟和数秒之后输出时间,并将其作为开始时间00:00:00。您可以将其与从开始的计时器进行比较00:00:00。 这是输入(使用STDIN)和输出的示例: Input: 1h20m5s Output: 01:20:05 Input: 0h100m0s Output: 01:40:00 24小时后,计时器将自行重置: Input: 25h0m0s Output: 01:00:00 输入的形式始终相同:XhYmZs,带有X小时,Y分钟和Z秒(假设X,Y并且Z是小于100000的整数,并且永远不会为负) 这是代码高尔夫球,因此最少的字节数将赢得这一挑战
15 code-golf 

5
隐藏功率计算器
我一直喜欢Pokemon的原因之一是因为对于一款简单的游戏,它具有如此多的复杂性。让我们考虑一下“隐藏力量”。在游戏中,每个使用它的口袋妖怪的隐藏力量的类型和力量(至少在第六代之前)都不一样!太酷了吧?现在,如果我告诉您“隐秘力量”的类型和力量不是随机产生的,您会感到惊讶吗? 在所有口袋妖怪游戏中,所有口袋妖怪(不仅仅是派对中的一个,所有口袋妖怪)都有六个内部存储的整数(一个用于HP状态,一个用于攻击状态,一个用于防御状态,一个用于特殊攻击状态,一种用于特殊防御统计,另一种用于速度统计),称为各自的值或IV。这些值在0到31之间,并且本质上是影响口袋妖怪总体属性的几个因素之一。但是,它们还可以确定“隐藏电源”的类型和电源! 在第三代到第五代(我们将要实现其算法的几代)中,隐藏功率的类型由以下公式确定(注意方括号,这意味着您需要舍入结果): 其中a,b,c,d,e和f是HP,攻击,防御,速度Sp的最低有效位。攻击和Sp。防御四。(最低有效位是IV mod2。)然后可以使用此图表将此处产生的数字转换为实际类型: 0 Fighting 1 Flying 2 Poison 3 Ground 4 Rock 5 Bug 6 Ghost 7 Steel 8 Fire 9 Water 10 Grass 11 Electric 12 Psychic 13 Ice 14 Dragon 15 Dark 对于功率,使用类似的公式: 但是,这里的u,v,w,x,y和z代表HP,攻击,防御,速度Sp的第二个最低有效位。攻击和Sp。防御IV(再次按此顺序)。(第二最低有效位比最低有效位要复杂。如果IV mod 4为2或3,则该位为1,否则为0。如果您的语言具有某种内置的或至少更聪明的方式,为此,您可能应该使用它。) 因此,您可能已经知道,这里的挑战是编写一个程序,该程序通过STDIN接受六个以空格分隔的整数,分别代表HP,攻击,防御,速度,Sp。攻击和Sp。宠物小精灵的防御IV(按顺序),并输出该宠物小精灵的“隐藏力量”的类型和力量。 输入样例: 30 31 31 31 30 31 样本输出: …
15 code-golf  number  game 

3
迷宫产生一个内胆
著名的C64基本型内胆 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 打印斜杠和反斜杠的迷宫。 \\/\\\//\/\////\\/\/ \/\///\\///////\//\/ /\\\//\//\////\\//\\ \////\//\//\/\\\\\\/ /\/\\///\\\\/\\\\/\\ \/\//\\\\\\//\/\//// /\//\\///\/\///\//// \/\\\//\\/\\\//\\/\/ //////\\/\\/\/\/\/// \\/\/\\////\/\/\\/\/ 从stdin读取由对角线墙组成的迷宫,并打印出水平和垂直的迷宫,其中水平和垂直墙由墙字符“#”组成 例如小迷宫 /\\ \\/ /// 转换为 ##### # # # # # # # # # # ##### # # # # # ######### ##### 确切地说,每个隔离的墙段的长度为五个字符,相邻的墙段共享一个角。在斜杠和反斜杠的矩阵中向右/左/上/下移动一个字符,对应于#矩阵中垂直两个字符和水平两个字符的对角线平移。

12
构造伴随矩阵
您有许多个孤独的多项式,因此请让他们成为一些同伴(不会威胁您的攻击)! 对于度的多项式n,有一个n by n伴随的立方 矩阵。您需要创建一个函数,该函数以升序(a + bx +cx^2 + …)或降序(ax^n + bx^(n-1) + cx^(n-2)+…)的顺序接受多项式的系数列表(但不能同时接受)并输出伴随矩阵。 对于一个多项式c0 + c1x + c2x^2 + ... + cn-1x^(n-1) + x^n,其伴随矩阵为 (0, 0, 0, ..., -c0 ), (1, 0, 0, ..., -c1 ), (0, 1, 0, ..., -c2 ), (...................), (0, 0, ..., 1, -cn-1) 请注意,的系数为x^n1。对于其他任何值,请将所有其余系数除以x^n。此外,1从对角线偏移。 …

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.