Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

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 

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 …

4
计算将球放入垃圾箱的方式数
在此任务中,您将获得奇数数量的白球和相同数量的黑球。任务是计算将球放入垃圾箱的所有方法,以使每个垃圾箱中每种颜色的数量均为奇数。 例如,假设我们有3个白球。不同的方式是: (wwwbbb) (wb)(wb)(wb) 两种不同的可能性。 如果我们有5个白球,则不同的方法是: (wwwwwbbbbb) (wwwbbb)(wb)(wb) (wwwb)(wbbb)(wb) (wb)(wb)(wb)(wb)(wb) 您可以按照自己喜欢的任何方式获取输入,它是一个整数。输出只是一个整数。 您的代码必须足够快,这样您才能看到完整的11个白球。 您可以使用任何喜欢的语言或库。

5
解读TwoMega
在这个挑战,你会写一个解释2 Ω(转录为TwoMega),基于松散的语言brainfuck具有无限维存储空间。 语言 2 Ω包含三个部分的状态: 的磁带,它是比特的无穷列表,全部初始化为0。它有一个最左边的元素,但没有最右元素。 的存储器指针,这是一个非负整数,它是在带的元素的索引。较高的内存指针指向更右侧的磁带单元。内存指针0指向最左边的元素。内存指针初始化为0。 该超立方体,这是一个概念性∞维“盒子”细胞,其中的每一个包含一个位初始化为0。超立方体的宽度被绑定在每一个维度为仅2细胞,但尺寸的无穷大装置的数量细胞是不可数的。 指向超立方体的索引是一个无限的位列表,它引用了超立方体中的一个单元(以与使用有限的位列表来引用一个有限维的超立方体相同的方式)。因为磁带是无限的位列表,所以整个磁带始终引用Hypercube的元素;此元素称为引用对象。 2 Ω给出意到7个不同的字符: < 将内存指针减1。将其减少到0以下是未定义的行为,因此您无需处理它。 > 将内存指针加1。 ! 翻转参考对象的位。 . 在参考对象处输出该位。 ^用引用对象的位的倒数替换磁带上的内存指针指向的单元处的位。 [x]x只要引用对象的位为1,就运行代码。 挑战 您的任务是编写一个程序,该程序将字符串作为输入,并以2Ω程序的形式执行该输入。 这是 代码高尔夫球,因此最短的有效答案(以字节为单位)将获胜。 笔记 您可以假定该程序将仅包含字符<>!.^[],并且[]将被正确嵌套。 您的解释器应仅受系统上可用内存的限制。它应该能够在合理的时间内运行示例程序。 样例程序 打印1: !. 打印010: .!.!. 永远打印0: ![!.!] 永远打印0,如果有,!则永远打印1 : [.]![!.!]

1
+-背包问题
给定一组项目,每个项目都有一个权重和一个值,请确定要包含在集合中的每个项目的数量,以使总重量小于或等于给定的限制,并且总值尽可能大。 维基百科获取更多信息 例如,您可以得到最大权重为15的对象,值/质量为的对象,[5,2], [7,4] [1,1]然后输出[7,0,1]7个[5 <value>, 2 <mass>]对象和1个[1 <value>, 1 <mass>]对象,得分为36。 规则 输入可以采用任何合理的格式 输出也是灵活的格式, 您不得使用非标准的库。如果必须安装或下载任何库使用它从初始设置则分离不容许 物体可能具有负质量和负值(即-1,-1) 需要最佳答案 获奖 最短的代码胜出 负数和价值? 这是这一挑战的关键部分。假设您有一个对象(物品,质量,值),例如[4,3],[-1,-1]一个容量为15的袋子。您可以放置​​第一个对象中的3个,得分为9,或者放置第一个对象中的4个和-1,-1中的一个对象得分为11。

22
使用最低值减少
挑战 创建一个函数,该函数接受一个数字数组,并从每个元素中减去该数组中尚未从另一个元素中减去的最低元素。 使用最小值后,将无法再次使用。 数组中的数字是十进制数字,不一定是整数。 例: Input: [6, 4, 7, 8, 9, 2, 1, 4] Next lowest value: Output: [6, 4, 7, 8, 9, 2, 1, 4] [6, 4, 7, 8, 9, 2, 1, 4] ^ ^ 6-1 = 5 [6, 4, 7, 8, 9, 2, -, 4] [5, 4, 7, …

15
最大的广场
这个问题类似于网格中的最大广场。 挑战 给定一个矩阵,该矩阵为,1并且0为字符串格式"xxxx,xxxxx,xxxx,xx.."或数组格式["xxxx","xxxx","xxxx",...],您将创建一个函数,该函数确定包含全部的最大正方形子矩阵的面积1。 正方形子矩阵是宽度和高度相等的子矩阵,您的函数应返回仅包含的最大子矩阵的面积1。 例如: 给定"10100,10111,11111,10010",这看起来像下面的矩阵: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 您可以看到粗体字1创建了最大的2x2的正方形子矩阵,因此您的程序应返回面积为4的子矩阵。 规则 子矩阵必须是宽度和高度相等的子矩阵之一 子矩阵只能包含值 1 您的函数必须返回最大子矩阵的面积 如果找不到子矩阵,请返回 1 您可以通过计算的数量计算子矩阵的区域1在子矩阵 测试用例 输入: "10100,10111,11111,10010" 输出: 4 输入: "0111,1111,1111,1111" 输出: 9 输入 "0111,1101,0111" 输出: 1 这是 代码高尔夫球,因此以字节为单位的最短答案会获胜。

3
模拟撞车
介绍 我有一些具有速度和方向的ASCII汽车。它们的速度由其数量表示。如果有汽车,<>那么它已经停止。例如: <> 1> 2> 3> 一秒钟后,我得到 <> 1> 2> 3> 两点之后,我得到 <> 1> 2> 3> 如果两辆车距离太近,它们会崩溃。 1> <1 1> <2 一秒钟后,这变成 ### ## 如果两辆汽车相交,它们将成为它们的标签。 如果一辆车的速度足以使其“跳上”另一辆车,则不会导致撞车。 3><1 2><1 4><> 变成 <13> ### <>4> 如果汽车离开屏幕,它将消失(除非发生碰撞)。汽车无法在屏幕外行驶。 <11> <1 1> 1 1> 1> 挑战 根据给定的汽车物理特性,您必须创建一个程序,该程序可以将时间推迟一秒钟。输入将是具有空间且最大速度为5(匹配正则表达式(<[1-5]|[1-5]>|<>| )+)的汽车。模拟将在一行上进行,但是该行没有固定的大小。 测试用例 <> 1> 2> 3> 4> 5> …

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.