编程拼图和代码高尔夫

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

3
电路可能吗?
编写一个接受输入的程序或函数:所有可用电阻器和一个电阻值,并输出一个真实值,该值表示是否可以使用这些电阻器获得电阻。 规则: 任何输入格式都可以。 至少会有1个可用电阻,并且您的程序应输出至少10个可用电阻。 所有可用电阻器的电阻和所需电阻将为正整数。 对于可用电阻器,如果也可以使用小数点值,则所需电阻可能是近似值(请参见示例) 输出应为“可能”和“不可能”的任何2个唯一值。 电阻可以任何方式连接。 串联电阻:对于串联的n个电阻:结果= R1 + R2 + R3 + .... Rn 并联电阻:对于n个并联电阻:结果= 1 /(1 / R1 + 1 / R2 + 1 / R3 + .... + 1 / Rn) 该电路可能不需要所有电阻来获得所需的电阻(如果是这种情况,则输出True)。 优胜者: 这是代码高尔夫球,所以最短代码获胜。 例子: R List 110 220,220 -> True 440 220,220 -> True …

7
魔术:聚会,花钱买法术
要获得更多的MtG优点,请执行以下操作:魔术:具有能力的聚会战斗 前提: 在《魔法:汇聚》中,您可以通过按所需数量的土地支付法术力费用来施放咒语。这些土地可​​以产生以下五种颜色之一: 白(W) 蓝色(U) 黑色(B) 红色(R) 绿色(G) 成本由两部分组成:一个数字(即通用的法术力要求)和一系列代表彩色法术力要求的符号。该数字是普通的法术力费用,可以使用任何颜色的法术力来满足它,例如(3)可以用支付WGG。这些符号是特定颜色的1:1要求。例如,WWUBR将需要2个白色法力,1个蓝色,1个黑色和1个红色。通用部分将始终位于彩色部分之前。提醒一下,这(0)是有效费用,必须处理。 您可以拥有完全通用的成本或完全彩色的成本,或两者都有。例如,以下卡牌的费用为4BB,并用4点法术值色和2点黑法术值支付: 处于挑战中的土地将各自产生一个法力值。但是,我们将考虑可以产生多种颜色但仍然只产生1点法力的土地。例如,G将产生绿色的法术力,WG可以产生1个白色或1个绿色。 输入: 系统将为您提供两个输入,一张卡的费用和一张土地清单。 卡的成本可以是字符串,也可以是包含数字和彩色部分字符串的元组。如果没有通用部分,则可以用0填充字符串/元组。 土地列表将是一个字符串列表,其中每个字符串都是给定土地可以生产的。此列表可以为空(您没有土地)。您也可以使用位掩码逻辑将此列为整数列表,但如果这样做,则发布您的方案。如果重要的话,订购也取决于您,否则将按WUBRG顺序进行。 #Example input formats "4BB", ("WG","B","B") # (4,"BB"), (7,3,3) #Both should return falsy 输出: 一个truthy值,如果你能成功地给支付土地的成本和falsey价值,如果你不能。 规则: 您将获得有效的输入保证 假定法力值始终为“ WUBRG”。如果您想要其他顺序,请在答案中注明。 颜色将始终按成本分组,例如“ WWUBBRG” 输入将使用全部大写或全部小写的形式。 您应该能够处理正则表达式127[WUBRG]{127}和254个土地。 禁止标准漏洞 这是 代码高尔夫球,每种语言的最短答案胜出 例子: "0", ("") => 1 "1BB", ("WG","B","B") => 1 "BB", …

2
Python:交错插入两个列表中项目的最短方法
我正在尝试以最短的方式(可能的字符)获得清单3。 清单1和清单2已作为参数提供给我,并且长度相同。 l1 = [1, 2, 3, 4, 5] l2 = ['a', 'b', 'c', 'd', 'e'] 清单3应该看起来像(是的,它必须是一个清单): l3 = ['a', 1, 'b', 2, 'c', 3, 'd', 4, 'e', 5]

14
括号顺序按字典顺序
挑战来自这里也是在这里 一个ñ括号序列由ñ ( S和ñ )秒。 有效的括号序列定义如下: 您可以找到一种方法来重复擦除相邻的一对括号“()”,直到其变为空为止。 例如,如果(())是有效的括号,则可以在第二和第三位置删除该对(),然后将其变为,然后将其设为空。 )()(不是有效的括号,则在第二和第三位置删除该对后,它将变为)(并且您无法再删除 任务 给定数字n,您需要按字典顺序生成所有正确的括号序列 输出可以是数组,列表或字符串(在这种情况下,每行一个序列) 您可以使用不同的一对括号如{},[],()或开闭标志 例 n = 3 ((())) (()()) (())() ()(()) ()()() n = 2 (()) ()()

6
Codegolf Rainbow:使用反射对颜色进行排序
介绍: 在我发布了两个与Rainbow 相关的挑战:Codegolf Rainbow:使用整数数组1和Codegolf Rainbow:以黑白绘制 2之后,@ ChrisM在ASCII中做出了以下评论(Draw in Black-and-White)挑战: 也许您知道这一点,这是设计使然的(我知道彩虹也不是菱形或ascii,并且更高阶的位置会变得更加复杂),但是第二个彩虹中的颜色不是颠倒了吗? 他的确是正确的。当您看到两条彩虹时,第二条实际上是第一条的反射,因此颜色是相反的。有三个彩虹,这是实际的双彩虹,第三个彩虹是其他两个彩虹之一的反映。并且有四个,有两个彩虹,以及两个彩虹。 因此,让我们利用这个事实提出第三个相关挑战。 挑战: 输入:一个正整数n,为>=2,以及一个size的整数列表>= n+1。 输出:相同的列表顺序如下: 首先将输入列表分为大小子列表n(尾随子列表可以是范围内的任何大小[1,n])。 然后,根据子列表的数量执行以下操作m: 将m - m//2子列表的第一数量从最低到最高(其中//是整数除法)进行排序。(即具有6个子列表,前三个将按从低到高的顺序排序;具有5个子列表时,前三个按从低到高的顺序排序。) 将m//2子列表的最后数量从最高到最低排序(其中//是整数除法)。(即具有6个子列表,后三个将按从高到低的顺序排序;具有5个子列表,后两个将按从高到低的顺序排序。) 将所有子列表合并在一起,再次形成一个列表 例子: 输入:n=7和[3,2,1,-4,5,6,17,2,0,3,5,4,66,-7,7,6,-5,2,10] 步骤1:[[3,2,1,-4,5,6,17],[2,0,3,5,4,66,-7],[7,6,-5,2,10]] 步骤2:[[-4,1,2,3,5,6,17],[-7,0,2,3,4,5,66],[10,7,6,2,-5]] 步骤3 /输出:[-4,1,2,3,5,6,17,-7,0,2,3,4,5,66,10,7,6,2,-5] 输入:n=4和[7,4,-8,9,3,19,0,-23,-13,13] 步骤1:[[7,4,-8,9],[3,19,0,-23],[-13,13]] 步骤2:[[-8,4,7,9],[-23,0,3,19],[13,-13]] 步骤3 /输出:[-8,4,7,9,-23,0,3,19,13,-13] 挑战规则: 整数输入n保证大于1。 整数列表的大小保证大于n。 尾随子列表可以小于n(可以在示例和测试用例中看到)。 I / O格式在任何合理的格式中都是灵活的。可以是整数或小数的列表/数组,逗号/空格/换行符分隔的字符串,整数流等。(输出可能不是步骤2的列表的2D列表。步骤3将其展平为单个列表是这项挑战所必需的。) 通用规则: 这是 代码高尔夫球,因此以字节为单位的最短答案会获胜。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于您的答案,因此您可以使用STDIN / STDOUT,具有正确参数的函数/方法和返回类型的完整程序。您的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接。 …

3
共享生日聚会
办公室(我们称其为“办公室”)将通过合并办公室生日聚会来减少2019年的浪费时间。在同一周的星期一至星期五(含)之间生日的任何两个人,将在该周的某个时间举行“ 共享生日派对”来庆祝。生日在周六或周日的人们根本不会参加任何聚会。 有些人不喜欢与未共享实际生日的人共享生日聚会。他们会很生气有一个共享的生日派对。 我们将模拟一个办公室,并寻找某人对共同生日聚会感到非常生气的第一周。 挑战 编写一个程序或函数,以输出2019年的第一个ISO周编号,其中模拟办公室中的某人对其共享生日聚会非常生气,但要遵循以下基本规则: 输入整数N > 1,即办公室中的工人人数。 所述Ñ生日本身是均匀分布的随机从1月1日至12月31日(忽略年02月29)。 但是用于确定共享生日聚会的工作周是2019 ISO周日期,其介于2019-W01-1(2018-12-31)和2019-W52-7(2019-12-29)之间。新的ISO周每个星期一开始。(我认为这是您应对此挑战的ISO周真正需要的全部内容)。 对于办公室中的N个人,每个人都有1/3的机会拥有“ 非常生气的 共享生日聚会”个性类型,因此您也必须进行模拟。 但如果与同一个生日的人共享聚会,他们不会生气。 输出第一次出现“ 非常生气”的人的ISO周号(精确的格式,只要周号清晰即可)。如果没有生气的人,您可以输出与ISO周无关的任何内容,否则程序可能会出错等。 一些简化的假设: 正如我提到的,完全忽略2月29日的问题(不必要的并发症) 忽略公共假期(这是一个国际社会,因此我们的假期会有所不同),只是假设办公室在每个工作日都开放。 规则 这是代码高尔夫球。每种语言的最短答案(以字节为单位)获胜。禁止默认漏洞。 欢迎使用代码说明。 工作实例 输入N = 7的人为设计的示例1。第一和第二列是规则中所述的随机变量(当然,此处实际上并不是随机变量)。 Angry Type Person? Birthday ISO Week Comment ================================================================================ N 2018-12-31 W01 In the 2019 ISO week date year Y 2018-12-31 W01 Same …

12
可能有不同的组合
问题 给定一个值n,想象一下在(2,0)的参考(0,0)中刻出的山地景观。斜坡之间不会有空白,山也不会下降到x轴以下。要解决的问题是:给定n(定义景观的大小)和峰的数量k(k始终小于或等于n),那么有k个峰的山峰有多少种组合? 输入项 n代表景观的宽度,k代表峰的数量。 输出量 仅可能的组合数量。 例 给定n = 3和k = 2,答案是3个组合。 仅举一个直观的例子,它们是: /\ /\ /\/\ /\/ \ / \/\ / \ 是使用6(3 * 2)个位置和2个峰的3种组合。 编辑:-更多示例- n k result 2 1 1 4 1 1 4 3 6 5 2 10 获奖条件 标准 代码高尔夫球规则适用。以字节为单位的最短提交获胜。

24
乘法相差
让我们定义值的“乘法增量”为:[a0,⋯aN,][a0,⋯aN,][\; a_0, \cdots a_N, \;] [a1/a0,⋯,ai+1/ai,⋯,aN/aN−1][a1/a0,⋯,ai+1/ai,⋯,aN/aN−1] [\; a_1 / a_0, \cdots, a_{i+1} / a_i, \cdots, a_N / a_{N-1} \;] 反向运算(即“乘积反增量”)返回值,以使上述运算得出给定值。 例 给定值1、5、3、2 “ 乘法非增量 ”运算的一般解决方案是:[1,5,3,2][1,5,3,2][\; 1, 5, 3, 2 \;] [a0,a0⋅1a1,a1⋅5a2,a2⋅3a3,a3⋅2a4][a0,a0⋅1⏟a1,a1⋅5⏟a2,a2⋅3⏟a3,a3⋅2⏟a4] [\; a_0, \quad \underset{a_1}{\underbrace{a_0 \cdot 1}}, \quad \underset{a_2}{\underbrace{a_1 \cdot 5}}, \quad \underset{a_3}{\underbrace{a_2 \cdot 3}}, \quad \underset{a_4}{\underbrace{a_3 \cdot 2}} \;] …

10
日期发生
给定三个非负整数y,m和,d(其中至少一个必须为正)和具有正年份的有效日期(采用包括年,月和日的任何合理格式,并且没有其他信息),输出日期,即原始日期之后的y年,m月和d日。 公历将用于所有日期(甚至采用公历之前的日期)。 下一个日期的计算方法如下: 添加y到年份 添加m到月份 通过应用翻转规范日期(例如2018-13-01-> 2019-01-01) 如果该天已超过该月的最后一天,则将其更改为该月的最后一天(例如2018-02-30-> 2018-02-28) 添加d到当天 通过应用翻转规范日期(例如2019-01-32-> 2019-02-01) years年(除以4的年份,除非不能除以400的整数,否则不能除以100)必须适当处理。所有输入和输出将在您语言的可表示整数范围内。 测试用例 测试用例以格式提供input => output,其中input是JSON对象。 {"date":"2018-01-01","add":{"d":1}} => 2018-01-02 {"date":"2018-01-01","add":{"M":1}} => 2018-02-01 {"date":"2018-01-01","add":{"Y":1}} => 2019-01-01 {"date":"2018-01-30","add":{"M":1}} => 2018-02-28 {"date":"2018-01-30","add":{"M":2}} => 2018-03-30 {"date":"2000-02-29","add":{"Y":1}} => 2001-02-28 {"date":"2000-02-29","add":{"Y":4}} => 2004-02-29 {"date":"2000-01-30","add":{"d":2}} => 2000-02-01 {"date":"2018-01-01","add":{"Y":2,"M":3,"d":4}} => 2020-04-05 {"date":"2018-01-01","add":{"Y":5,"M":15,"d":40}} => 2024-05-11 您可以使用此JSFiddle进行测试。 这是 代码高尔夫球,因此以最短的解决方案(每种语言)为准。
9 code-golf  date 

11
厄运的钟针
您被拴在椅子上。您的下方是一座巨大的火山。旁边的12小时时钟不祥的滴答作响,您会看到它的导线从背面一直延伸到一条链,这将使您掉入地球的中心。记录到时钟上是一个注释: 每个钟针都有一个电极。当两个时钟指针位于相同的位置时,电源流动并且您死亡。也就是说,除非您能告诉我确切的发生时间,否则要精确到分钟。 您有一台知道所有编程语言的计算机。您需要创建最短的(这是代码高尔夫球,并且禁止标准漏洞)程序,并告诉邪恶的科学家现在几点了。您的程序应输入(以任何方式)由小时和分钟组成的输入。它应返回发生的下一个小时和分钟(以任何方法)。 根据OEIS页面,十一个重叠时间是: 00:00:00 plus 0/11 s, 01:05:27 plus 3/11 s, 02:10:54 plus 6/11 s, 03:16:21 plus 9/11 s, 04:21:49 plus 1/11 s, 05:27:16 plus 4/11 s, 06:32:43 plus 7/11 s, 07:38:10 plus 10/11 s, 08:43:38 plus 2/11 s, 09:49:05 plus 5/11 s, 10:54:32 plus 8/11 s. 下一次将是12:00:00。此挑战不需要秒及其小数部分。只需四舍五入到最近的分钟。 测试用例: …
9 code-golf  date 

10
通过顺序浏览列表列表中的元组
挑战: 给定一个非空的整数列表,返回一个具有以下形式的元组列表:第一个列表元组以第一个列表的每个元素开头,然后是每个后续列表的第一个元素,因此第一个元组应该为[ith element of first list, first element of second list, ... , first element of last list]。例如: [[1, 2, 3], [4, 5, 6], [7, 8, 9]] => [[1, 4, 7], [2, 4, 7], [3, 4, 7], ... 然后执行形式的元组[last element of first list, ith element of second list, first element …

3
解释算术
一个鲜为人知的事实是,如果您打开足够多的语言扩展(ghc),Haskell会成为一种动态类型的解释语言!例如,以下程序实现加法。 {-# Language MultiParamTypeClasses, FunctionalDependencies, FlexibleInstances, UndecidableInstances #-} data Zero data Succ a class Add a b c | a b -> c instance Add Zero a a instance (Add a b c) => Add (Succ a) b (Succ c) 看起来真的不再像Haskell了。对于一个而不是对对象进行操作,我们对类型进行操作。每个数字都是它自己的类型。除了函数,我们有类型类。函数依赖使我们可以将它们用作类型之间的函数。 那么我们如何调用我们的代码?我们使用另一类 class Test a | -> a where test …

2
粉末玩具中打高尔夫球的技巧
玩得开心,“粉玩具”是高尔夫运动中一个有趣的挑战,尤其是在摆球逻辑方面。 使TPT成为挑战的是许多解决问题的方法: Should I use Cellular Automaton rules, SWCH logic, Filt logic, subframe filt logic, and/or wall logic? 这样,TPT高尔夫球技巧的位置将非常有帮助,因此我提出了这个问题。 该线程可能会使用很多缩写。其中很多都是游戏中的元素,因此在Wiki上进行搜索会带给您很多有关它们的信息,例如它们的外观。 这是您可能在此主题中看到的最常见的内容,并附有游戏内描述(及其全名),以供不希望搜索的人使用: SPRK:电力。TPT中所有电子设备的基础是沿着电线和其他导电元件传播的。 过滤:过滤。过滤光子,更改颜色。 ARAY:Ray Emitter。光线碰撞时会创建点。 BTRY:电池。产生无限电。 DRAY:复印机射线。复制前面的一行粒子。 CRAY:粒子射线发射器。创建由其ctype设置的粒子束,范围由tmp设置。 SWCH:切换。仅在打开时进行。(PSCN打开,NSCN关闭) 所有元素清单
9 code-golf  tips  the-powder-toy  code-golf  number  array-manipulation  integer  code-golf  string  decision-problem  boggle  code-golf  array-manipulation  average  code-golf  math  code-golf  decision-problem  restricted-source  code-golf  code-golf  math  primes  code-golf  random  code-golf  tips  perl  code-golf  string  parsing  code-golf  math  number  decision-problem  code-golf  math  number  code-golf  string  alphabet  code-golf  math  geometry  code-golf  interpreter  brainfuck  code-golf  code-golf  decision-problem  boggle  code-golf  math  number  sequence  code-golf  math  code-golf  ascii-art  code-challenge  restricted-source  quine  code-golf  math  decision-problem  number-theory  primes  code-golf  ascii-art  code-golf  integer  graph-theory  chess  code-golf  math  interpreter  code-golf  code-golf  code-golf  ascii-art  code-golf  arithmetic  number-theory  code-golf  string  kolmogorov-complexity  code-golf  string  decision-problem  code-golf  primes  factoring  encode  code-golf  decision-problem  code-golf  geometry  grid  code-golf  quine  code-golf  matrix  code-golf  matrix  code-golf  code-golf  number  array-manipulation  code-golf  array-manipulation  sorting  code-golf  matrix  code-golf  brain-flak 

1
逃离柏油(警察)
这是一个 警察和强盗 围绕定义语言并证明他们已经完成图灵这一挑战。 这是警察的话题。强盗的线索在这里。 警察 作为一名警察,您将准备两件事: 编程语言或其他计算系统的正式规范。(计算系统定义如下。) 根据以下较为严格的定义,证明您的系统是Turing完整的。 您将发布您的语言说明,强盗将通过证明其图灵完整性来尝试“破解”它。如果您提交的内容在一周内没有被破解,则可以将其标记为安全并发布证明。(如果有人发现您的证明有缺陷,则您的答案可能无效,除非您可以修复它。) 这是一个 人气竞赛,因此获胜者将是投票数最多且未破解或无效的答案。挑战是无限的-我不会接受答案。 为了应对这一挑战,将计算系统定义为四件事: 一个“程序集” P。这将是一个无穷无穷的集合,例如字符串,整数,二叉树,网格上的像素配置等。(但请参见下面的技术限制。) “输入集” I,也将是可数的无限集,并且不必与P(虽然可以)相同。 “输出组” O,其类似地将是一个可数无限组,并且可以是或可以不是相同P或I 用于产生输出一个确定性的,机械程序o从程序p和输入i,其中p,i和o是的成员P,I和O分别。该过程应原则上可以在图灵机或其他抽象计算模型上实现。当然,该程序可能无法停止,具体取决于程序及其输入。 该套P,I并且O必须是这样的,你可以表达他们作为一个可计算的方式串。(对于大多数明智的选择,这无关紧要;存在此规则是为了防止您选择奇怪的集合,例如不停止的图灵机集合。) 图灵完整性将定义如下: 对于任何可计算部分功能f从I到O,存在一个程序p中P,使得给定的p和输入i,输出的是f(i)如果f(i)有一个值。(否则程序不会停止。) 上述定义中的“可计算”一词是指“可以使用图灵机来计算”。 请注意,规则110和按位循环标记都不是图灵完成的,因为它们没有所需的输入输出结构。只要我们定义I并且O是教会数字,Lambda演算就已经完成了Turing 。(这不是图灵完整的,如果我们采取I和O将在一般lambda表达式。) 请注意,您不必提供某种语言的实现,但是如果愿意,欢迎在您的答案中加入一种语言。但是,您不应该以任何方式依赖实现来定义语言-规范本身应该完整,并且如果规范和实现之间存在矛盾,则应将其视为实现中的错误。

5
四个螺旋轴
取数字0, 1, 2, 3, 4, ...并将它们按顺时针螺旋排列,从下开始,将每个数字写在其自己的单独正方形中。 然后,给定代表轴的四个不同且一致的ASCII字符(您的选择)之一,并输入整数n,输出n通过沿相应轴选择正方形来描述序列的第一项。 例如,下面是直到中间的排列螺旋29。假设我们使用u / d / l / r代表的四个字符up / down / left / right。然后,u作为输入,我们输出0, 5, 1, 4 ...(正y轴)直到n第t项。如果取而代之的l是我们,那么这将0, 3, 1, 1 ...取决于第三n个条件。 2---3---2---4---2---5---2 | | 2 1---3---1---4---1 6 | | | | 2 2 4---5---6 5 2 | | | | | | 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.