Questions tagged «code-golf»

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

3
建议我挑战!
我很无聊,想要解决一个挑战。但是我看不到任何有趣的挑战,而且我懒得寻找。您能(从技术上来说是您的代码)建议我一个吗? 输入输出 输入:无。 输出: PPCG上随机打开(即非关闭)挑战(“挑战”不包括提示!)的链接。您可能不会链接到挑战中的答案,而只是挑战。(我没有要求一个有趣的答案!) 例子 有效: http://codegolf.stackexchange.com/questions/93288/make-me-a-mooncake http://codegolf.stackexchange.com/questions/113796/raise-a-single-number http://codegolf.stackexchange.com/questions/113898 无效: http://codegolf.stackexchange.com/questions/78152/tips-for-golfing-in-matl (tips question) http://codegolf.stackexchange.com/questions/113896/josephus-problem (closed) http://codegolf.stackexchange.com/questions/84260/add-two-numbers/84365#84365 (linked to answer)

21
做矩阵乘法!
在数学中,矩阵乘法或矩阵乘积是一种从两个矩阵生成矩阵的二进制运算。该定义受矢量上的线性方程式和线性变换的启发,在应用数学,物理学和工程学中有许多应用。更详细地讲,如果A是n×m矩阵,而B是m×p矩阵,则它们的矩阵乘积AB是n×p矩阵,其中A行中的m个条目与m个条目在a处相乘。 B列并求和以产生AB条目。当两个线性变换由矩阵表示时,则矩阵乘积代表两个变换的组成。 资料来源:维基百科 换句话说,将两个矩阵相乘,例如: 1 2 3 1 4 2 3 4 × 3 1 = 3 4 5 4 6 首先,采取在第一矩阵的行号1,列号1中的第二矩阵,和乘法1通过1,2通过3,并3通过4。 1 × 1 = 1 2 × 3 = 6 3 × 4 = 12 现在将它们加在一起得到您的第一个项目: 1 2 3 1 4 19 2 3 4 × 3 1 …
14 code-golf  math  matrix 

14
百分比编码字符串
介绍 如您中某些人所知,URL实际上具有执行特殊功能的字符列表。例如,/字符分开的网址的部分,并且?,&和=字符用于查询参数传递给服务器。实际上,有一堆具有特殊功能的字符:$&+,/:;=?@。除了特殊功能之外,如果出于其他任何原因需要在URL中使用这些字符,则必须执行称为percent-encoding的操作。 百分比编码是当您采用字符的十六进制值并将%字符放在字符开头时。例如,字符?将被编码为%3F,字符&将被编码为%26。特别是在URL中,这使您可以通过URL将这些字符作为数据发送,而不会引起解析问题。您的挑战将是获取一个字符串,并对所有需要编码的字符进行百分比编码。 挑战 您应该编写一个程序或函数,该程序或函数采用单个字符串,该字符串由代码点为00-FF的字符(ASCII和扩展ASCII字符)组成。然后,如果需要,您将必须输出或返回相同的字符串,并且每个字符都进行百分比编码。不允许完成此任务的内置程序,也不允许出现标准漏洞。作为参考,以下是每个需要百分比编码的字符的列表: 控制字符(代码点00-1F和7F) 扩展ASCII字符(代码点80-FF) 保留字符($&+,/:;=?@即代码点24、26、2B,2C,2F,3A,3B,3D,3F,40) 不安全字符(例如" <>#%{}|\^~[]`,代码点20、22、3C,3E,23、25、7B,7D,7C,5C,5E,7E,5B,5D,60) 这是一个相同的列表,但是作为十进制代码点的列表: 0-31, 32, 34, 35, 36, 37, 38, 43, 44, 47, 58, 59, 60, 62, 61, 63, 64, 91, 92, 93, 94, 96, 123, 124, 125, 126, 127, 128-255 这是代码高尔夫球,因此最短的代码以字节为单位(或认可的替代评分方法)获胜! 测试用例 http://codegolf.stackexchange.com/ => http%3A%2F%2Fcodegolf.stackexchange.com%2F [@=>]{#} => %5B%40%3D%3E%5D%7B%23%7D Test String => …
14 code-golf  string 

8
排列奇偶
背景 所述置换的奇偶性,由维基百科所定义,如下: 排列σ的符号表示为sgn(σ),如果σ为偶数,则定义为+1,如果σ为奇数,则定义为-1。 排列的符号可以明确表示为 sgn(σ)=(-1)^ N(σ) 其中,N(σ)是σ中的求逆数。 替代地,可以从置换成分解为换位的乘积来定义置换的符号 sgn(σ)=(-1)^ m 其中,m是分解中的换位数。 对于那些在数学上不喜欢希腊字母汤的人,我将尝试通过一个示例(也从维基百科窃取)来简化定义。 例 考虑输入数组{1, 2, 3, 4, 5},以及它的一个排列,比如说{3, 4, 5, 2, 1}。为了从原始数组获取其排列,您必须交换索引0和2,1和3,然后交换2和4。尽管这不是唯一的解决方案,但奇偶校验定义明确,因此适用于所有情况。 由于需要进行3次交换,因此我们用odd奇偶校验标记此排列。如您所料,要求偶数交换的排列具有even奇偶性。 挑战 您面临的挑战是编写尽可能少的字节的程序以确定排列的奇偶性。您的程序或函数必须: 接受两个输入数组(或字符串)作为参数,分别表示排列前后的集合。 给定排列,返回或打印e偶数或o奇数字符。 应该假设数组或字符串中的所有索引都具有唯一值。 测试用例 假设您声明了一个名为的函数f: f([10], [10]) == "e" f([10, 30, 20], [30, 20, 10]) == "e" f([10, 30, 20, 40], [30, 20, 40, 10]) …

2
你在等什么?(麻将求解器)
感谢@MartinBüttner在聊天中的讨论 麻将是一款在亚洲非常受欢迎的瓷砖游戏。它通常由四个玩家玩,并且游戏的目标是成为第一个使用磁砖完成有效手牌的人。对于这个挑战,我们将考虑游戏的简化版本-PPCG麻将。 在PPCG麻将,有三套衣服- m,p和s-和瓦片从编号1来9。正好有每个区块的四个副本,和瓷砖是由它的编号,然后它的套装(如表示3m,9s)。 一张完整的PPCG麻将手包括四组,每组三个,一对,共14块瓷砖。 三个一组可以是: 三个相同的图块(例如4s 4s 4s,但不是4m 4p 4s),或者 同一套西装中三个连续的拼贴的序列(例如1s 2s 3s,6p 7p 8p但不是3s 4m 5m或3p 5p 7p)。序列不换行(因此9m 1m 2m无效)。 一对只是两个相同的图块(例如5s 5s)。 挑战 您的程序将收到由空格隔开的13张磁贴,每张磁贴出现不超过四次。您可以编写一个包含字符串的完整程序或函数。 您的任务是找到所有可能的第14个图块(“等待”),将其添加到该手形后,将形成一个完整的PPCG麻将手。输出的图块应以空格分隔,但可以采用任何顺序。允许前导或尾随空格。 您的程序应在合理的时间内(不超过一分钟)运行。 例子 Input: 1m 1m 1m 4s 4s 4s 7p 7p 7p 3m 3m 3m 9s Output: 9s Input: 1m 1m 1m 3m …
14 code-golf  game 

8
你是什​​么星座?
写一个程序,它出生日期(月和月某一天的)作为输入,并输出相应的符号,元件和质量西黄道。出于此挑战的目的,它们的定义与链接的维基百科页面中的表完全相同: Sign Date Range Element Quality Aries March 21 to April 19 Fire Cardinal Taurus April 20 to May 20 Earth Fixed Gemini May 21 to June 21 Air Mutable Cancer June 22 to July 22 Water Cardinal Leo July 23 to August 22 Fire Fixed Virgo August 23 to …

24
以字母顺序显示句子
编写一个程序,该程序需要一个字符串,并按字母顺序输出所有字符。可以忽略或删除空格和符号,但是大写和小写字母必须保持大小写相同。 输入样例: Johnny walked the dog to the park. 样品输出 aaddeeeghhhJklnnoooprtttwy 规则: •任何语言 •最短的代码获胜。
14 code-golf 

11
N门,K猴子
有N个门和K个猴子。最初,所有的门都是关闭的。 第1轮:第1只猴子拜访每扇门并拨动门(如果门关闭,则打开;如果门打开,则关闭)。 第二回合:第一只猴子拜访每扇门并拨动门。然后,第二只猴子每隔第二个门访问一次并切换门。 。。。 。。。 回合k: 第一只猴子拜访每扇门并拨动门。。。。。。。。。。第k只猴子会访问第k个门,然后打开门。 输入: NK(以单个空格分隔) 输出: 打开的门号,每个门号之间用一个空格隔开。 范例: 输入:3 3 输出:1 2 限制条件: 0 <N <101 0 <= K <= N 注意事项: 假设N个门的编号从1到N,K个猴子的编号从1到K 代码最短的一方获胜。另外,显示输出为N = 23,K = 21

2
罗马数字转换器功能
创建最短函数以将罗马数字字符串转换为整数。 每个字母的规则可以在Wikipedia页面上找到。大于1,000的字母将带有括号,以表示其较高的价值。 要求: 必须将罗马数字1转换为500,000 必须在一分钟内完成 不使用可能提供优势的内置函数(例如:将罗马数字转换为整数的函数) 是功能 该函数不需要支持分数。任何无效的输入都应返回数字0。 最短的函数获胜。如果是平局,则得票最多的人获胜。 测试用例 输入值 III 输出量 3 输入值 IIII 输出量 0 输入值 XVI 输出量 16 输入值 (C)(D)(L)MMI 输出量 452001

5
输入,但在左侧[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 6个月前关闭。 背景 您已被赋予记录会议笔记的任务。您开始在Google文档中输入内容,但是在会议期间您没有足够的时间在输入时看着键盘。 幸运的是,您无需看键盘即可键入内容。会议结束后,您意识到键入的所有内容都是左侧的一个键。 挑战 对于此挑战,您将使用QWERTY键盘布局的字母,数字和空格键。 给定文本输入(通过任何标准输入方法),输出结果文本,其中每个字符在键盘上向左移动一个。 对于广大的信,只是看看书,并转换为信向左(c变x,t变r,等等)。 对于letter q,请转换为文字制表符(\t)。 对于letter a,启用大写锁定,因此其余字符串的大小写相反。 对于letter z,请大写字符串中的下一个字母。 空格键不需要翻译。 在翻译时保留大小写,并注意大写锁定(如果启用了大写锁定,请确保大小写相反)。 输入字符串中的所有字符均为字母,数字或空格。不能包含标点符号或其他字符。 测试用例 \t 是文字的制表符 Hello world -> Gwkki qieks Code Golf -> Xisw Fikd Queried apples -> \tyweuws OOKWA 计分 最低得分(以字节为单位)获胜。玩得开心!

30
两个列表的笛卡尔积
任务 给定两个字符列表,输出其笛卡尔积,即,第一个列表中每个字母与第二个列表中每个字母的配对列表。 例 "123456"并"abcd"给出: [["1","a"],["1","b"],["1","c"],["1","d"],["2","a"],["2","b"],["2","c"],["2","d"],["3","a"],["3","b"],["3","c"],["3","d"],["4","a"],["4","b"],["4","c"],["4","d"],["5","a"],["5","b"],["5","c"],["5","d"],["6","a"],["6","b"],["6","c"],["6","d"]] 输入值 两个字符或字符串列表。所使用的字符将是字母数字字符,a-z, A-Z, 0-9并且一个字符可以出现两次,并且可以同时出现在两个输入中。 输出量 输入列表的笛卡尔积。即,列出来自第一列表的字符和来自第二列表的字符的每个可能有序对的列表。每对都是两个字符或两个长度为一的字符串的列表或字符串或类似内容。输出的长度将等于输入长度的乘积。 对必须按顺序列出;首先列出第一个列表的第一个字符与第二个列表的第一个,然后是第一个列表的第一个字符的所有配对。最后一对由第一个列表的最后一个字符和第二个列表的最后一个字符组成。 输出必须是对的平面列表;不是2D矩阵,其中按对的第一个或第二个元素进行分组。 测试用例 inputs output "123456", "abcd" [["1","a"],["1","b"],["1","c"],["1","d"],["2","a"],["2","b"],["2","c"],["2","d"],["3","a"],["3","b"],["3","c"],["3","d"],["4","a"],["4","b"],["4","c"],["4","d"],["5","a"],["5","b"],["5","c"],["5","d"],["6","a"],["6","b"],["6","c"],["6","d"]] "abc", "123" [["a","1"],["a","2"],["a","3"],["b","1"],["b","2"],["b","3"],["c","1"],["c","2"],["c","3"]] "aa", "aba" [["a","a"],["a","b"],["a","a"],["a","a"],["a","b"],["a","a"]]

13
生成扫雷网格
扫雷(Minesweeper)是大多数操作系统上都能找到的逻辑游戏。该游戏的目标是确定地雷在网格上的位置,并给出指示该点周围地雷数量的数字。 给定一个网格大小和一组地雷,则为该组地雷生成扫雷网格。 输入:两个整数,指示网格大小,未定义的整数,指示矿井位置。位置将指定为(列位置,行位置),索引将从第1行开始。 输出:扫雷网格。如果街区周围没有地雷,请打印x。对于每个新行,请打印换行符。请输出所有地雷为星号*。打印时,请不要在行中的值之间留任何空格。 测试用例: 输入“ 5 5 1 3 3 5 2 4”: xxxxx 11xxx *21xx 2*21x 12*1x 输入“ 3 4 3 1 1 4 2 3 3 2”: x2* 13* 2*2 *21 最短的代码获胜。

8
Zeckendorf表示下的求和
Zeckendorf定理表明,每个正整数都可以唯一地表示为不相邻的斐波那契数之和。在此挑战中,您必须计算Zeckendorf表示形式中两个数字的和。 令F n为第n个斐波那契数,其中 F 1 = 1, F 2 = 2,并且 对于所有k > 2,F k = F k -1 + F k -2。 非负整数n的Zeckendorf表示 Z(n)是一组正整数,使得 Ñ =Σ 我 ∈Z(Ñ) ˚F 我 和 ∀ 我 ∈Z(Ñ) 我 + 1个∉Z(Ñ)。 (在prosa中:数字n的Zeckendorf表示是一组正整数,因此这些索引的斐波那契数之和为n,并且该集合中没有两个相邻的整数) 值得注意的是,Zeckendorf表示法是唯一的。以下是Zeckendorf表示形式的一些示例: Z(0)=∅(空集) Z(1)= {1} Z(2)= {2} Z(3)= {3}({1,2}不是3的Zeckendorf表示) Z (10)= {5,2} …

6
莱利定理
S. Ryley于1825年证明了该定理: 每个有理数可以表示为三个有理立方体的总和。 挑战 鉴于一些有理数r∈Qr∈Qr \in \mathbb Q 发现三个有理数a,b,c∈Qa,b,c∈Qa,b,c \in \mathbb Q,使得r=a3+b3+c3.r=a3+b3+c3.r= a^3+b^3+c^3. 细节 给定足够的时间和内存,您的提交应该能够为每个输入计算一个解决方案,这意味着仅用两个32位int表示一个分数是不够的。 例子 305230717280142=39829338766813−6366005495153−39775055545463=607029013173+239612924543−619227128653=(12)3+(13)3+(14)3=03+03+03=(12)3+(23)3+(56)3=(1810423509232)3+(−1495210609)3+(−25454944)330=39829338766813−6366005495153−3977505554546352=607029013173+239612924543−6192271286533071728=(12)3+(13)3+(14)30=03+03+031=(12)3+(23)3+(56)342=(1810423509232)3+(−1495210609)3+(−25454944)3 \begin{align} 30 &= 3982933876681^3 - 636600549515^3 - 3977505554546^3 \\ 52 &= 60702901317^3 + 23961292454^3 - 61922712865^3 \\ \frac{307}{1728} &= \left(\frac12\right)^3 + \left(\frac13\right)^3 + \left(\frac14\right)^3 \\ 0 &= 0^3 + 0^3 + 0^3 \\ …

18
步行者加入!-艾伦·沃克(Alan Walker)的徽标
您可能会从艾伦·沃克(Alan Walker)曾经流行的歌曲《衰落》(Faded)中了解到。现在,他的“追随者”被称为沃克,并且有一个徽标,这是简化版本: \\ \\ //\\ \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // //\\ \\ // \\// // \\ \\// // // \\ \\ //\\ // \\ //\\ \\// \\// \\ \\ 这项挑战的目标是印刷该徽标。 规则: 如果您按照元标准从函数返回字符串列表,请提供一个页脚,将其打印到屏幕上。 以上徽标的所有字符都必须存在。没有捷径! …

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.