Questions tagged «code-golf»

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

6
球将降落在哪里?
给定一个字符串,其中第一行包含空格和一个句点(.,即“球”),然后是包含空格,正斜杠(/)和反斜杠(\)的行,请确定从起始位置掉落后球将落入的列。每个/将其向左移动一列,然后\将其向右移动一列。 样品输入 . / \ \ / / \ \/ \ \ /\ \ /\ \ \ / 样品输出 球从第5列开始,击中第/3行,然后在\第5到7 行中击中三个,最终位置为: 7 请注意,列是1索引的,主要是为了与文本编辑器约定保持一致。 边缘情况 如果球/在第一列中击中a ,则它永远卡在不存在的列0中。您的程序应通过打印正确处理此问题0。 如果球撞到\/图案的任一侧,则结果不确定。您的程序被允许以无输出终止,无限循环或打印错误消息(我的解决方案显示-1),但不得打印任何被视为有效输出的内容。 如果球以一定的\\方式击中左斜线,则应该直接在右斜线下方而不是右斜线结束。我最初设想的解决方案很容易出错,所以不要走这条路! 有可能会或可能不会是以后的空间.或最后/或\每行。您的程序不应依赖此类可用的填充。类似地,第一行之后可能有也可能没有任何行。 您可以假设第一行将有零个或多个空格,而正好为一个.。随后的行(如果有)将具有零个或多个空格和零个或多个斜杠。 实施细节 您的程序可以在方便时从文件(指定为命令行参数)中读取或从标准输入中读取。 您的程序必须将单个数字输出到标准输出。(是的,可以使用尾随的换行符。是的,该数字可能超过一位。) 测试用例 输入: . 输出: 1 注意这里的输入正好是一个字节。这是您应该能够处理的最小情况。 输入: . \ \ \ \ 输出: 6 请注意,这些斜杠后没有空格。 输入: . …

2
压缩布尔公式
句法 ~不 /\和 \/或 t真 f假 P,Q,FISH,等:变量 (运算符按优先顺序给出) 介绍 可以将某些布尔公式更改为不同的形式以使其更短。例如,公式 ~(~P /\ ~Q) 可以更改为较短的形式 P\/Q 而公式 P \/ ~P 可以更改为较短的形式 t 挑战 在这一挑战,则需要编写一个程序,给定仅使用任何布尔式/\,\/,~,t,f,括号,布尔变量(大写)和空白,输出一个最短的形式(由于可能存在多于一个的最短形式),该表达式的字符对于所有变量分配都是等效的。最短的代码(使用任何语言)均获胜。I / O可以任何合理的方式完成。 另外,由于很难验证答案,因此包括(但不是必需的)简短说明代码的工作原理将很有帮助。

2
老虎机黑客
问题:来自Facebook Hacker Cup 2011 Round 1B的老虎机黑客 目标:使用stdin / stdout用您喜欢的语言编写的最短代码。你不能假设getRandomNumber已定义,即您的解决方案必须包含潜在的高尔夫球版本,以作为功能或其他方式。 参考解决方案:关于SO [我选择我的,因为它使用stdin / stdout,但我不确定dave的解决方案。] 问题文本如下: 您最近与一个为老虎机编写软件的人成为了朋友。与他闲逛了一会之后,您会发现他很喜欢炫耀自己对老虎机工作原理的了解。最终,您让他为您详细描述了特定品牌机器上使用的算法。算法如下: int getRandomNumber() { secret = (secret * 5402147 + 54321) % 10000001; return secret % 1000; } 此函数返回[0,999]中的整数;每个数字代表在特定机器状态下出现在车轮上的十个符号之一。最初将secret设置为您不知道的一些非负值。 通过长时间观察机器的运行,您可以确定机密值,从而预测未来的结果。了解未来的结果,您将能够以明智的方式下注并赢得很多钱。 输入值 输入的第一行包含正数T,即测试用例的数量。接下来是T测试用例。每个测试用例均包含一个正整数N,即您进行观察的次数。接下来的N个标记是0到999之间的整数,用于描述您的观察结果。 输出量 对于每个测试用例,输出将由机器显示的接下来的10个值,用空格隔开。如果您观察到的顺序不能由您的朋友向您介绍的机器产生,请打印"Wrong machine"。如果您不能唯一确定接下来的10个值,请打印"Not enough observations"。 约束条件 T = 20 1≤N≤100 输入中的令牌长度不超过3个字符,并且仅包含数字0-9。 输入示例 5 1 …
17 code-golf 

13
计算一块岩石从山上滚下来
介绍 西西弗斯(Sisyphus)最近在工作中遇到了一些麻烦。看来他只是什么都做不完,他很想找到解决这个问题的办法。 他目前的工作需要在山上滚石。他通常会做好工作,但是每次他靠近山顶时,都会再次滚落。 他的工作真的很沮丧,他想通过计算机模拟岩石滚下山坡来科学地解决问题。 碰巧西西弗斯不是特别擅长编程,所以也许您可以帮助他? 挑战 经过这个愚蠢的介绍之后,我们开始做生意。您的程序将收到一个山丘和岩石的插图,其外观类似于此: #o ## ### ###### ######## 其中#代表山的一部分,o代表岩石。 现在,您必须实现一个程序,将岩石向下移动1层。例如,上面的输出应为: # ##o ### ###### ######## 如果有一个水平的区域,那么小山就只是水平滚动,所以... o ######## ...这只会使石头向侧面滚动。 o ######## 如果有垂直区域,岩石会掉下一步,所以... #o # # ##### ...会产量... # #o # ##### 您还将在图像上方的一行中分别接收图像的宽度和高度。因此,总的来说,我们的示例输入如下所示: 10 5 #o ## ### ###### ######### (请注意,这里的空格是空格。选择文本并查看我的意思。) 一些细节 当运行程序时岩石已经在最后一行时,您可以选择终止程序或输出未更改的输入 这座山只有下山了 您的程序应将输出的格式设置为与输入(包括尺寸)完全相同的格式,因此,如果将程序的输出通过管道传递给自身,则它将计算下一步。 您可以假设总有一条通向底部的道路,因此路径被“阻塞”的输入可能会导致未定义的行为 您可以假设最后一行始终有一个空格。岩石应该“停在”那里,因此,在几次调用该程序之后,始终将其输出通过管道传递到自身中,您应该最后将岩石放在最后一行,放置以前的空间。 …
17 code-golf 

1
强大的连接
介绍 像这样的一块大方形木板定义了一个种植园: 每个小方块内的数字代表其面积的价值/现金/ ... 农民需要帮助才能找到相连的N个正方形(这意味着所有N个正方形都应至少有一个共享边界)为他带来最大的价值。 例如: 如果为N=1,则输出必须为140。 如果是N=6,那么.. ..the输出必须315。 挑战 您的程序/函数必须将矩阵的值和数字N作为输入/参数,并且必须输出强大的连接的值。 由于这是代码高尔夫,因此以字节为单位的最短答案为胜! 例子 输入: 10 -7 11 7 3 31 33 31 2 5 121 15 22 -8 12 10 -19 43 12 -4 54 77 -7 -21 2 8 6 -70 109 1 140 3 -98 6 13 20 …
17 code-golf  grid 

19
近似点数
该赏金过期5天。这个问题的答案有资格获得+100声望奖励。 Adám希望奖励现有答案: 这个解释清楚的答案是APL中的第一个答案,因此有资格获得此赏金。 的蒂数是余弦函数的固定点,或溶液等式COS(X)= X。1个 您的任务是制作近似于该常数的代码。您的代码应代表一个接受整数作为输入并输出实数的函数。随着输入的增加,功能的极限应为Dottie数。 您可以输出数字的分数,小数或代数形式。您的输出应该能够任意精确,浮点和双精度不足以应对这一挑战。如果您的语言不支持任意精度数字,则必须实现它们或选择一种新的语言。 这是一个代码问题,因此答案将以字节计分,而字节越少越好。 提示 一种计算常数的方法是取任意数字并对其重复应用余弦。随着应用次数趋于无穷大,结果趋向于余弦的固定点。 这是一个相当准确的数字近似值。 0.739085133215161 1:在这里我们将以弧度表示余弦

30
交换“好”和“坏”
挑战说明: 编写一个要求用户输入的程序。用户将输入Good或Bad。您不必支持任何其他输入。如果用户输入Good,则打印Bad,反之亦然(到标准输出等)。 笔记: 1)您不能使用其他两个单词对。 2)您的程序只需要询问并打印一次。 3)您不需要显示提示字符串。 4)无论如何,输出必须看起来与输入分开。 5)不允许函数接受值并返回结果;用户必须与该程序进行交互。 祝好运!

14
输出格雷厄姆数
编写一个程序,从维基百科输出表示格雷厄姆数字的所有64层: 您的输出必须与此ASCII版本完全匹配(其中^表示Knuth的向上箭头,斜杠和下划线的组合表示大的水平花括号): 3^^...............................................................................................................................^3 \_______________________________________________________________ _______________________________________________________________/ \/ 3^^.............................................................................................................................^3 \______________________________________________________________ ______________________________________________________________/ \/ 3^^...........................................................................................................................^3 \_____________________________________________________________ _____________________________________________________________/ \/ 3^^.........................................................................................................................^3 \____________________________________________________________ ____________________________________________________________/ \/ 3^^.......................................................................................................................^3 \___________________________________________________________ ___________________________________________________________/ \/ 3^^.....................................................................................................................^3 \__________________________________________________________ __________________________________________________________/ \/ 3^^...................................................................................................................^3 \_________________________________________________________ _________________________________________________________/ \/ 3^^.................................................................................................................^3 \________________________________________________________ ________________________________________________________/ \/ 3^^...............................................................................................................^3 \_______________________________________________________ _______________________________________________________/ \/ 3^^.............................................................................................................^3 \______________________________________________________ ______________________________________________________/ \/ 3^^...........................................................................................................^3 \_____________________________________________________ _____________________________________________________/ \/ 3^^.........................................................................................................^3 \____________________________________________________ ____________________________________________________/ \/ …

6
从板块到州
从本质上讲,这与生成美国车牌相反 挑战:给定与以下车牌格式之一匹配的字符串,请输出与该格式匹配的所有可能状态。在下表中,0代表一个数字0到一个9包含在内的数字,A代表一个字母A到一个Z包含在内的数字。出于此挑战的目的,我们将忽略具有复杂格式规则的州(例如,特拉华州的数字位数可变),并忽略删除相似字母(例如I和1)。 AAA 000: AK, IA, MS, MP, VT 0000: AS AAA0000: AZ, GA, WA 000 AAA: AR, KS, KY, LA, ND, OR 0AAA000: CA AA-00000: CT AA-0000: DC AAA A00: FL AA 00000: IL 000A,000AA,000AAA,AAA000: IN 0AA0000: MD AAA 0000,0AA A00,AAA 000: MI 000-AAA: MN 00A-000: NV 000 0000: …

4
花式字符串替换
让S,a并b各自代表一个字符串 目标:写在你更换所有出现一个标准的字符串替换功能a的字符串S与b,只要a是没有的一个实例的一部分b 例如,如果我们有字符串S=My oh my that there is a big ol' that 我们想做一个花哨取代a = that和b = that there我们将取代每个实例that有that there,只要实例that是不是已经实例that there 因此,在这种情况下,输出为: My oh my that there is a big ol' that there that不替换第一个,因为它已经是实例的一部分。that there 笔记 所有3个输入必须是仅包含可打印ASCII字符的字符串 输入可以给出3个单独的字符串或3个字符串的列表 输入将在订货S,a,b除非在回答另有规定 为了a被视为的一部分b,的所有实例都a必须是实例的一部分b 一些极端案例的解释 Input: ["1222", "22", "122"] Output: "12122" 在上述示例中,后者22被替换了。即使它的一部分是的一个实例的一部分,它b的整体也不是的一个实例的一部分b。由于的整个实例a不是其实例的一部分,b因此将替换它。 Input: ["123 ", …
16 code-golf  string 

11
生成Steenrod代数的基础元素
Steenrod代数是在代数拓扑中出现的重要代数。Steenrod代数由称为“ Steenrod平方”的算子生成,每个正整数i存在一个。Steenrod代数在平方运算中有一个由“可允许的单项式”组成的基础。建立这个基础是我们的目标。 正整数的序列被称为受理如果每个整数是至少下一个的两倍。因此,例如[7,2,1]是受理,因为7 ≥ 2 * 27≥2∗27 \geq 2*2和2 ≥ 2 * 12≥2∗1个2 \geq 2*1。另一方面,[3,2]由于3 &lt; 2 * 23&lt;2∗23 < 2*2,因此是不可接受的。(在拓扑中,我们将为序列写小号q7小号q2小号q1个小号q7小号q2小号q1个\mathrm{Sq}^7 \mathrm{Sq}^2\mathrm{Sq}^1[7,2,1])。 序列的程度是其条目的总数。因此,例如,度数[7,2,1]为7+2+1=107+2+1=107 + 2 + 1 = 10。所述过量的容许序列的是第一个元素减去总的剩余元素,所以[7,2,1]有过量的7−2−1=47−2−1=47 - 2 - 1 = 4。 任务 编写一个程序,该程序接受一对正整数,(d,e)并输出所有d小于或等于的度和超出的所有允许序列的集合e。输出是一个集合,因此允许序列的顺序无关紧要。 例子: Input: 3,1 Output: [[2,1]] 在这里,我们正在寻找总数为3的可允许序列。有两个选项,[3]和[2,1]。([1,1,1]且[1,2]总和为3,但不可接受)。过量的[3]是3和过量的[2,1]是2−1=12−1=12-1 = 1。因此,用过量的唯一序列≤1≤1\leq1是[2,1]。 Input: 6, 6 Output: [[6], …

13
我的代表是否使用Stack-Exchange表单?
前提: 如果可以通过将您的奖牌数(金,银,铜牌分别计数)分解为以10为底的数字,并以任意给定的顺序加入它们,并加一些警告,则表示您的声望采用堆栈交换形式。 分解时,每个 金牌数字代表三位数。 银牌价值两位数。 青铜是一位数字。 此外,如果您没有SE,则SE不会显示奖牌类型,因此类型的0个奖牌计数不会产生[0]。 例: [1 Gold, 2 Silvers, 3 Bronzes]将分解为[1,1,1,2,2,3]。321112和213121是这些奖牌的SE形式编号的两个示例。 [20 Golds, 0 Silvers, 20 Bronzes]将分解为[2,2,2,0,0,0,2,0]。20002022是SE格式的编号。 [11 Golds, 0 Silvers, 0 Bronzes]将分解为[1,1,1,1,1,1]。111111是唯一的SE形式编号。 考虑SE号时,不会有前导0。例如,在上述第二个示例中,00002222 -&gt; 2222不会将视为SE格式的编号[20,0,20]。 输入输出: 输入是一个列表/元组/数组/ [reputation, gold_medals, silver_medals, bronze_medals]所有都是非负整数。这是假定的顺序,但可以更改。如果您做的话,只需在答案中做个注释即可。 输出是true和false的任何两个一致值。 规则: 输入将始终有效 您将始终至少有1个代表 您根本没有奖牌,那么那应该总是返回false。 奖牌数与现实无关。有几百个金牌,没有青铜器是很好的。 这是代码高尔夫球,因此最短答案以字节为单位。 测试用例: #[Rep, Gold, Silver, Bronze] -&gt; Output [4, …

6
新订单3:5 8 6
简介(可以忽略) 将所有正数按其常规顺序(1、2、3,...)有点无聊,不是吗?因此,这是围绕所有正数的排列(重新排列)的一系列挑战。这是本系列的第三个挑战(链接到第一个和第二个挑战)。 在此挑战中,我们将自然数排列在增加长度的行中,以使每一行的总和为质数。我对此感到非常惊奇的是,每个自然数在这种排列方式中都有位置。没有数字被跳过! 这种安排的可视化如下所示: row numbers sum 1 1 1 2 2 3 5 3 4 5 8 17 4 6 7 9 15 37 5 10 11 12 13 21 67 6 14 16 17 18 19 23 107 etc. 我们可以从该三角形的行中读取元素。前20个元素是:1,2,3,4,5,8,6,7,9,15,10,11,12,13,21,14,16,17,18,19(是的,有隐藏在此序列中的新歌)。 由于这是“纯序列”质询,因此任务是针对给定的n输出一个(n )一种(ñ)a(n)作为输入,其中a (n )为A162371。ññn一个(n )一种(ñ)a(n) 任务 给定整数输入ññn,以整数格式输出一种(n )一种(ñ)a(n)。 …

5
新订单5:斐波那契和比蒂在Wythoff会合的地方
简介(可以忽略) 将所有正数按其常规顺序(1、2、3,...)有点无聊,不是吗?因此,这是围绕所有正数的排列(重新排列)的一系列挑战。这是本系列的第五个挑战(链接到第一,第二,第三和第四挑战)。 在这个挑战中,我们将遇到Wythoff数组,这是斐波那契序列和Beatty序列相互交织的雪崩! 在斐波那契数都可能是你最众所周知的序列。给定两个起始数字和,则以下给出:对于。F0F0F_0F1F1F_1FnFnF_nFn=F(n−1)+F(n−2)Fn=F(n−1)+F(n−2)F_n = F_{(n-1)} + F_{(n-2)}n&gt;2n&gt;2n>2 给定参数的Beatty序列为:对于。Beatty序列的特性之一是,对于每个参数,都只有一个参数,因此这些参数的Beatty序列是离散的并连接在一起,它们跨越所有自然数,但不包括0(例如:)。rrrBrn=⌊rn⌋Bnr=⌊rn⌋B^r_n = \lfloor rn \rfloorñ≥1n≥1个n \ge 1r[Rrs = r /(r − 1)s=r/([R-1个)s=r/(r-1)乙[R∪ 乙r /(r − 1 )= N ∖{0}Br∪乙[R/([R-1个)=ñ∖{0}B^r \cup B^{r/(r-1)} = \Bbb{N} \setminus \{0\} 现在是令人兴奋的部分:您可以创建一个数组,其中每行是斐波那契数列,每列是Beatty 数列。该数组是Wythoff数组。最好的部分是:每个正数在此数组中仅出现一次!该数组如下所示: 1 2 3 5 8 13 21 34 55 89 144 ... 4 7 11 …

3
制作更长的语言节目
Lenguage是一种令人难以置信的方言,以打破源限制挑战而臭名昭著。这是因为Lenguage只关心源的长度,而不关心内容的长度。 首先,计算程序的长度。然后,将所述长度转换为二进制,并用零左填充为3的倍数。所得的二进制字符串被拆分为3位的块,每个块都被转换为Brainfuck命令,如下所示: 000 -&gt; + 001 -&gt; - 010 -&gt; &gt; 011 -&gt; &lt; 100 -&gt; . 101 -&gt; , 110 -&gt; [ 111 -&gt; ] 最终,该程序作为Brainfuck 1运行。 从这里开始,挑战非常简单,编写一个不带任何输入并产生一个输出的字节程序,该输出由一个字节重复ññn次组成,其中ññn严格大于程序的长度。 答案将以字节计分,而字节数越少越好。 这是一个可以通过脑操计算语言的hacky程序 1:对于此挑战,我们将使用包裹单元和非包裹胶带。

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.