编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

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

2
具有自由n-多胺基的n X n正方形的不同平铺数目
几分钟前刚刚发布了最新的“不错的” OEIS序列A328020。 带有自由n-多胺基的n X n正方形的不同平铺数目。 此序列将平铺计数到正方形的对称性。该序列有六个术语,但是我想看看这里的人是否可以进一步扩展它。 例 因为n=4有22个这样的网格,如OEIS的此图所示。 图片来源:Jeff Bowermaster,A328020(4)插图。 挑战 像之前的挑战一样,此挑战的目标是按此顺序计算尽可能多的项,该项开始1, 1, 2, 22, 515, 56734于第n个项,即具有n个多氨基酸的n X n网格的平铺数。 只要您愿意,就可以运行您的代码。挑战的胜者将是发布序列中最多术语的用户,以及生成该序列的代码的用户。如果两个用户发布相同数量的条款,则以最早发布最后一个条款的人为准。

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)不允许函数接受值并返回结果;用户必须与该程序进行交互。 祝好运!

3
从三角形阵列中删除点而不会丢失三角形
我想提出OEIS方面的组合问题 -问题是我没有足够的用语。此代码挑战是帮助我计算更多的术语,而提交者中包含最多术语的用户将是赢家。 问题 假设我给你一个三角形的灯泡,边长为nnn: o o o o o o o o o o o o o o o o o o o o o 1 2 ... n 我将打开三个灯泡,这些灯泡形成一个“直立”等边三角形,如以下示例所示: o o x o o o o o o o o x o o x o o o o o …

3
编写一个程序,当它向ASCII字母上移N次后,总是打印N
仅使用无需输入的可打印ASCII字符编写程序。作为参考,这是按顺序排列的95个可打印ASCII字符: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 当您的程序运行时,它应该打印0(加上可选的尾随换行符)到stdout,然后正常终止。 当你的程序中的每个字符由字符N空间所取代其在打印的ASCII权,从各地循环~空间,所产生的打印的ASCII字符串将理想是,它没有输入和输出n相同的语言编写的程序可运行(加(可选的尾随换行符)到stdout,然后正常终止,对于N = 1到94。 例如,如果您的原始程序是 @Cat~(88 !) 运行它应该输出0并将所有字符按可打印的ASCII比例上移一位 ADbu )99!"* 应该导致另一个程序输出1。再次执行此操作将理想地导致另一个程序输出2 BEcv!*::"#+ 以此类推,直到3和4等,直到移动94次 ?B`s}'77~ ( 理想情况下是输出的程序94。 令人欣慰的是,这只是理想的行为。您的程序及其94个派生程序并不需要全部工作,但是从一开始就连续执行越多越好。(不起作用的程序可能有任何行为。) 计分 您的分数是指从有效的原始程序(输出的程序)开始的连续程序的数量0,即正确输出其相应的N。得分最高(最多95)的答案将获胜。如果有平局,则以字节为单位的最短程序获胜。 例如,如果@Cat~(88 !)输出0和ADbu )99!"*输出1,但BEcv!*::"#+误码,那么你的得分将是2。这是2,即使?B`s}'77~ (准确地输出94,并且即使所有N =方案30至40的工作。仅计算从零开始的连续工作程序数。 笔记 为了避免潜在的争用和漏洞,竞争性答案必须以十进制形式输出其数字,且没有前导零或符号或小数点(即普通0 1 2... 94)。 允许使用使用不同基数或数字格式的语言,但不具备获胜的资格。 可选的尾随换行符的存在不必在各个程序之间保持一致。 不允许使用功能和REPL命令,只能使用完整程序。

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.