Questions tagged «code-golf»

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

30
打印升序/降序的拱门
我认为“拱形”是描述这种数字模式的最佳方法: 1234567887654321 1234567 7654321 123456 654321 12345 54321 1234 4321 123 321 12 21 1 1 正式定义的每一行都由数字1到9-n,(n-1)*2空格和数字9-n到1组成(其中n是当前行)。 您的任务是使用尽可能最短的代码编写一个小的脚本/程序,该脚本/程序在遵循以下限制的前提下打印上述模式: 您可能没有对整个模式进行硬编码。您最多只能对模式的一行进行硬编码。 您的程序必须在每行末尾打印换行符(\n或的任意组合\r)。 预备,准备,开始!

5
高级计算器
您必须编写一个程序,该程序对将输入高级计算器的字符串进行求值。 程序必须使用stdin接受输入并输出正确答案。对于不具有接受stdin函数的语言,您可以使用这些函数readLine并print处理这些任务。 要求: 不使用任何“评估”功能 可以处理浮点数和负数 至少支持+,-,*,/和^运算符 支持括号和括号以覆盖正常顺序 可以处理在运算符和数字之间包含一个或多个空格的输入 使用标准操作顺序评估输入 测试用例 输入值 10 - 3 + 2 输出量 9 输入值 8 + 6 / 3 - 7 + -5 / 2.5 输出量 1 输入值 4 + [ ( -3 + 5 ) * 3.5 ] ^ 2 - 12 输出量 41
28 code-golf  math 

17
解密Vigenère密文
根据一位密钥,Vigenère密码是一种简单的多字母密码,基本上使用了几种Caesar密码之一。通常,键中的字母表示要使用的移位字母。为此,有一个简单的工具称为维格涅尔广场: 这里的每一行都是一个单独的字母,从键的相应字母开始。然后,这些列用于确定密文字母。解密的工作方式几乎相同,反之亦然。 假设我们要加密字符串CODEGOLF。我们还需要一个钥匙。在这种情况下,密钥应为FOOBAR。当密钥短于明文时,我们通过重复对其进行扩展,因此我们使用的实际密钥为FOOBARFO。现在,我们查找键的第一个字母,即F找到字母。它始于,也许不足为奇F。现在,我们找到带有纯文本首字母的列,结果字母为H。对于第二个字母,我们将其O作为关键字母和纯文本字母,结果为C。继续这样下去,我们终于得到了HCRFGFQT。 任务 现在,您的任务是解密给定密钥的消息。但是,由于我们已经不适合16世纪,并且拥有计算机,因此我们至少应该支持稍大一些的字母: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 Vigenère广场的结构仍然非常相似,并且密码仍然以相同的方式工作。只是有点...笨拙地在这里给出。 输入值 输入在标准输入上以两条单独的文本行给出,每行以换行符终止。第一行包含密钥,第二行包含密文。 输出量 一行,包含已解密的消息。 获奖条件 由于有时将加密视为一种武器,因此代码应简短易行。越短越好,因为它减少了发现的可能性。 样品输入1 Key miQ2eEO 样品输出1 Message 样品输入2 ThisIsAKey CoqKuGRUw29BiDTQmOpJFpBzlMMLiPb8alGruFbu 样品输出2 ThisWorksEquallyWellWithNumbers123894576 一个星期过去了。当前最短的解决方案已被接受。对于那些感兴趣的人,在我们的比赛中,我们提交了以下意见和时长: 130 – Python 146 – Haskell 195 – C 197 – C 267 – VB.NET 我们自己的解决方案在其他方面没有排名: 108 – Ruby 139 – PowerShell
28 code-golf  cipher 

30
每年13号星期五星期五?
您的挑战是编写一个程序,该程序在给定的一年内输出其中的“星期五13日”数字。 规则和详细信息: 您可以通过STDIN或作为传递给程序的参数来接受输入。 您应该将结果输出到STDOUT。 您可以假定输入将是有效年份,并且未提前输入公历(在这些情况下允许未定义的行为)。 日历/日期库是允许的。 这是一个代码高尔夫球,因此最短的代码(以字节为单位)获胜。 (相关挑战链接)
28 code-golf  date 

30
俄罗斯轮盘
写一个玩俄罗斯轮盘的程序! 如果程序启动, 打印“我还活着!”之后,应该有六分之五的机会正常结束 该程序崩溃的可能性应该为六分之一。(分段错误等) 没有输入,也没有其他输出是允许的。 随机性必须是公平的:它必须具有统一的概率分布。这意味着未初始化的变量(或没有种子的RNG)MOD 6将不足。 如果该解决方案仅适用于一个专用的操作系统/平台,您将获得6字节的罚款。 最短的代码获胜,不得早于第一个有效答案后的10天之内。
28 code-golf 

7
记下纸牌
这项挑战是要赢得一张纸牌。如果您不玩“纸牌游戏”,则需要学习一些知识。我们使用标准的扑克牌游戏,一手牌包括四张纸牌加“上纸牌”。手有两种类型:普通手和“婴儿手”。 卡进来的形式vs,其中v是下列之一:A23456789TJQK(十T)和s是之一SCDH。将以以下形式给出一手牌(例如) AS 2D 3H JS | 4S 4S上卡在哪里。婴儿床的手将具有以下格式 JD 3C 4H 5H | 5S ! 面卡的值为10,而ace的值为1。计分过程如下。 15分:对于五张卡的总和为15的每个子集,加2分。 成对:对于具有相同等级(非价值)的每对牌,加两点。 游程:对于长度大于2的连续卡牌,每次最大游程都以点为单位增加游程的长度。 同花:如果五张牌都相同,则加5分。否则,如果除了up卡之外的所有卡都相同,则加4分。如果这是婴儿床手,则不计算四点变量。 Nobs:如果手头有一个与up卡相同的插孔,则加1点。 笔记: 三元组和四元组的类型并不特殊-三元组中有三对,因此三元组可得6分。 运行可以重叠。例如,AS AH 2D 3C | 2C(一个双倍双程)有四个长度为3的滑程和两个对,因此值得3 + 3 + 3 + 3 + 2 + 2 = 16分。 仅计算最大跑步次数,因此KS QD JD TC | 9S值得5分,因为它是5的跑步次数。不计算子跑步次数。 众议院规则: 一手拿下19分是不可能的。报告分数为19,而不是零。 …
28 code-golf  game 

30
在不使用'^'的情况下实现超指数运算
挑战 用最少的字符实现四边形(又名Power Tower或Hyperexponentiation)。 条件 不要使用“功率”操作符或它的等价物(如pow(x,y),x^y,x**y等) 输入形式为:(x y以空格分隔) x本身乘幂y。 您的方法必须至少能够计算4 3(4次自身取幂3次) 计分 最低分获胜:(字符数) 如果您不使用乘法运算符(-5分),则扣除奖金。 没有速度/内存要求。只要你想。 例子 x, 0 -> 1 2, 2 -> 2^2 = 4 2, 4 -> 2^(2^(2^2)) = 65536 4, 3 -> 4^(4^4) = 4^256 = 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096 接受建议/改变/问题
28 code-golf  math 

29
呈现“数字时钟样式”数字
编写最短的程序,该程序将使用一串数字(至少 20个长度)作为输入,并使用标准的数字时钟样式数字显示输出。例如对于输入81,具有ascii输出的解决方案将给出: _ |_| | |_| | 如果有帮助,图形输出也是可以接受的。

30
计算ISBN-13校验位
编写一个函数,给定ISBN-13代码的前12位,该函数将通过计算并附加适当的校验位来计算整个ISBN。 函数的输入是一个字符串,其中包含ISBN的前12位数字。它的输出是一个包含所有13位数字的字符串。 正式规格 编写一个函数,当给定一个完全由12个十进制数字组成的字符串s(并且没有其他字符)时,该函数返回具有以下属性的字符串t: t完全由13个十进制数字组成(没有其他字符); s是t的前缀; t中奇数位置(即第一,第三,第五等)的所有数字的总和,加上t中偶数位置(即第二,第四,第六等)的所有数字的总和的三倍。10的倍数。 示例/测试用例 输入值 978030640615 输出量 9780306406157 胜利条件 作为对代码高尔夫球的挑战,最短的答案胜出。

29
哥伦比亚函数逆
让我们定义一个序列:n位求和序列(n-DSS)是一个以n开头的序列。如果最后一个数字是k,那么下一个数字是k + digit-sum(k)。以下是前几个n-DSS: 1-DSS: 1, 2, 4, 8, 16, 23, 28, 38, 49, 62, 70... 2-DSS: 2, 4, 8, 16, 23, 28, 38, 49, 62, 70, 77... 3-DSS: 3, 6, 12, 15, 21, 24, 30, 33, 39, 51, 57... 4-DSS: 4, 8, 16, 23, 28, 38, 49, 62, 70, 77, …

24
输出超级马里奥图像
这是罗谷OJ的问题。我决定将其发布在这里,因为在罗古OJ上,包括我和我的朋友在内的许多人都对如何在最少的字符范围内解决此问题感兴趣。 您的任务是输出以下ASCII文字: ************ ####....#. #..###.....##.... ###.......###### ### ### ........... #...# #...# ##*####### #.#.# #.#.# ####*******###### #.#.# #.#.# ...#***.****.*###.... #...# #...# ....**********##..... ### ### ....**** *****.... #### #### ###### ###### ############################################################## #...#......#.##...#......#.##...#......#.##------------------# ###########################################------------------# #..#....#....##..#....#....##..#....#....##################### ########################################## #----------# #.....#......##.....#......##.....#......# #----------# ########################################## #----------# #.#..#....#..##.#..#....#..##.#..#....#..# #----------# ########################################## ############ 这是代码高尔夫球,因此最短的程序为准。

9
“您必须建造更多的塔!”
介绍 在策略游戏《星际争霸2》中,有三个“种族”可供选择:人族,虫族和神族。在这一挑战中,我们将重点关注神族和标志性短语“您必须建造更多的塔!” 当您用尽兵力建立军队时,就会显示此信息。因此,要帮助Starcraft社区,您必须编写一个程序或函数来告诉玩家他们到底需要多少个挂架。 挑战 您将得到一个字符串输入,该字符串由一个整数N和以空格分隔的单位列表组成。N将始终为零或正数,并且单位列表将始终具有一个或多个有效单位。N代表玩家当前拥有的塔架数量。您的工作是计算玩家所拥有的塔架数量是否足以构建单位。你的程序或函数必须输出/返回truthy值,如果有足够的供应,或者如果没有足够的供应,你必须输出You must construct ZZZ additional pylons哪里ZZZ是建设单位需要挂架的量。请注意,pylon(s)在需要时必须为复数,而在不需要时为(...1 additional pylon!,...2 additional pylons!),则不能为复数。 神族单位和供应成本 这是所有单位及其相应供应成本的列表。挂架额外提供8个电源。 Unit Supply Cost Probe 1 Zealot 2 Sentry 2 Stalker 2 HighTemplar 2 DarkTemplar 2 Immortal 4 Colossus 6 Archon 4 Observer 1 WarpPrism 2 Phoenix 2 MothershipCore 2 VoidRay 4 Oracle 3 Tempest …

20
吸血鬼兼容性
关于吸血鬼的鲜为人知的事实是,他们必须喝具有兼容的供血者血型的受害者的血液。吸血鬼的相容性矩阵与常规红细胞供体/受体矩阵相同。可以通过以下美国红十字会表格进行总结 Type You Can Give Blood To You Can Receive Blood From A+ A+, AB+ A+, A-, O+, O- O+ O+, A+, B+,AB+ O+, O- B+ B+, AB+ B+, B-, O+, O- AB+ AB+ everyone A- A+, A-, AB+, AB- A-, O- O- everyone O- B- B+, B-, AB+, AB- …

9
APL高尔夫技巧
我最近发起了一场代码高尔夫挑战赛,看来胜利者是GolfScript(惊喜,惊喜!)。有趣的是,还有另一个非常强大的竞争对手,有机会赢得GolfScript。它的名字叫APL。我在这里看到了许多用APL编写的答案。看来这种语言对于代码打高尔夫球相当有效,因此我决定询问您对APL程序了解的任何代码打高尔夫球技巧。随时发布一些代码示例。看到实际的语言通常非常有趣。
28 code-golf  tips  apl 

10
玩混沌游戏
该混沌游戏是产生分形的简单方法。给定起点,长度比r和一组2D点,请重复执行以下操作: 从一组要点中,随机(均匀)选择一个。 使用r和1-r作为权重对该点和最后绘制的点(或起点)进行平均(即r = 0表示获得起点,r = 1表示获得随机点,r = 0.5表示您在一半之间得到点。) 绘制结果点。 例如,如果您选取了一个等边三角形的顶点且r = 0.5,则绘制的点将绘制出一个Sierpinski三角形: 在Wikipedia上找到的图片 您要编写一个“玩”混沌游戏以创建分形的程序或函数。 输入项 您可以编写程序或函数,并通过ARGV,STDIN或函数参数接受以下输入: 要绘制的点数。 起始坐标(也必须绘制!)。 区间[0,1]中的平均权重r。 点列表供您选择。 输出量 您可以在屏幕上渲染或写入图像文件。如果对结果进行栅格化,则每侧至少需要600像素,所有点都必须在画布上,并且点的图像水平和垂直范围的至少75%必须用于点(这是为了避免用一个黑色像素回答“它实际上已经缩小了”)。的X和ÿ轴必须在相同的比例(即从(0,0行)到(1,1)必须处于45度角),并在混乱游戏绘制各点必须表示为单个像素(如果您的绘图方法使该点抗锯齿,则该点可能会分布在2x2像素上)。 颜色是您的选择,但是您至少需要两种可区分的颜色:一种用于背景,另一种用于在混乱游戏中绘制的点。您可能但不必绘制输入点。 请在答案中包括三个有趣的示例输出。 计分 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 编辑:您不再需要绘制输入点,因为它们无论如何都不会作为单个像素真正可见。

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.