编程拼图和代码高尔夫

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

30
电路中的并联电阻
介绍: 两个电阻器,R1并且R2,在平行(表示R1 || R2)具有组合的电阻Rp给定为: RP2=R1⋅R2R1+R2RP2=R1⋅R2R1+R2R_{P_2} = \frac{R_1\cdot R_2}{R_1+R_2} 或在注释中建议: RP2=11R1+1R2RP2=11R1+1R2R_{P_2} = \frac{1}{\frac{1}{R_1} + \frac{1}{R_2}} 三个电阻器,R1,R2和R3在平行于(R1 || R2 || R3)具有组合的电阻(R1 || R2) || R3 = Rp || R3: RP3=R1⋅R2R1+R2⋅R3R1⋅R2R1+R2+R3RP3=R1⋅R2R1+R2⋅R3R1⋅R2R1+R2+R3R_{P_3} = \frac{\frac{R_1\cdot R_2}{R_1+R_2}\cdot R_3}{\frac{R_1\cdot R_2}{R_1+R_2}+R_3} 或者,再次如注释中所建议: RP3=11R1+1R2+1R3RP3=11R1+1R2+1R3R_{P_3} = \frac{1}{\frac{1}{R_1} + \frac{1}{R_2}+ \frac{1}{R_3}} 这些公式当然可以扩展到无限数量的电阻器。 挑战: 以正电阻值列表作为输入,如果将它们并联放置在电路中,则输出组合电阻。您可能没有假定电阻的最大数量(当然,您的计算机可以处理的除外)。 测试用例: 1, 1 0.5 1, 1, 1 …

9
翘曲的棋盘
挑战在于如何构建棋盘,在棋盘中,正方形大小而不是整个正方形都遵循一定的非递减顺序,如下所述。 董事会是迭代定义的。的尺寸的板放大到大小通过尺寸的平方的“层”通过延伸下来,并在正确的,其中是最大的除数不超过。对角线上的正方形总是相同的颜色。n×nn×nn \times n(n+k)×(n+k)(n+k)×(n+k)(n+k)\times(n+k)kkkkkknnnn−−√n\sqrt{n} 具体来说,考虑使用以#和表示的颜色的木板+。 初始化棋盘到 # 到目前为止,该板的大小为。唯一的除数为,并且不超过。因此,我们采取,并通过添加尺寸的平方的层延伸的板,具有在对角:1×11×11\times 11111111–√1个\sqrt{1}k=1k=1k=1111# #+ +# 到目前为止构建的板的大小为。的除数是,最大除数不超过是。所以再次,板子扩展到2×22×22 \times 22221,21,21,22–√2\sqrt{2}111k=1k=1k=1 #+# +#+ #+# 大小是。。延伸到3×33×33 \times 3k=1k=1k=1 #+#+ +#+# #+#+ +#+# 大小为 x。现在,因为是的最大除数,不超过。扩展一个厚度为的层,该层由大小为 ×的正方形形成,对角线颜色:4×44×44 \times 4k=2k=2k=22224444–√4\sqrt 42222×22×22\times 2# #+#+## +#+### #+#+++ +#+#++ ##++## ##++## 大小为。现在。扩展到大小。现在。扩展到大小。现在。扩展到大小。现在。扩展到:6×66×66 \times 6k=2k=2k=28×88×88 \times 8k=2k=2k=210×1010×1010 \times 10k=2k=2k=212×1212×1212 \times 12k=3k=3k=3151515 #+#+##++##++### +#+###++##++### #+#+++##++##### +#+#++##++##+++ …

30
计算数组的重复次数
您将收到一个数组,并且必须返回多次出现的整数数。 [234, 2, 12, 234, 5, 10, 1000, 2, 99, 234] 这将返回2,因为每个234和2出现不止一次。 [234, 2, 12, 234] [2, 12, 234, 5, 10, 1000, 2] 该列表的长度永远不会超过100k,并且列表内的整数始终在-100k和100k之间。 如果整数出现多次,则应将其计数,因此,如果整数出现3次,则它仍将仅计为一个重复的整数。 测试用例 [1, 10, 16, 4, 8, 10, 9, 19, 2, 15, 18, 19, 10, 9, 17, 15, 19, 5, 13, 20] = 4 [11, 8, …

22
他们叫我莫尔斯探长
您的任务(如果您选择接受它)是确定给定的输入字符串是点重还是Dash重。 当字符串的摩尔斯表示形式包含的点多于破折号时,则表示该点很重。例如,字母E是单个点,这意味着它是点重的。 输入值 输入字符串仅包含[a-z]或范围内的字符[A-Z]。您可以决定它们应该全部为大写还是全部为小写。AAA很好,aaa很好,aAa不是。 输入字符串的长度始终至少为1个字符。 您可能会假设输入字符串永远不会有相同数量的点和破折号。 输出量 对于包含更多点字符的输入,您应该返回Truthy。 对于包含更多破折号的输入,应返回Falsy。 编辑:我也将允许点的正值和破折号的负值。 测试用例 | input | morse representation | result | |------------------------------------------------| | S | ... | Truthy | | k | -.- | Falsy | | HELLO | .... . .-.. .-.. --- | Truthy | | code | -.-. --- …
20 code-golf  morse 

20
最小的多样化指数
甲pandigital数是包含从0每个数字至9至少一次的整数。1234567890、1902837465000000和9023289761326634265都是pandigital。出于此挑战的目的,诸如123456789之类的数字不是pandigital,因为它们不包含0,即使123456789 = 0123456789。 一个多样化的整数对是一对整数(a,b)(a,b)(a, b),因此ababa^b是泛指的。bbb被称为多样化指数。 挑战:给定整数aaa,找到最小的对应分散指数bbb。这是一个代码高尔夫球,因此以字节为单位的最短程序获胜。 (您可以假设存在这样的指数,也就是说,不会为您的程序提供无效的输入,例如10的幂。) 您的解决方案必须至少能够处理给定的测试用例,但理论上应该能够处理所有有效的输入。 这是OEIS上的A090493。 测试用例 2 -> 68 3 -> 39 4 -> 34 5 -> 19 6 -> 20 7 -> 18 8 -> 28 9 -> 24 11 -> 23 12 -> 22 13 -> 22 14 -> 21 15 -> 12 16 …
20 code-golf  math 

27
Couch 2048:到2048年还有多少钱?
我刚刚尝试了一款名为Couch 2048的游戏。 (注意:您应该看一下以更好地理解这个问题。) 由于这对我来说并不十分令人兴奋,所以我一直在问自己“直到2048还要多少钱!?” 这激发了我提出一个挑战,因为计算挑战并不像我想的那么容易。 您的目标: 给定沙发上的球列表,您必须输出必须从天上掉下来的数值为2的球,这样一个人才能赢得比赛(达到2048球)。 假设输入有效。 假设玩家不会丢任何球。 如我所说,假定从天上掉下来的球的值始终为2。 有效的输出示例:3,“ 4”,[5],[“ 6”] 编辑: 我应该澄清一些事情: -您必须打印最少的2s。 测试案例: [2048] -> 0您已经赢了 [1024,1024] -> 0您不需要再赢得更多球 [1024,512,256,128,64,32,16,8,4,2] -> 1了“激活链”所需的一个球 [512] -> 768 [512,2] -> 767 [4,16,64] -> 982 注意: 我不是母语人士-告诉我您是否发现错字或一些非语法文字。 如果不清楚,请在评论中提问。
20 code-golf 

30
给定输入,输出所有基数和幂加到该输入的所有指数
因此,这是我在此站点上遇到的第一个挑战。 面临的挑战是接受一个将为正的输入整数,并以升序(从到,包括n)打印的输出(其中是当前整数)。 nnn111nnni(n−i)i(n−i)i^{(n-i)}iii 例 给定输入5,程序将打印: 1 8 9 4 1 14141^4是1且是8且是9且是4且是1且1+4=51+4=51+4=5 23232^32+3=52+3=52+3=5 32323^23+2=53+2=53+2=5 41414^14+1=54+1=54+1=5 50505^05+0=55+0=55+0=5 输入输出 输入将采用正整数形式。输出将是一个数字列表,以逗号或换行符分隔。 这是代码高尔夫球,因此最短的代码获胜。

4
在罗马时,算不算罗马人?
背景 该挑战的灵感源于该网站,该网站发布了下图: 该图向我们展示了250以下的最长罗马数字表达式是188,需要9个数字来表示。 挑战 用于表达最罗马数字的标准符号如下:{ I,V,X,L,C,D,M},其中人物的数值是M= 1000,D= 500,C= 100,L= 50,X= 10,V= 5,I= 1。 在此挑战中,您的目标是给定正整数n,计算可通过串联n个标准符号组成的有效罗马数字表示形式的数量。 然后,您的程序必须输出该计算的结果! 输入:正整数n。 输出:长度为n的有效罗马数字表达式的数量。 罗马数字表达规则 罗马数字最初只具有“加法”配对,这意味着数字始终按降序书写,并且所有数字的值之和就是数字的值。 后来,减法配对(为了减少大数字中的较小数字而使用)将较小的数字放置在较大的数字前面,从而缩短了罗马数字表达。减法对不能链接,如以下无效表达式中所示:IXL。 以下是加减配对的现代规则。 在减法对中,只有I,X和C可以用作前导数字。 我只能在减法对中放在V或X之前。 X只能在减法对中放在L或C之前。 在减法对中,C只能放在D或M之前。 除减法对之外,数字必须按降序排列(这意味着如果您删除每个减法对的前导数字,则数字将按降序排列)。 较小的面额不能等于或超过M,C和X。 D,L和V只能出现一次。 仅M可以重复4次或更多次。 进一步说明 我们将不会使用条形符号;相反,我们将简单地添加更多M来表示任何数字。 这些是我们罗马数字遵循的唯一规则。这意味着诸如的奇数表达式IVI在我们的系统中也将被视为有效。 还要记住,我们不计算长度为n的表达式的数目,因为有些数字具有多个表达式。相反,我们只计算有效表达式的数量。 测试用例 1 → 7 2 → 31 3 → 105 我手动检查了以上内容,因此请确保仔细检查测试用例,并尽可能添加更多内容! 获奖标准 这是一个高尔夫挑战赛,请尽情享受!我将只接受至少可处理1到9输入的解决方案。再多就是奖励! 编辑 根据评论者的要求,在下面或在此pastebin链接中,我算出n = 3 …

11
N×N板上的骑士图
在国际象棋中,骑士只能相对于其当前位置(♞标记)移动到标记为X的位置: 一个骑士的图形是表示在棋盘的骑士棋子的所有法律动作的图表。此图的每个顶点代表棋盘的一个正方形,每个边都连接两个正方形,这两个正方形彼此分开。 对于标准的8 x 8板,该图看起来像这样。 挑战: 给定整数N,其中3≤N≤8,输出代表一个板的N × N矩阵,其中显示了每个位置的可能移动数。对于N = 8,输出将是一个矩阵,该矩阵显示上图中每个顶点的值。 输出格式灵活。列表列表甚至是扁平列表等都是可接受的格式。 完整的测试用例集: --- N = 3 --- 2 2 2 2 0 2 2 2 2 --- N = 4 --- 2 3 3 2 3 4 4 3 3 4 4 3 2 3 3 2 --- N …

15
一线键盘
挑战 这项挑战的目标是确定是否只能使用标准UK QWERTY键盘的一行来键入给定的String。 这是code golf,所以最短的解决方案以字节为单位获胜! IO 输入将是零个或多个字符的单个字符串,且在ASCII十进制范围(包括32-126)中。您可能会为这个挑战假设一个空的String不需要键入,因此可以使用一行来键入。 您可以将输入作为字符串,字符列表或您语言的等效形式。 对于可以使用单行键入的任何字符串,输出应为真值,否则为false。 键盘布局 为了澄清以下标准键盘布局的任何歧义,每一行上都有可用的键列表,包括备用的上键(使用shift访问)。 1号线 标准: `1234567890-= 2号线 标准: qwertyuiop[] 3号线 标准: asdfghjkl;'# 大写: ASDFGHJKL 特别:大写锁定 4号线 标准: \zxcvbnm,./ 备用: |<>? 大写: ZXCVBNM 特别:班次 5号线 特别:空格键 如果Shift也在同一行上,则只能按下备用的上键,并且只能通过Caps Lock或Shift来访问大写键。您实际上只能使用一根键盘线! 测试用例 -> true (empty string) 45-2=43 -> true (line 1) qwerty -> true (line 2) …

23
玩音乐乌龟
我的两个孩子喜欢玩以下玩具: 可以触摸内部形状的着色区域,然后乌龟会照亮该区域并播放声音或说出颜色或内部形状的名称。中间按钮更改模式。有一种模式,其中的区域在触摸时会弹奏不同的音符,并带有一种扭曲:如果孩子顺时针触摸三个连续的区域,则会播放特殊的旋律1。如果将三个连续触摸的区域逆时针放置,则会播放特殊的旋律2。 挑战 让我们模拟玩具的内部逻辑。给定一个带有3次按压的字符串,如果这3次按压是针对连续区域(顺时针或逆时针)的,则返回两个不同的连贯值;如果不是连续的,则返回第三个不同的值。 细节 输入区域将分别用一个字符命名,该字符可以是它们的颜色:ROYGB红色,橙色,黄色,绿色和蓝色。或它们的形状:HSRTC用于心脏,正方形,星形(R),三角形和圆形。大小写无关紧要,您可以选择只使用大写还是小写来处理输入和输出。 该程序将通过三次按下来接收字符串(或char数组或任何等效形式)。例子(使用颜色): ,RBO,GYO,BBR,,YRG ...YGBORB 程序将输出三个截然不同的连贯值,以表示三种可能的结果:如果组合未触发特殊旋律,则为第一个值;如果组合触发顺时针特殊旋律,则为第二个值;如果组合触发了特殊旋律,则为第三个值。逆时针特殊旋律。例如:0对于没有特殊组合的情况,1对于由顺时针组合-1触发的旋律和对于逆时针组合触发的旋律。 您无需担心处理错误的输入。 测试用例 Input Output // Input based on colors -------------- RBO 0 // No special combination GYO -1 // Counterclockwise melody triggered BBR 0 // No special combination YRG 0 // No special combination YGB 1 // Clockwise melody triggered …

17
可以建立多少个立方体
任务 您的任务是构建具有个多维数据集的结构。多维数据集的体积遵循以下顺序(底部->顶部)ññn ñ3,(n − 1 )3,(n − 2 )3,。。。,13n3,(n−1)3,(n−2)3,...,13n^3, (n-1)^3, (n-2)^3,...,1^3 输入 结构的总体积()。VVV 输出 ()的值,即:多维数据集的总数。ññn V= n3+ (n − 1 )3+ 。。。。+ 13V=ñ3+(ñ-1个)3+。。。。+1个3V = n^3 + (n-1)^3 + .... + 1^3 笔记 输入将始终是整数。 有时不可能遵循该顺序,即:并不代表的特定值。在这种情况下,返回-1或您选择的虚假值(尽管需要保持一致)。ñVVVññn 这是代码高尔夫球,因此每种语言的最短答案以字节为单位。 由于上述原因,没有答案将被标记为接受。 要求 这是我在网站上遇到的第一个挑战,请多多包涵,并宽恕(并告诉我)我犯的任何错误。 请提供一个链接,以便可以测试您的代码。 如果可以的话,请撰写有关代码工作方式的说明,以便其他人可以理解和欣赏您的工作。 例子 input : 4183059834009 output : 2022 input : 2391239120391902 …
20 code-golf  math 

15
找到细胞的邻居
...或环形摩尔社区 由于正整数h,w和一个非负整数i,返回所有围绕着指数i。 您将假定一个矩阵,该矩阵由元素的h行w组成,从左上角的最低编号到右下角的最高编号,并以任何合理的格式返回将要使用的索引列表包围索引i。这个矩阵是一个圆环(环绕每个边缘的无限图)。 例如,输入h=4和w=4,将得出矩阵: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 但更具体地说: 15 12 13 14 15 12 3 0 1 2 3 0 7 4 5 6 7 4 11 8 9 10 11 8 15 12 13 14 15 …
20 code-golf  matrix 

5
击退仇敌
设置: 社交网络以两种方式报告帖子的投票数:净投票数(总投票数-总投票数)和被投票数的百分比,四舍五入到最接近的整数(四舍五入。)。净投票数是一个整数(不一定是正数),第二个保证是0到+100之间的一个整数。upvotes数和downvotes数均为零或正32位整数(可以指定有符号或无符号)。假设如果总票数为零,则投票的百分比将报告为零。 挑战: 给定这两个整数(净投票数和%投票数),您可以编写出最短的程序,该程序确定在满足上述所有约束的情况下收到的帖子的总投票数最少的情况? 输入约束得到保证。如果输入不满足上述约束,则程序行为由您决定。如果不进入无限循环或崩溃,则可赢得荣誉。如果您需要更多指导,请考虑返回负数。 一般规则: 这是代码高尔夫球,因此最短的有效解决方案(以字节为单位)获胜。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。诸如Javascript之类的客户端Web语言的荣誉。 如果您在多语言有趣的解决方案,张贴他们分开。 标准规则适用于您的答案,因此允许您使用STDIN / STDOUT,具有正确参数和返回类型的函数/方法或完整程序。你的来电。 禁止默认漏洞。 如果可能的话,请添加一个带有测试代码的链接。 另外,请添加代码说明。 请记住,如果您要执行的整数除法运算会被截断(例如20/3 = 6)而不是舍入,则可能并不完全正确。 欢迎在上述约束条件下探索边缘情况的其他测试用例。 虽然期望的返回类型为数字,但可以使用布尔值“ false”代替0。 测试用例示例: 第一列只是为了方便讨论而包括的参考数字。 ref net %up answer 1 0 0 => 0 2 -5 0 => 0 3 -4 17 => 1 4 -3 29 => 2 5 -2 38 …

22
加倍,异或再做一次
对于任何大于0的整数,我们将函数g定义为g(n)= n XOR(n * 2)。 给定x> 0,找到最小整数y> 0,使得对于某些k> 0,g k(y)= x。 例 x = 549 549 = 483 XOR (483 * 2) (as binary: 1000100101 = 111100011 XOR 1111000110) 483 = 161 XOR (161 * 2) (as binary: 111100011 = 10100001 XOR 101000010) 这意味着g 2(161)= 549。我们不能再走了,因为没有n使得g(n)= 161。因此,对于期望的输出X = 549为Y = …

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.