编程拼图和代码高尔夫

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

13
将数字除以0
我们都被告知人生除以零是不可能的。在大多数情况下,这种说法是正确的。但是,如果有是执行禁止操作的方法吗?欢迎使用我的最新作品:- b数字。 b-数字有点像虚数:涉及的主要代词表示一个在数学上不是不可能的表达式(i表示−1−−−√−1\sqrt{-1})。在这种情况下,可以说bbb代表表达式1010\frac{1}{0}。从这里,很容易确定x0x0\frac{x}{0}等于: x0=x1⋅10=xbx0=x1⋅10=xb \frac{x}{0} = \frac{x}{1} \cdot \frac{1}{0} = xb 任务 给定一个表达式,该表达式涉及除以0,则输出简化值bbb。请注意,输入将采用以下形式:n/0其中n是任何有理数或b十进制形式的任何-number。前导0和尾随0将不包括在内。 输入示例 4/0 1/0 0/0 80/0 -8/0 1.5/0 2.03/0 -1/0 -3.14/0 b/0 3b/0 -b/0 121/0 示例输出 4b b 0 80b -8b 1.5b 2.03b -b -3.14b b 3b -b 121b 得分了 这是代码高尔夫,因此最少的字节获胜。禁止出现标准漏洞。 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N …
16 code-golf  math  number 

18
简化数字
怎么不记得电视屏幕上出现的6或7位数字电话号码?使用下面描述的特殊技术,您将变成步行式电话簿! 显然,数字402比110010010数字337377更容易记住,数字比数字更容易记住957472。这意味着,存储的数字一方面应包含尽可能少的数字,另一方面,希望该数字包含尽可能多的重复数字。 作为记忆困难的标准,我们将数字位数与不同数字位数的总和。记忆的号码可以写在另一个号码系统中,也许这样会更容易记住。例如,65535十六进制表示法中的数字看起来像FFFF。 任务 您需要编写一个用于选择数字系统基数的程序,以最小化复杂度标准。数字系统的基数必须在2到36的范围内选择,然后数字0-9和英文字母A-Z可以用来表示数字。 输入值 输入包含从1到999999999的十进制整数。 输出量 输出必须包含数字系统的基数(从2到36),以最小化存储复杂性的标准,并且所选数字系统中的数字以一个空格分隔。如果多个基准为标准提供相同的值,则选择其中最小的一个。 笔记 字母必须为大写(A-Z)。 测试用例 输入输出 1 2 1 2 3 2 65535 16 FFFF 123 12 A3

18
解码可变长度数量
甲可变长量(也被称为VLQ或uintvar)是编码最多只能使用尽可能多字节根据需要一个28位整数值的方法。MIDI文件格式中使用了此格式,以最小化某些事件数据的大小。 它的工作方式非常简单。作为字节的高位优先级序列,每个字节的最高有效位(MSB)为a 1,表示随后是另一个VLQ字节。每个字节的其余7位组成解码值。 示例(来自维基百科): [ 0x86, 0xc3, 0x17 ] => 106903 其他参考资料:Wikipedia,《Some Guy》。 挑战: 给定一个可变长度的数量,将其转换为整数值。 输入: 一到四个字节或32位值类型的列表,表示整数的有效VLQ。 输出: VLQ输入的整数值。 规则和评分: 这是代码高尔夫,因此每种语言的最短答案以字节为单位。 标准规则和默认I / O规则适用。 禁止漏洞(当然)。 请提供测试代码的链接( TIO.run等)。 强烈建议为您的答案提供清晰的解释。 处理该转换的内置函数不会被禁止,但是不使用它们会更加有趣。 测试用例: Input (VLQ) Output (int) [ 0x00 ] => 0 [ 0x07 ] => 7 [ 0x7f ] => 127 [ …

3
协和的困境
背景 该旅行商问题(TSP)要求在最短的电路访问城市的指定集合。出于这个问题的目的,城市将是平面中的点,城市之间的距离将是通常的欧几里得距离(四舍五入到最接近的整数)。赛道必须“往返”,这意味着它必须返回出发城市。 在协和TSP求解器可以解决旅行推销员问题的情况下,准确和速度远远超过人们所期望的。例如,协和飞机能够精确地求解85,900点实例,其中的一部分如下所示: 但是,即使对于协和飞机,某些TSP实例也会花费太长时间。例如,没有人能够解决基于Mona Lisa的100,000点实例。(如果您能解决的话,将提供1,000美元的奖金!) Concorde 可作为源代码或可执行文件下载。默认情况下,它使用内置的线性程序(LP)求解器QSopt,但它也可以使用更好的LP求解器,例如CPLEX。 挑战 您可以生成花费最少五分钟的 Concorde的最小TSP实例是什么? 您可以编写一个程序来输出实例,或使用您想要的任何其他方法。 计分 实例中的点越少越好。关系将被实例的文件大小破坏(请参见下文)。 标准化 不同的计算机运行得更快或更慢,因此我们将Concorde的NEOS服务器用作运行时的衡量标准。您可以采用以下简单的2维坐标形式提交点列表: #cities x_0 y_0 x_1 y_1 . . . x_n-1 y_n-1 NEOS上应使用的设置为“协和数据(xy-list文件,L2规范)”,“算法:协和(QSopt)”和“随机种子:固定”。 基准线 在1889点的情况下rl1889.tsp,从TSPLIB以“总的运行时间:871.18(秒)”,这是超过五分钟。看起来像这样:

30
打印丢失的号码
作为《迷失》电视连续剧的忠实拥护者,我总是对重复出现在这些情节中的数字序列感兴趣。这些数字是: 4,8,15,16,23,424,8,15,16,23,42 4, 8, 15, 16, 23, 42(A104101) 使用任何编程语言,编写输出这些数字的代码。 得分: 最短答案胜出 输出中不得包含任何其他数字或字母。您可以使用任何其他字符作为分隔符,甚至根本不使用分隔符。 您不能分隔相同数字的数字。48_1516234248_15162342 48\_15162342 是有效答案,但481_5162342481_5162342481\_5162342不是。 您必须遵守订单。 如果您的代码不包含序列中的任何数字,请将您的分数降低30%。该规则确实允许您分别输入数字。例如: abcde1fg5h 是有效的候选者,因为答案不包含数字151515,仅包含数字。但是,任何444或888都会使奖金无效。 如果代码根本不包含任何数字,请将您的分数降低50%。其他字符(如,或仍可用于此奖励。¹¹¹²²²³³³

8
创建一个多功能计算器
灵感。 逆。 评估给定的omnifix表达式。 Omnifix就像普通的数学中缀表示法一样,只是参数周围带有每个符号的其他副本。外部符号代替括号,因此不需要其他括号。 您必须-0-n-在您的语言的合理范围内支持加,减,乘,除和正实数(可以写负数)。 加号和减号必须为+和-,但是您可以将*或×用作时间和/或÷除法。根据要求也可以使用其他合理的符号。 核仁巧克力饼指出了解释和其他功能(例如其他操作,负数,字符串等),即使您的答案没有这些功能,也可以随时演示如何实现。 请提供链接以测试您的解决方案。 例子 为了清楚起见,以下说明使用高减号(¯)表示负数。您可以使用任何合理的格式返回负数。 -5-2- → 3 +2+×3×2×+→ 8 (+2+×3×2×+→ +2+6+→ 8) -14--3-1--→ 12 (-4--3-1--→ -14-2-→ 12) +2.1+×3.5×2.2×+→ 9.8 (+2.1+×3.5×2.2×+→ +2.1+7.7+→ 9.8) ×3×÷-0-6-÷2÷×→ -9 (×3×÷-0-6-÷2÷×→ ×3×÷¯6÷2÷×→ ×3ׯ3×→ ¯9) ÷4÷-3-÷1÷2÷-÷→ 1.6 (÷4÷-3-÷1÷2÷-÷→ ÷4÷-3-0.5-÷→ ÷4÷2.5÷→ 1.6)

26
尝试做一个立方体!
基于此:让我成为正方形! 您需要输出以下内容: #### # # # ### # # # # #### 其中将“#”替换为输入。 如果输入“ A”,您应该得到 AAAA A A A AAA A A A A AAAA 如果输入“&”,则应该得到 &&&& & & & &&& & & & & &&&& 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 显示代码段 /* Configuration */ var QUESTION_ID = 121651; // Obtain this from …

15
计划您的周日!
谁不喜欢在夏天的周日早晨在凉爽的啤酒和电视中放松身心,或者在冬天打羽毛球或与朋友们终极放松呢? 我一直认为,知道一个月内需要休息多少天,可以使您了解情况并帮助您计划要做什么。是坐在电脑前解决代码高尔夫球问题,还是出门踢足球。 因此,请帮我编写一个程序或函数,该程序或函数将2个正整数作为输入,Y并M输出该特定year(Y)和month(M)中的星期日数(根据公历),然后是每个星期日的日期。 另外,请记住,最短的代码会获胜。 输入约束 1000 <= Y <= 9999 1 <= M <= 12 输出量 这些测试用例将以格式输出具有当年该月中每个月的每个星期日的日期DD-MM-YYYY。 样本测试用例 测试用例1 样本输入 2017 1 样本输出 5 01-01-2017 08-01-2017 15-01-2017 22-01-2017 29-01-2017 测试案例2 样本输入 2018 2 样本输出 4 04-02-2018 11-02-2018 18-02-2018 25-02-2018 测试用例3 样本输入 2016 11 样本输出 4 06-11-2016 13-11-2016 20-11-2016 27-11-2016
16 code-golf  date 

1
绘制入口字形
在基于位置的AR移动游戏Ingress的生活方式中,玩家可以破解称为Portal的东西以获得物品。(如果您对Ingress感兴趣,可以在聊天中ping我以获取更多信息。相信我,它比Pokémon更好。如果最终下载了它,请记住选择“抵抗军”。) 显着增加破解输出的一种方法是字形破解迷你游戏,其中玩家必须在六边形网格上绘制字形。 总共,游戏中实际使用了约115个字形和约130个名称。 字形 为了这个挑战,我们将对网格的每个点进行编号,如下所示: 这是针对此挑战的所有字形的列表。该列表是一个JSON对象,其中包含每个字形作为边列表。 { "ABANDON": [[1, 6], [3, 4], [4, 8], [6, 10], [8, 10]], "ACCEPT": [[3, 7], [3, 8], [7, 8]], "ADVANCE": [[0, 9], [4, 9]], "AFTER": [[1, 2], [1, 6], [2, 7], [6, 10], [7, 10]], "AGAIN": [[4, 9], [6, 7], [6, 10], [8, 9], …

18
给我盖毯!
我想要一条看起来像这样的毯子。每个条带都在上方,下方,上方,下方。可以打印吗? \\\\////\\\\////\\\\////\\\\////\\\\////\\\\//// \\//// \\//// \\//// \\//// \\//// \\//// //// //// //// //// //// //// ////\\ ////\\ ////\\ ////\\ ////\\ ////\\ ////\\\\////\\\\////\\\\////\\\\////\\\\////\\\\ \// \\\\// \\\\// \\\\// \\\\// \\\\// \\\ \\ \\\\ \\\\ \\\\ \\\\ \\\\ \\ \\\ //\\\\ //\\\\ //\\\\ //\\\\ //\\\\ //\ \\\\////\\\\////\\\\////\\\\////\\\\////\\\\//// \\//// \\//// \\//// \\//// \\//// \\//// //// …

7
评估极小极大树
爱丽丝和鲍勃在玩小游戏。首先,他们从根节点(用粗点表示)绘制一棵树,没有内部节点,叶上有数字。任何节点可以具有任意数量的子代。 我们从根开始,首先是爱丽丝(A)。她必须选择当前节点的子节点之一。然后轮到鲍勃了,他同样选择了一个子节点。这一直持续到到达叶节点为止。 当到达叶子节点时,游戏结束。艾丽丝(Alice)的目标是在值尽可能大的节点处结束,鲍勃(Bob)的目标是在值尽可能小的节点处结束。 给定一棵嵌套数组形式的树,返回如果爱丽丝和鲍勃都玩的很好的叶子的值。 例子: 18: [[67, [[100, [[67, 47], [86], 21, 16], [[46, [14], 35, 85], [71, [18, 63, 69], 99, 22], 3]]], [[18, 32, 42, 80]], [[36, 70], [86, 53, 46, 59], [[41], 86, 35]]], 3] 60: [[[84, 35], [44, 60]], [[24, 98], [16, 21]]] 58: [[53, 77], …

3
关于advacado的挑战
灵感来自此。挑战过程中没有鳄梨受到伤害。 你好,我有挑战,我需要帮助鳄梨,所以我需要程序告诉我鳄梨需要多长时间 观察此ASCII艺术鳄梨: ###### # # # #### # # # p# # ## #### # # # ###### 该鳄梨由#s 的外部(特别是#每行上s 的第一个和最后一个序列)和一个凹坑(#鳄梨中的s 形状,不接触鳄梨的外部)组成。 通过对这些ASCII艺术鳄梨的严格测试,我发现了以下内容: avocado juice in fluid ounces = number of spaces inside avocado but outside pit (the pit is marked with a p in the example) + 2 …

1
支持哪些Ubuntu版本?
给定输入日期,您的输入将输出该日期Ubuntu Linux发行版受支持版本的完整列表。 所有版本的完整列表如下: 版本代码名称发布日期 4.10 Warty Warthog 2004-10-20 2006-04-30 5.04 Hoary Hedgehog 2005-04-08 2006-10-31 5.10微风Bad 2005-10-13 2007-04-13 6.06 LTS Dapper Drake 2006-06-01 2009-07-14 2011-06-01(服务器) 6.10 Edgy Eft 2006-10-26 2008-04-25 7.04 Feisty Fawn 2007-04-19 2008-10-19 7.10 Gutsy长臂猿2007-10-18 2009-04-18 8.04 LTS Hardy Heron 2008-04-24 2011-05-12 2013-05-09(服务器) 8.10 Intrepid Ibex 2008-10-30 2010-04-30 9.04 …
16 code-golf  date 

2
RX的ValiDate ISO 8601
挑战 查找最短的正则表达式 只会验证,即比赛中,每一个可能的日期在Proleptic公历(这也适用于所有日期在1582年首次执行前) 与任何无效日期都不匹配。 输出量 因此,输出是真实的还是错误的。 输入值 输入采用3种扩展的ISO 8601日期格式中的任何一种-无时间。 前两个是±YYYY-MM-DD(年,月,日)和±YYYY-DDD(年,日)。the日都需要特殊的外壳。这些扩展的RX天真地将它们分别匹配: (?<year>[+-]?\d{4,})-(?<month>\d\d)-(?<day>\d\d) (?<year>[+-]?\d{4,})-(?<doy>\d{3}) 第三种输入格式是±YYYY-wWW-D(年,周,日)。由于leap周模式复杂,因此比较复杂。 (?<year>-?\d{4,})-W(?<week>\d\d)-(?<dow>\d) 对这三个组合进行的基本但有效性不足的检查如下所示: [+-]?\d{4,}-((0\d|1[0-2])-([0-2]\d|3[01]) ↩ |([0-2]\d\d|3[0-5]\d|36[0-6]) ↩ |(W([0-4]\d|5[0-3])-[1-7])) 条件 一个闰年的Proleptic公历包含闰日 …-02-29,因此它是长366天,因此…-366存在。在序数可被4整除的任何年份中都会发生这种情况,除非它也能被400整除,否则不会被100整除。 该日历中存在零年,并且是a年。 一个漫长的一年,在ISO周历包含了第53周,其中一个可以称之为一个“ 闰周 ”。在1月1日是星期四的所有年份中都会发生这种情况,在所有leap年都是星期三的所有leap年都发生这种情况。事实证明,它通常每5或6年出现一次,呈看似不规则的模式。 一年至少有4位数字。不必支持位数超过10的年份,因为这已经足够接近宇宙的年龄(大约140亿年)。前导加号是可选的,尽管实际标准建议多于4位数字的年份需要使用它。 不得接受不完整的部分或截短日期。 日期标记,例如一个月的部分,也没有必须由可能被引用的一组相匹配。 规则 这是代码高尔夫球。没有执行代码的最短正则表达式将获胜。更新:您可以使用诸如递归和平衡组之类的功能,但是会被罚款10倍,然后与字符数相乘!现在,这与Hard code golf中的规则不同:Regex可除以7。较早的答案胜出。 测试用例 有效测试 2015-08-10 2015-10-08 12015-08-10 -2015-08-10 +2015-08-10 0015-08-10 1582-10-10 2015-02-28 2016-02-29 2000-02-29 0000-02-29 -2000-02-29 -2016-02-29 200000-02-29 …

1
卡坦定居者-最长之路!
这是卡坦定居者的残局: 背景: 道路(长棍棒)和居民点(和城市)由小木屋组成。我们使用以下方案对这些片段的放置进行编码:从顶部开始,我们有一排水平顶点和一条可以放置道路的边。然后,我们只有一列道路,依此类推。使用R代表红色,O代表橙色,B代表蓝色,_代表无,图板将被编码为: ________RR_R_ __R_ __RR_R_RRR_____R_ B___R _B_________B__OO_OOR_ B__B_R BB_BBB_____B____RR_R_ OBB_O OO__BB_BB__OOO_OO O_O_ _O_OOO_O_____ 这样的板将作为您的输入字符串。任何字母都[A-Z]可以指示玩家的颜色,但是最多可以有四种颜色(包括空白)。否则,根据定居者规则,保证董事会有效,这意味着: 每种颜色最多具有两个连续的道路网络,这些道路网络可能会或可能不会被其他玩家居住区/城市(顶点建筑物)分开。看到橙色沉淀物将样品图像右侧的红色道路分开。 保证每个路网至少有一个居民点。 保证所有定居点和城市与最近的其他定居点/城市(您或其他人)至少有两个边缘 一位玩家在游戏板上可能只有15条道路。 对于Catan爱好者:出于此问题的目的,在定居点和城市之间没有区别,因此我在输入字符串中没有区别。 所有这些都是为了指定“输入”字符串。 最长的路: 在定居者中,玩家拥有“最长的道路”可获得两个胜利点。定义为:从起点到终点的最长连续单路径(以道路为单位),不会被对手的定居点或城市分解。只要您可以跟踪从一个特定起点到一个特定终点的路径,循环就可以了。因此,一条6条道路的环路加上一条分支的道路的长度为7,但是一条在两条道路上相对的6条道路分支的两条分支的长度仍为7。 在示例地图中,右侧的红色道路仅价值4,因为板子右侧的橙色解决方案将他切断了(这就是为什么完全包括解决方案的原因)。蓝色的道路长度为13,橙色的道路长度为12。红色的最高道路仅价值7,因为它没有连接到其旁边的两条道路。 输出: 道路最长的所有玩家(如果有平局,则可能会超过一条),然后以空格和/或下划线划定距离(以10为底)。 因此,示例板的输出为: B 13 问题陈述: 您可以编写程序或函数,通过STDIN或作为函数的字符串参数接收输入板,然后将上述输出作为字符串返回或将其打印到STDOUT(或最接近的输出)。您可以选择在输出中包含单个尾随换行符。 这是代码高尔夫球,最短的程序获胜。当然,标准漏洞是被禁止的。

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.