Questions tagged «code-golf»

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

1
为Stack Exchange网站创建狂热机器人
今天的挑战是欺骗徽章! 您将构建一个机器人,该机器人将连接到Stack Exchange网站,以您的身份登录,访问/ questions页面,访问一个问题,然后在“相关”侧边栏中访问其他9个问题(因为这足以算作“活动”,并且我需要对某些事情进行标准化)。 该漫游器必须每天执行一次此过程,而无需用户进行任何输入或采取任何操作。它应该可以继续运行,用户应该永远不能触摸计算机,并且连续的天数仍将增加。“访问”该站点后,必须打印“已访问”。 您将假定用户正在使用Stack Exchange提供的OpenID。 该程序的输入将是站点URL,SE OpenID电子邮件和SE OpenID密码。例如: /programming// doorknob@doorknob.doorknob password 您可以根据需要输入。 您的程序必须至少满足以下条件: /programming// https://meta.stackoverflow.com/ /superuser// /codegolf// (只是确保它是通用的。) 这是代码高尔夫球,因此最短的代码(以字节为单位)将获胜!
12 code-golf 

2
实施反向引擎
对于本次高尔夫,您的工作是编写一个程序,该程序将进行黑白棋游戏(othello)的操作并将结果显示给用户。 输入值 一串数字,取值范围为[0-7]。每对数字首先代表X坐标,然后代表Y坐标。不在该范围内的任何字符都应忽略。 输出量 游戏结果的视觉表示,包括输入结束时谁在领先。这可能是图形输出或按键输出,但必须是游戏的可视网格,并带有不同的字符/图形符号,分别表示黑色,白色和空白。 此外,您的代码应输出一条错误消息,并在输入非法举动时停止(相同的方块不止一次,或者不会翻转任何方块的方块)。 跳过应该优雅处理。如果一种颜色没有合法移动,则跳过该回合,而另一位玩家开始比赛,则会发生跳过。 黑色总是最重要的。 例子 23 ........ ........ ........ ..bbb... ...bw... ........ ........ ........ b 232425140504032627 ........ ........ ........ b.bbb... bbbww... b.b..... ..b..... ..b..... b 2324322513 ........ ........ ........ ..bbb... ..www... ........ ........ ........ e 23242555 ........ ........ ........ ..bbb... ..bbw... ..b..... ........ ........ e

12
计算n个Kaprekar数
甲卡布列克数为n位数字ķ的是,当第一Ñ或n-1个位k的^ 2被添加到第二Ñ的N ^ 2位数,则结果为N. 例子: 9^2 = 81. 8+1 = 9. 45^2 = 2025. 20+25 = 45. 297^2 = 88,209. 88+209 = 297 Kaprekar序列从1开始。 编写一个程序,计算并输出前n个 Kaprekar数,其中n在1到100的范围内,但不限于此。每个Kaprekar数必须用空格分隔,不能有其他空格。 您可以在此处找到更多的Kaprekar编号来检查您的程序,但是不得以任何方式使用此资源来帮助进行计算-换句话说,请勿进行硬编码,从此源读取或在任何其他漏洞利用程序中使用它方式-所有数字都必须由您的程序生成。 最短的代码获胜。
12 code-golf 

11
打印n个奇怪的数字
怪异数字是一个适当的因数之和大于其本身的数字,并且没有适当的因数的子集求和。 例子: 70是一个怪异的数字,因为它的适当除数(1、2、5、7、10、14和35)的总和为74(大于70),并且这些数字的组合之和不等于70。 18不是一个怪异的数字,因为它的适当除数(1、2、3、4、6、9)等于25,大于18,但3、6和9等于18。 您的任务是编写最短的程序,该程序可以通过std输入任意数字n并计算并打印到文件中,或使用换行符分隔出前n个怪异的数字。不允许对答案进行硬编码(很抱歉,一开始没有指定答案)。 有关更多示例,请参见以下页面:http : //mathworld.wolfram.com/WeirdNumber.html
12 code-golf 

10
字母数字字符的字符串,以逗号分隔范围的排序列表
给定一串未排序的字母数字字符,例如 ABC321STPpJqZZr0 输出一个“,”分隔的字符范围列表,按ASCII值排序,忽略大小写并删除重复项(即仅输出大写和数字字符),例如 0-3, A-C, J, P-T, Z 规则 程序的长度通常是您的基本分数。 您必须在程序中初始化(硬编码)上面的示例,但是您可以从程序长度中减去该示例的长度,例如,char* s="ABC321STPpJqZZr0";您可以折扣16个字符,其他11个字符计入您的程序长度。 红利(+50赏金) 由于这是我的同事今天遇到的一个实际问题,需要用Tcl 8.0.5(一个古老的版本,缺少许多最新的Tcl内置插件)编写,因此我将向写最短Tcl 8.0的任何人奖励50分.5解决方案,如果Tcl 8.0.5中至少有2个有效提交。
12 code-golf  string 

24
计算数字的立方根
编写此代码的目的是创建一个程序或函数,以计算和输出作为输入给出的数字的立方根。 规则: 没有外部资源 不使用内置的多维数据集根函数。 不使用可以将幂加幂的方法/运算符(包括平方根,4根等)。 您的功能/程序必须能够接受浮点数和负数作为输入。 如果多维数据集的根是浮点数,则将其四舍五入到小数点后的4个数字。 这是一个代码高尔夫,以字节为单位的最短代码获胜。 测试用例: 27 --> 3 64 --> 4 1 --> 1 18.609625 --> 2.65 3652264 --> 154 0.001 --> 0.1 7 --> 1.9129 您可以使用上述所有测试用例来测试负数(-27 --> -3,-64 --> -4...)
12 code-golf  math 

30
打印带有垂直单词的字符串
您的任务是获取一个由ascii字符组成的输入字符串,并将该字符串输出为一系列由空格分隔的垂直单词。一个例子如下所示: 给定字符串: Hello, World! My name is Foo. 输出应为: H W M n i F e o y a s o l r m o l l e . o d , ! 如果您的程序正确处理了需要环绕终端的字符串,则将获得10分的奖励积分,我们将其设置为80个字符。 如果您的程序也可以反向执行50分!

2
解释电路图
您面临的挑战是解释一个带有逻辑门的电路图。 逻辑门(完成此挑战您实际上不需要知道它们的作用/作用): 和门: a 或门: o 南德门 A 也门: O 异或门 x xnor门: X 不是门: ~ 每个闸门但最后一个闸门需要两个输入。输入来自.以门为中心的3 x 3正方形的左上角和左下角。否则,输入直接在其左侧。输出.直接到右侧。 电线用 -|\/.= - 接触两根电线,一根在右边,另一根在左边: c-c | 接触两根电线,一根在上面,另一根在下面: c | c /并且\工作如下: c c \ / c c . 接触周围的所有电线: ccc c.c ccc =很特别 它通过它连接相邻的导线: -=- 连接两根线。在下面的 \|/ -=- /|\ 相对的每根电线都相互连接,但彼此之间却不相连(这与有所不同.)。 为了使电流流过,两根导线必须都被连接到另外一个,所以在|-,电流也不会流动。 …

4
Manufactoria中的Mod 7
一个简单的制造挑战。计算输入模7。输入将采用大端二进制(蓝色= 1,红色= 0)。输出应采用相同的格式。 提供了测试用例。最小的零件数获胜。 http://pleasingfungus.com/Manufactoria/?ctm=Mod7;输入:_binary_number_big_endian._输出:_that_binary_number_mod_7; bbb:| brrr:b | brrrr:br | bb:bb | bbrrb:brr | brrrrb:brb | bbrb:bbr; 13; 3; 1 ; (如果输入mod 7为0,则不输出任何内容。)

5
实现shell脚本的子集
这个站点存在很多问题,涉及在解释器标签中实现各种语言。但是,实际上所有这些都是深奥的语言,没有人使用。是时候为这里的大多数用户所知道的实用语言做翻译了。是的,如果您在阅读标题时遇到问题(不是您遇到的问题),则它是shell脚本。(是的,我故意挑战了,因为我对GolfScript和Befunge之类的语言感到无聊,所以我提出了一些挑战,即更实用的编程语言有更大的获胜机会) 但是,shell脚本是一种比较大的语言,因此我不会要求您实现它。相反,我将制作一小部分的Shell脚本功能。 我决定的子集是以下子集: 执行程序(但是,即使允许使用单引号,程序也只能包含字母) 程序参数 单引号(接受任何可打印的ASCII字符,包括空格,不包括单引号) 无引号的字符串(允许ASCII字母,数字和破折号) 管子 空语句 多个语句用换行符分隔 尾随/前导/多个空格 在此任务中,您必须从STDIN读取输入,然后运行每个请求的命令。您可以放心地假定使用POSIX兼容的操作系统,因此不需要Windows或类似功能的可移植性。您可以放心地假设未通过管道传输到其他程序的程序不会从STDIN中读取。您可以放心地假设这些命令将存在。您可以放心地假设不会使用其他任何东西。如果某个安全的假设被打破,您可以采取任何措施。您可以放心地假设最多15个参数,以及少于512个字符的行(如果您需要显式的内存分配或其他内容-即使C很小,我也会给C赢得成功的机会很小)。您不必清理文件描述符。 您可以在任何时候执行程序-即使在收到完整的行之后,也可以在STDIN结束之后。选择您想要的任何方法。 简单的测试用例,可让您测试外壳(请注意第三个命令后的空白): echo hello world printf '%08X\n' 1234567890 'echo' 'Hello, world!' echo heeeeeeelllo | sed 's/\(.\)\1\+/\1/g' yes|head -3 echo '\\' echo 'foo bar baz' | sed 's/bar/BAR/' | sed 's/baz/zap/' 上面的程序应该输出以下结果: hello world 499602D2 Hello, world! helo y …

12
缩小数字字符串
鉴于串1和2任意长度的,写一些代码(并不一定是一个功能了,一切都会好起来)计算多少步它需要字符串收缩到最终形式,下面这个标准: 如果您的字符串是112112,这意味着您必须打印1,两个1和2,如下所示: 1112。当您再次执行该操作时,必须打印1和2。得到12。然后打印一张2,获得2。这是最终形式,因为此字符串不再更改。您的代码将输出3,因为您需要3个步骤才能到达最终表单。 其他规定 如果字符串长度不均匀,则最后一个数字保持不变。 每个不再更改的字符串(例如222222)都被视为最终形式。 您不能使用任何外部来源。 您的代码必须与每个字符串的工作1和2。 最短的代码获胜,因为它是代码高尔夫球。 您的代码应打印出每一步。 每种输入法都可以。 例子 Input >> 122122122121212212 Your code has to print: 211222111111222 11222111222 122111222 2111222 111222 1222 222 Steps:7 (you can omit the "Steps") ---- ---- ---- ---- Input >> 22222221 Your code has to print: 22222211 2222221 2 ---- ---- …
12 code-golf 

8
涂一根棍子需要多长时间?
(基于此Math.SE问题,该问题还提供了一些图形) 我有一根看起来像这样的棍子: 我希望它看起来像这样: 我不是专业画家,因此,在开始这个雄心勃勃的DIY项目之前,我想确保自己不会感到头疼。 您的程序应该告诉我,画这根棍子需要多少步骤。每个步骤都涉及用纯色绘制连续的区域,该区域覆盖先前的油漆层。对于上面的示例,我可以先将左半部分涂成蓝色,右半部分涂成红色,然后将两个单独的绿色区域分别涂成4步(绿色不连续涂成)。 这是ASCII: ------ bbb--- bbbrrr bgbrrr bgbrgr 有两种不同的方法可以绘制这根棍子并最终得到相同的结果。但是,我只对时间估计感兴趣,这是四个步骤。 目标 您的程序应输出以给定的配色方案涂满棍子所需的最少步骤数。绘制方案将采用字符串形式,而输出将为数字。这是代码高尔夫。最短的程序获胜。 输入值 您的程序将以一串字母的形式接收一根棒的着色方案。每个唯一字母(区分大小写)代表唯一的颜色。 YRYGR grG GyRyGyG pbgbrgrp hyghgy 输出量 这些数字是油漆棒所需的最少步骤数。 4 3 4 5 4 说明 这就是我得出上述数字的方式。您的程序不需要输出以下内容: ----- YYY-- YRY-- YRYG- YRYGR --- g-- gr- grG ------- GGGGGGG GyyyGGG GyRyGGG GyRyGyG -------- pppppppp pbbbpppp pbbbrrrp pbgbrrrp pbgbrgrp …
12 code-golf  math 

21
按频率降序对列表的不同元素进行排序
编写一个函数,该函数接受一个列表或数组,并返回一个不同元素的列表,这些元素按频率降序排列。 例: 鉴于: ["John","Doe","Dick","Harry","Harry","Doe","Doe","Harry","Doe","John"] 预期返回值: ["Doe","Harry","John","Dick"]
12 code-golf 

1
日出和日落
我有点浪漫,我喜欢带我的妻子出去看看我们所在地的日出和日落。出于这个练习的原因,假设我没有代码可以告诉我恰好处于的日期,纬度和经度的日落或日出时间。 编码员的任务是生成最小的代码,该代码可能采用的是十进制的纬度和经度(以N和W为度,所以S和E为负数)和采用YYYY-MM-DD格式的日期(从2000年1月1日开始),它将以24小时格式吐出两次,用于日出和日落。 例如今天在澳大利亚悉尼 riseset -33.87 -151.2 2013-12-27 05:45 20:09 奖励:-100如果可以考虑高程-100如果可以考虑日光节约 代码必须根据客户机器自身时区中的纬度或经度或在输入中指定的相关时区中吐出时间。
12 code-golf  math 

5
Hardy–Ramanujan数泛化
1729,称为Hardy–Ramanujan数,是可以用两种方式表示为两个正整数立方体的和的最小正整数12^3+1^3=10^3+9^3=1729。给定一个整数n(以您选择的语言所自然使用的任何形式作为输入),找到最小的正整数,可以将其表示为n以两种独特方式升为幂的两个正整数之和。不使用外部资源。最少的角色获胜。 注意,这实际上是一个未解决的问题了n>4。对于这些数字,让您的程序在搜索中永远运行,否则就死不了!使其具有足够的时间和资源,以便程序可以解决该问题。

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.