Questions tagged «code-golf»

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

20
平行帐户(第2天)
挑战经我的大学代码挑战竞赛许可 几个月前完成学业后,玛丽(Marie)开了一个银行帐户,开始在镇上领取她的第一份工作。从那时起,她一直在与它进行一些交易。她的第一笔付款是1000美元。她用这笔钱支付了一次晚餐,邀请她的父母参加(晚餐费用为150美元),然后,她在一家知名的超市购物(80美元),并为度假预订了旅馆(200美元)。月底,她又收到了付款(1040美元,比前一个月略多),第二天又在超市花了70美元。 如今,她意识到,如果在超市中支付了第一笔80美元之后,已经创建了第二个帐户并冻结了第一个帐户,则两个帐户的余额将完全相同: 1000− 150− 80ŤÔ 吨一升= 770− 2001040− 70ŤÔ 吨一升= 7701000−150−80⏟Total=770−2001040−70⏟Total=770 \underbrace{1000\quad -150\quad -80}_{Total=770}\quad \underbrace{-200\quad 1040\quad -70}_{Total=770} 该事件对她来说非常罕见,以至于她想继续确定她的帐户和她的朋友的活动是否也具有此功能。 挑战 给定交易列表,输出银行帐户所有者可以创建第二个帐户,以便两者都具有相同的最终余额的瞬时时间数。 例如: [1000, -150, -80, -200, 1040, -70] 1 )ŤÔ 吨一升= 01000− 150− 80− 2001040− 70ŤÔ 吨一升= 15401)⏟Total=01000−150−80−2001040−70⏟Total=1540 \color{red}{1)\quad\underbrace{}_{Total=0}\quad \underbrace{1000\quad -150\quad -80\quad -200\quad 1040\quad -70}_{Total=1540}} 2 )1000Ťotal=1000−150−80−2001040−70Total=5402)1000⏟Total=1000−150−80−2001040−70⏟Total=540 \color{red}{2)\quad\underbrace{1000}_{Total=1000}\quad \underbrace{-150\quad -80\quad …
10 code-golf 

11
玩Pickomino
在Pickomino游戏中,桌子中间放着几块瓷砖,每块瓷砖上都有一个不同的正整数。每回合,玩家以某种方式掷骰子并获得分数,这是一个非负整数。 现在,玩家将选择仍低于或等于其分数的最高编号的图块,从中间移除图块并将其添加到堆栈中。如果由于中间的所有数字均高于玩家的分数而无法这样做,则玩家将失去其堆栈中最上面的图块(该图块最近添加),并返回中间。如果玩家没有剩余的瓷砖,则什么也不会发生。 挑战 模拟对自己玩游戏的玩家。您会在中间找到一个磁贴列表,以及一个获得的分数列表。在评估所有回合之后,返回玩家的磁贴列表。 挑战规则 您可以假设包含图块的列表是有序的,并且两次都不包含任何整数。 您可以按任意顺序获取两个输入列表 输出必须保持切片在堆栈上的顺序,但是您可以决定列表是从上到下还是从下到上排序。 通用规则 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您使用非代码高尔夫球语言发布答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于具有默认I / O规则的答案,因此您可以使用STDIN / STDOUT,具有正确参数的函数/方法以及返回类型的完整程序。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接(即TIO)。 建议为您的答案添加说明。 例 (摘自第6个测试用例) Tiles: [21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36] Scores: [22, 22, 22, 23, 21, 24, 0, 22] 第一个分数是22,所以取中间<= 22的最高分块,也就是22本身。 Middle: …
10 code-golf  game 


12
Quine以二进制形式输出自身
您的任务(如果希望接受它)是编写一个程序,该程序以二进制UTF-8表示形式输出其自己的源代码。 规则 源必须至少为1个字节长。 您的程序不得输入(或有未使用的空输入)。 输出可以是任何方便的格式。 允许使用尾随换行符。 请注意,一个字节为8位,二进制UTF-8表示形式的长度必须为8的倍数。 这是代码高尔夫球,因此所有常用的高尔夫规则都适用,并且最短的代码(以字节为单位)获胜。 禁止出现标准漏洞。 例 假设您的源代码是Aä$$€h,其对应的UTF-8二进制表示形式是010000011100001110100100001001000010010011100010100000101010110001101000。 如果我运行Aä$$€h,输出必须是010000011100001110100100001001000010010011100010100000101010110001101000。 A --> 01000001 ä --> 1100001110100100 $ --> 00100100 $ --> 00100100 € --> 111000101000001010101100 h --> 01101000 Aä$$€h --> 010000011100001110100100001001000010010011100010100000101010110001101000 字符串到二进制UTF-8转换器 在线尝试! utf8转换

24
密码主教善良
源于此,现在删除帖子。 给定一个字符串,如果它构成一个不错的Bishop密码,则应回答(真实/虚假或两个一致的值),这是在满足以下所有条件时: 至少有10个字符 它至少有3位数字([0-9]) 它不是回文(反转时与自身相同) 如果您的代码是不错的Bishop密码,则您将获得0字节的奖励。 警告:待办事项不使用善良主教作为实际的密码强度的测量! 例子 好的Bishop密码 PPCG123GCPP PPCG123PPCG PPCG123gcpp 0123456789 Tr0ub4dor&3 不好的Bishop密码 PPCG123 (太短) correct horse battery staple (数字不足) PPCG121GCPP (回文) (太短且数字不足) abc121cba (太短和回文) aaaaaaaaaaaa (回文且数字不足) abc99cba (一切都错了)

11
映射作弊者!
提交所有作业后,将创建一个字典,将学生编号映射到其文件的哈希。 该字典,哈希表或映射(无论您的语言叫什么)将如下所示: {100: "aabb", 104: "43a", 52: "00ab", 430: "aabb", 332: "43a"} 关键是学生编号,而值是哈希。 我们的任务是挑选作弊者!作弊者是具有相同哈希值的作弊者。 给定输入后{100: "aabb", 104: "43a", 52: "00ab", 430: "aabb", 332: "43a"},该函数应返回(或打印)以下文本: 100 has identical files to 430 104 has identical files to 332 请注意,没有提到哈希唯一的文件。 另外,顺序在这里很重要: {100: "aabb", 202: "aabb", 303: "ab", 404: "aabb"} 应该返回(打印)以下文本: 100 has identical …

15
矩阵拼图碎片
(受到https://codegolf.meta.stackexchange.com/a/17272/42963的随机启发) 给定一个矩形的数字矩阵(即0 - 9),输出矩阵的“块”,就好像这些数字被连接在一起形成单个块(按数字升序排列)一样。这些部件保证只能正交连接-没有任何部件将对角连接。最多只能有10个片段(即,一个3片段不会在同一矩阵中出现两次)。 例如,给定矩阵 0 1 1 1 0 0 1 2 3 3 2 2 以下是片段,以及示例输出: 0 0 0 1 1 1 1 2 2 2 3 3 间距对于保持部件的形状很重要,但是部件不一定需要内部间距。作品本身应以某种方式以一致的方式进行区分(例如,作品之间的换行符,确保每一个都是不同的字符,等等)。此外,不允许使用多余的空格(例如,尾随换行符或前导列)。例如,以下内容也将有效: 0 00 111 1 2 22 33 要么 # ## ### # # ## ## 但是以下内容不是(请注意0s 后面的空格): 0 0 …
10 code-golf  matrix 

30
转数
任务 编写一个函数或程序,以找出车轮在给定半径下行进给定距离所需的转数。 规则 输入可以是2个正有理数,并且可以采用任何方便的格式进行输入。 两个输入的单位相同。 您的代码中不得包含任何数字0-9。 输出将是一个整数(如果是float,则四舍五入为无穷大) 这是代码高尔夫球,所以最短的代码胜出 例子 distance radius output 10 1 2 50 2 4 52.22 4 3 3.4 0.08 7 12.5663 0.9999 3

15
多层次营销“腿”投资规则
与多层次营销相关的挑战。 一位同伴想要获得奖励。因此,它吸引了N投资者(N>=1),每个第i个投资者都进行了投资x[i]。当总和超过阈值时x[0]+x[1]+...+x[N-1] >= T,可以奖励同伴。但仅在满足以下条件时: 最低投资额应大于M(M<=N) 对于至少一个整数k,其中k>=M和k<=N,任何k投资者必须至少投资T/k每个; 给定N, x[], T, M您应该确定是否生成对等方的奖励(布尔结果,“是”或“否”)。最短的代码获胜。 例子: N=5; M=3; T=10000,为了产生对等方的奖励,必须满足以下条件之一: 任何3家公司各投资至少3334 任何4家公司各投资至少2500 所有这5家公司各投资了至少2000 N=6; M=2; T=5000: 任意2家各投资至少2500 任何3家公司各投资至少1667美元 任何4家公司各投资至少1250美元 任意5名至少投资1000美元 所有6家公司各投资了至少834美元 广义的:对于任何k,其中k>=M和k<=N: 任何k的N投资者投入至少T/k每 测试用例: 格式: N, x[], T, M -> correct answer 6, [999, 999, 59, 0, 0, 0], 180, 3 -> 0 6, [0, 60, …

9
穿越时空
介绍: 一般来说,我们通常说四个维度:三维空间的x,y和z; 和一个时间维度。对于这一挑战的缘故然而,我们就会将时间维度分为三个还有:past,present,和future。 输入: 两个输入列表。一种包含整数x,y,z坐标,另一种包含整数年。 输出: 您自己选择的四个不同且恒定的输出之一。一个表示输出space; 一个表示输出time; 一个表示输出both space and time; 一个指示输出neither space nor time。 如果所有三个维度的整数元组之差都不为0,我们将指示我们进入了所有三个维度。 如果过去至少有一年,未来至少有一年,以及至少有一年等于当前年(所以现在),我们将指示我们进入了所有三个时间维度。 例: 输入: 坐标列表:[{5,7,2}, {5,3,8}, {-6,3,8}, {5,7,2}] 年列表:[2039, 2019, 2018, 2039, 2222] 输出: 恒定为space 为什么? 该x坐标[5,5,-6,5]。由于它们并不完全相同,因此我们遍历了x空间维度。 该y坐标[7,3,3,7]。由于它们并不完全相同,因此我们也讨论了y空间维度。 该z坐标[2,8,8,2]。由于它们并不完全相同,因此我们也讨论了z空间维度。 本年度是2018。在此之前没有几年,因此我们没有访问past时间维度。年列表中 有一个2018礼物,因此我们确实访问了present时间维度。() 以上有多个年份,因此我们也访问了时间维度。2018[2039, 2019, 2039, 2222]future 由于我们已经访问了所有三个space维度,但是仅访问了三个维度中的两个time,因此输出将仅为(的常数)space。 挑战规则: 您可以为四种可能的状态使用任何四个不同且恒定的输出。 输入可以采用任何合理的格式。坐标列表可以是元组,大小为3的内部列表/数组,字符串,对象等。年份列表可以是日期对象的列表,而不是整数,如果它对您的字节数有利的话。 您可以假设x,y,z坐标为整数,因此无需处理浮点小数。但是x,,y和/或z坐标中的任何一个都可以为负值。 您不能将输入列表预先订购。输入列表应按照测试用例中显示的顺序。 您可以假设所有年份值都在该范围内[0,9999];并且您可以假设所有坐标都在范围内[-9999,9999]。 如果您的语言没有检索当前年份的任何方式,但是您仍然想应对这一挑战,则可以将其作为附加输入并将答案标记为(非竞争)。 通用规则: …

1
Tatamibari求解器
背景 Tatamibari是由Nikoli设计的逻辑难题。 Tatamibari拼图游戏在带有三种不同符号的矩形网格上播放:+,-。和|。求解器必须根据以下规则将网格划分为矩形或正方形区域: 每个分区中必须只包含一个符号。 一个+符号必须包含在一个正方形。 甲|符号必须被包含在具有比宽度更大的高度的矩形。 甲-符号必须被包含在具有比高度较大的宽度的矩形。 四个片段可能永远不会共享相同的角落。(这是日本榻榻米瓷砖通常的放置方式。) 以下是一个示例难题,并提供了解决方案: 任务 解决给定的Tatamibari难题。 输入输出 输入是一个2D网格,代表给定的Tatamibari拼图。每个单元包含四个字符之一:+,-,|,和您所选择的字符来表示一个非线索细胞。在测试用例中,使用星号*。 您可以选择任何合适的输出格式,这些输出格式可以明确表示Tatamibari拼图的任何有效解决方案。这包括但不限于:(如有疑问,请在评论中提问。) 4元组的列表,其中每个元组包括矩形的顶部索引,左侧索引,宽度和高度(或任何等效表示形式) 与输入形状相同的数字网格,其中每个数字代表一个矩形 坐标集列表,每个坐标集包括矩形中单元格的所有坐标 如果难题有多个解决方案,则可以输出任意数量(一个或多个)的有效解决方案。输入保证至少有一个解决方案。 测试用例 Puzzle: |-* *+| *-* Solution: 122 134 554 ===== Puzzle: +*** **|* *+** ***- Solution: 1122 1122 3322 3344 ====== Puzzle: |*+*+ ***** ****- ***+| +**** Solution: 12233 12233 44444 55667 …

15
Rosencrantz和Guildenstern是代码
在荒诞戏中,罗森克兰兹和吉尔登斯滕死了,两个主要角色罗森克兰兹和吉尔登斯特恩(还是他们??)总是混为一谈,是因为谁感觉到自己缺乏身体,或者有时是自己的身体部位是什么?个人身份。如果他们甚至改头换面都不会荒谬吗? 您的任务是编写一个函数,该函数接受长度大于7个字符的偶数长度(并且设计为4的倍数)的字符串,将其拆分并随机播放。 分割如下:字符串应为format "abscd",其中s为分隔符。第一部分和分隔符abs将是字符串的前半部分,而后半部分将是cd 长度 a将是(string length / 4) - 1 长度 b将是(string length / 4) 长度 s将是1 长度 c将是(string length / 4) + 1 长度 d将是(string length / 4) - 1 这可能确实令人困惑,所以让我向您展示一些示例 ("a" + "bb" + "s" + "ccc" + "d").length //8 1 2 1 3 1 |-------4--------| |----4-----| …
10 code-golf 

15
查找递归首字母缩写
介绍 一个递归的缩写,是一个包含或引用本身,例如首字母缩写: Fish可能是递归的缩写Fish is shiny hero,通知怎么也包含缩写本身。另一个例子是Hi-> Hi igloo。甚至ppcg paints->ppcg paints cool galaxies pouring acid into night time stars 因此,基本上,如果每个单词的第一个字母拼写出第一个单词或多个单词,那么句子就是递归首字母缩写词。 挑战 编写一个程序,该程序接受由1个或多个单词组成的字符串,并用空格字符分隔,然后输出一个递归首字母缩写词;如果不可能,则输出一个空字符串。例如,不可能为字符串创建递归首字母缩写词,ppcg elephant因为您首先要使用pfrom,ppcg然后将其添加到首字母缩写词,然后使用efrom elephant。但是现在我们有了矛盾,因为首字母缩写词目前拼写为“ pe ..”,与“ pp ..”冲突。例如,也是如此hi。您可以使用hfrom hi,但是句子现在结束了,没有更多字母可以拼出hi,我们只剩下h不匹配的字母hi。(字符串需要的单词数量大于或等于首字母缩写词中的字母数量) 输入和输出不区分大小写 限制条件 输入到程序中的任何内容都将是有效的英语单词。但是,您还必须确保输出有效的英语单词(可以使用数据库,也可以只为26个字母存储一个单词) 适用标准漏洞和默认IO规则 测试用例 hi igloo -> hi ppcg paints -> (impossible) ppcg paints cool giraffes -> ppcg ppcg paints cool …
10 code-golf  string 

25
打网球2:东西方比赛
有一个挑战,让我们打网球的丹尼尔。他建议在南北方向建立法院。我的提议是建立一个法院,以东西方向打网球。 您必须打印一个网球场,但是由于机密原因,您必须以最少的字节数进行打印。 网球场 ------x------ | | x | | | |--x--| | | | x | | ------x------ 原始规则是: 没有多余的空间。 没有标签,因为它们将不公平。 允许使用一个可选的尾随换行符。 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

5
阿弥陀签(Amidakuji)的简化
如果您曾经接触过日本或东亚文化,那么您肯定会遇到过Amidakuji游戏: 正如Wikipedia解释的那样,这是一种抽签在纸上的彩票,用于随机选择N个项目的排列。 例如,它可以用于将开始顺序随机分配给N个人,或者将N个奖赏分配给N个人,依此类推。 了解游戏为何代表排列的诀窍是要意识到每个水平笔划(称为“腿”)都会将其两个项目交换到位。 同一Wikipedia页面还解释了N个项的每个排列P对应于无数个Amidakuji图。水平笔画(腿)最少的那个被称为那个特定排列P的“素数”。 您的任务是使用以下格式(减去字母)接收带有2条或更多垂直线(在本示例中为6条)的Amidakuji图: A B C D E F | | | | | | |-| |-| |-| | |-| |-| | | | | | |-| | |-| |-| | | | |-| |-| | | |-| | | |-| | |-| | |-| |-| | …

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.