编程拼图和代码高尔夫

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

4
清楚地加上括号的APL列车
在APL中,您可以编写默认的函数,称为trains。他们的工作方式与这一挑战无关。以下是将它们⍴作为函数进行分组的不同方法: ⍴ -> ⍴ ⍴⍴ -> ⍴⍴ ⍴⍴⍴ -> ⍴⍴⍴ ⍴⍴⍴⍴ -> ⍴(⍴⍴⍴) ⍴⍴⍴⍴⍴ -> ⍴⍴(⍴⍴⍴) ⍴⍴⍴⍴⍴⍴ -> ⍴(⍴⍴(⍴⍴⍴)) ... 顺序保持不变。程序是,只要严格存在3个以上的功能,则将后3个功能分组为一个功能。如果遇到嵌套火车,我们先将其括起来,然后再继续。这是适用于的过程⍴⍴⍴⍴⍴⍴: Step 0: ⍴⍴⍴⍴⍴⍴ There are strictly more than 3 functions, repeat. Step 1: ⍴⍴⍴(⍴⍴⍴) There are strictly more than 3 functions, repeat. Step 2: ⍴(⍴⍴(⍴⍴⍴)) There are 3 or …

2
有理数的按位XOR
介绍 0和1之间的每个有理数都可以表示为最终的周期性位序列。例如,11/40的二进制表示为 0.010 0011 0011 0011 ... 0011无限期重复的部分。以下是找到此表示形式的一种方法。从r = 11/40开始,然后重复将其加倍并取小数部分,当它超过1时进行记录。当r的值重复时,您就知道已经进入循环。 1. r = 11/40 2. 2*r = 11/20 < 1 -> next bit is 0, r = 11/20 3. 2*r = 11/10 >= 1 -> next bit is 1, r = 2*r - 1 = 1/10 4. 2*r = 1/5 …

9
使用Riemann和求近似定积分
左右黎曼和和是定积分的近似值。当然,在数学中我们需要非常精确,因此我们的目标是使用许多接近无穷大的细分来计算它们,但对于本挑战而言,并不是必需的。相反,您应该尝试编写最短的程序,以任何编程语言通过任何默认方法获取输入并提供输出,该语言可以执行以下操作: 任务 给定两个有理数一种一种a和bbb(定积分的极限),一个正整数ññn,代表左/右的布尔ķķk和一个黑盒函数 FFf,计算∫的左或右黎曼和(取决于ķķk)b a f (x )d x,使用n个相等的细分。∫b一种F(x )d x∫一种bF(X)dX\int_a^b f(x)\mathrm{d}xññn I / O规格 一种一种a和bbb可以是有理数/浮点数或分数。 ķķk可以由任意两个不同且一致的值表示,但请记住,不允许您将完整或部分函数用作输入。 FFf是黑盒功能。引用上面链接的meta答案,可能无法访问黑盒功能的内容(即代码),您只能调用它们(如果适用,则传递参数)并观察其输出。如果需要,请提供有关您的语言使用的语法的必要信息,以便我们测试您的提交。 作为输出,您必须提供一个有理数/浮点数/分数,代表您想要的黎曼和。如过去所讨论的,只要四舍五入到最接近的1/1000的倍数(例如1.4529999,可以代替1.453),您的输出至少可以精确到小数点后三位,就可以忽略浮点不精确度。 数学规格 FFf保证在一种一种a和bbb之间是连续的(没有跳跃,没有孔,没有垂直渐近线)。 您必须处理三种可能的情况:a = b一种=ba = b(结果应为000或等效值),a &lt; b一种&lt;ba < b或a &gt; b一种&gt;ba > b。 如果b &lt; ab&lt;一种b < a,则积分会更改其符号。此外,在这种情况下,整体的正义感是朝着一种一种a。 图表下方的区域为负,图表上方的区域为正。 示例/测试用例 分辨率不是最佳的,因为我不得不将它们缩小一点,但是它们仍然可读。 F(X )= 2 X + 1 ,a = …

16
镜像数字时钟
许多数字时钟使用简化的数字显示时间,这些数字仅由七个打开或关闭的不同指示灯组成: 水平镜像时,数字018不变,因为它们是对称的。此外,数字2和5交换,2成为5,反之亦然。镜像后,所有其他数字均无效。 因此,给定24小时数字时钟,会有许多时钟读数,因此数字显示器的镜像图像也是有效的时钟读数。您的任务是输出所有此类时钟读数以及镜像读数。 例如,22:21变为15:55,00:15变为21:00。另一方面,12:34或16:27在镜像后不再有效(数字34679变为无效),也不是22:22或18:21,因为一天中只有24小时,每小时只有60分钟,所以不会显示55:55或12:81。 任务 编写一个程序或函数,不使用任何输入,并按升序输出所有有效对,如下所示: 00:00 - 00:00 00:01 - 10:00 00:05 - 20:00 00:10 - 01:00 00:11 - 11:00 00:15 - 21:00 00:20 - 05:00 00:21 - 15:00 00:50 - 02:00 00:51 - 12:00 00:55 - 22:00 01:00 - 00:10 01:01 - 10:10 01:05 - 20:10 01:10 - …

3
写有理数作为质数的因数比
注意:此挑战已发布在沙盒上。 介绍 这项挑战的灵感来自2009年Putnam B1,这是本科数学竞赛中的一个问题。问题如下: 证明每个正有理数都可以写成素数(不一定是素数)的阶乘乘积的商。例如, 挑战 您的挑战是采用一对相对质数为正的整数,它们代表正有理数(或仅是有理数本身)的分子和分母作为输入,并输出两个质数的列表(或数组等),以便输入的有理数等于第一个列表中素数阶乘的乘积与第二个列表中素数阶乘的乘积之比。 笔记 第一个列表和第二个列表中可能没有任何素数;但是,素数在任意一个列表中可能会出现多次。 可以假定每个输入(非严格地)在1到65535之间。但是,不能假设您需要输出的数字的阶乘将在此范围内。 输入和输出示例 以下是合法输入和输出的示例。 input=&gt;output 10,9 =&gt; [2,5],[3,3,3] 2,1 =&gt; [2],[] 3,1 =&gt; [3],[2] 1,5 =&gt; [2,3,2],[5] (elements of a list may be in any order) 3,2 =&gt; [3],[2,2] 6,1 =&gt; [3],[] 输入(2,2),(0,3),(3,0),(3,6)和(1,65536)是非法输入(即,您的程序不需要对它们进行任何特定操作)。以下是一些非法输出的示例: 1,2 =&gt; [2],[2,2] (2 is in both returned lists) …

10
我需要破坏世界吗?
行星的引力束缚能是指将行星的每一小块分开,以使每一块都不会绕另一颗轨道运行或碰撞所需的能量。对于一个统一的领域,Wikipedia给出以下公式: Ë= 3 G M25 RË=3G中号25[RE = \frac{3GM^2}{5R} 其中G为重力常数(6.672e-11 m 3 •kg -1 •s -2),M为质量,R为半径。 我可能仅以焦耳(kg•m 2 •s -2)计算该挑战,但是……那将很无聊。此外,并非所有人都了解焦耳。 因此,让我们将其转换为以下单位: TNT千吨(4.184万亿焦耳,简写kilotons) 广岛核武器(62.76万亿焦耳,简写nukes) Hostess™Twinkies(560,000焦耳,速记twinkies) 千瓦时(简写为360万焦耳kWh) 千克的质量能(1千克质量能= 299,792,458 2焦耳,简写kg) 因此,输入以下输入: 千克质量 半径(米) 代表要使用的单位的六个不同输入之一 并以指定单位输出结合能。将速记单元追加到输出的末尾。 规则 焦耳的简写是J。 只要不分隔速记单位或数字,就可以使用任意空格。 无论您使用哪种语言,都可以使用科学计数法。 您只需要4个有效数字。强烈建议使用浮点数。 等等等等最短的答案以字节为单位。 测试用例 与此电子表格一起生成。 Mass (kg) Radius (m) J kilotons nukes twinkies kWh kg …

7
二元展开式的不同非空子序列数
子序列是您可以通过删除任意数量的字符从另一个序列获得的任何序列。的不同的非空的子序列100是0,1,00,10,100。的不同的非空的子序列1010是0,1,00,01,10,11,010,100,101,110,1010。 写一个程序或函数给定一个正整数Ñ返回的二进制展开的不同的非空的子序列的数目Ñ。 例子:因为4是100二进制,所以我们看到上面有五个不同的非空子序列,所以f(4) = 5。从n = 1开始,序列开始: 1, 3, 2, 5, 6, 5, 3, 7, 10, 11, 9, 8, 9, 7, 4, 9, 14, 17, 15, 16, 19, 17, 12 但是,您的程序必须在任何现代机器上都能在n &lt;2 50秒内工作。一些大的例子: f(1099511627775) = 40 f(1099511627776) = 81 f(911188917558917) = 728765543 f(109260951837875) = 447464738 f(43765644099) = 5941674

6
类Kolakoski自参考序列
这是如何定义Kolakoski序列(OEIS A000002)的方法: 所述Kolakoski序列是包含序列1和2,并且n该序列的第i个元素是长度n个组相等的元素(运行)的序列本身中的。序列的前20个术语以及相应的长度为: 1 2 2 1 1 2 1 2 2 1 2 2 1 1 2 1 1 2 2 1 - --- --- - - --- - --- --- - --- --- - 1 2 2 1 1 2 1 2 2 1 2 2 1 本质上,科拉科斯基序列的相等元素的组的长度是科拉科斯基序列本身。 …

6
我不喜欢改变!
输入: 两个没有换行符或空格的字符串。 输出: 两个输入字符串都在单独的行上,两个字符串之一之间在必要时加空格†。并以字符的第三线A,R,M和,代表添加,删除,修改,和改变。 †我们在顶部或底部输入字符串中添加空格(如果需要)。这项挑战的目标是输出ARM尽可能少的变化量(),也称为Levenshtein距离。 例: 假设输入字符串为ABCDEF和AFBECD,则输出为: A B CDEF AFBECD A A RR 这里有一些其他可能的无效输出作为示例(还有很多): ABCDEF AFBECD MMMMM A BCDEF AFBECD A MMMR AB CDEF AFBECD MAMMMR ABC DEF AFBECD MMAMMR ABC DEF AFBECD MMAA RR ABCDEF AFB ECD MMR MA AB CDEF // This doesn't make much sense, AFBECD …
19 code-golf  string 

14
二进制素块
我们正在寻找一个序列 取自然数 1,2,3,4,5,6,7,8,9,10,11,12,13,14... 转换为基数2 1,10,11,100,101,110,111,1000,1001,1010,1011,1100,1101,1110... 连接以上数字 110111001011101111000100110101011110011011110... 将此数字划分为Prime-Chunk (包含数字的质数的块)质数 按升序排列2,3,5,7,11,13,17... [11][011][10010][1110111][10001001101][0101111001101][1110...] 并找到每个块的数字总和 Primes 2 3 5 7 11 13 17 Chunks [11][011][10010][1110111][10001001101][0101111001101][1110...] SumOfDigits 2 2 2 6 5 8 序列 2,2,2,6,5,8,9,10,14,22,11,18,25,27,32,21,28,32,40,40,49,49,32,41,49, 53,63,55,63,70,87,73,51,63,71,78,78,90,107,86,96,108,115,128,138,92,83,95,102,110, 130、106、122、141、149、163、130、140、151、165、181、165、204、200、234、100、130、138、167、149、169、180、209、166、189, 194,222,205,234,260,216,206,217,241,240,267,289,242,274,308,286,329,338,155,189,225,197,240,272,217, 254、282、287、317、281、256、299、286、331、337、316、350、354、391、367、282、327、313、364、358、348、397、406、466 ... 挑战 查找nth以上序列的术语 输入项 一个整数 n&gt;0 测试用例 1-&gt;2 3-&gt;2 6-&gt;8 36-&gt;78 60-&gt;165 160-&gt;581 260-&gt;1099 350-&gt;1345 …

14
有多少个林奇贝尔号?
挑战 给定一个整数,n作为输入where 36 &gt;= n &gt;= 2,输出base中有多少个Lynch-Bell数字n。 输出必须以10为底。 林奇贝尔数字 在以下情况下,数字是Lynch-Bell数字: 其所有数字都是唯一的(无重复数字) 该数字可被其每个数字整除 它不包含零作为其数字之一 因为所有数字都必须是唯一的,并且每个基数中都有一组有限的单位数字,所以林奇-贝尔数字是有限的。 例如,在基数2中,只有一个Lynch-Bell号码1,因为所有其他号码要么重复数字,要么包含0。 例子 Input &gt; Output 2 &gt; 1 3 &gt; 2 4 &gt; 6 5 &gt; 10 6 &gt; 10 7 &gt; 75 8 &gt; 144 9 &gt; 487 10 &gt; 548 Mathematica Online在10以上的内存不足。您可以使用以下代码生成自己的代码: Do[Print[i," &gt; …

21
它会定期振荡吗?
挑战 给定一个列表,确定将列表分组为增加和减少元素的运行是否将导致大小相等的列表的列表。 换句话说,列表的“转折点”平均间隔开。 例 这是一个例子: 0, 3, 7, 5, 2, 3, 6 0, 3, 7增加,7, 5, 2减少和2, 3, 6增加。因此,这是事实。 另一个例子: 1, 4, 6, 8, 5, 3, 5, 7, 9 1, 4, 6, 8增加,8, 5, 3减少和3, 5, 7, 9增加。因此,这是虚假的。 规则和规格 没有相邻的元素将相等 可以假定所有数字都在您的语言的合理数字范围内 您可以假设所有数字都是整数,如果它可以帮助您打高尔夫 这是代码高尔夫球,因此最短的答案将获胜 以任何合理表示形式的列表形式输入,并以任何真实/虚假值输出。这两个值必须一致。 测试用例 Input -&gt; Output 1, 3, …

15
深度搜索列表
对于此挑战,当且仅当列表完全由整数和有效列表(递归定义\ o /)组成时,列表才被视为有效。对于此挑战,给定一个有效列表和一个整数,返回可以找到该整数的所有深度的列表。 例 让我们考虑list [1, [2, [3, [1, 2, 3], 4], 1], 1]和integer 1。然后,我们可以像这样绘制列表: Depth 0 1 2 3 Num 1 2 3 1 2 3 4 1 1 您会注意到,它1显示在深处0, 1, 3。因此,您的输出应采用0, 1, 3某种合理的格式(顺序无关紧要)。 深度可以是0或1的索引,但是请在提交的内容中指定是哪一个。 测试用例(0索引) 对于列表[1,[2,[3,4],5,[6,7],1],[[[[5,2],4,[5,2]]],6],3]: 1 -&gt; [0, 1] 2 -&gt; [1, 4] 3 -&gt; [0, 2] …

5
这是输家吗?
在棋盘上有一个名为“回家”的游戏。在这个游戏中,两个玩家轮流移动一个棋子。关于如何移动作品有一些规则。转牌时,玩家必须进行以下任一动作来使n为正。 n个空格 左边n个空格 n在左上方(对角线)间隔 将棋子移到棋盘左上角的玩家将赢得比赛。 现在,我们将定义丢失正方形的概念。在此视频中(我从中得到了这个主意),将输方定义为一个方格,在该方格上,任何开始转牌的玩家将被迫采取行动,允许对手强制获胜。丢失正方形的最简单示例是(1,2)处的正方形。(1,2)处的作品可以移动到以下任意位置。 所有这些都为下一位玩家赢得胜利提供了直接途径。 同样可以得出结论,凡是具有一条通向输掉方格的单向方格的方格,都允许玩家从该方格开始,以强制获胜。这意味着,只要不离开亏损方格的任何方格也是亏损方格。 这使我们对损失平方的定义更加简洁: 丢失的正方形是一个不能从任何移动到达另一个丢失的正方形的正方形,而(0,0)是一个丢失的正方形。 任务 给定任意大小的棋盘上正方形的坐标,确定它是否为丢失的正方形。输出两个值,一个用于丢失平方,另一个用于其他平方。 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 测试用例 这是常规的8 x 8棋盘(标记为0)上的所有丢失方格。 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 …

27
找到我的多鞭!
出于此挑战的目的,将polyphthong定义为String的连续切片,该切片仅包含元音,并且长度至少为2。给定非空String作为输入,您的任务是输出其包含的所有polyphthongs 。 例如,"abeoic"具有以下连续切片(以空格分隔): a b e o i c ab be eo oi ic abe beo eoi oic abeo beoi eoic abeoi beoic abeoic 除去那些不包含元音或长度小于2的元音,我们将得到所需的多音节: eo oi eoi 您的提交必须遵守以下规则: 您可以为I / O选择小写或大写,但输出大小写必须与输入大小写匹配。 元音为aeiou(小写)和AEIOU(大写)。y/ Y不被视为元音。 输入将仅包含可打印的ASCII。 如果一个多重声部出现多次,则可以选择仅输出一次或输出所有出现的情况。 允许使用任何合理的I / O格式和方法(对于输入和输出,也可以使用字符列表)。 测试用例 输入-&gt;输出(小写) r67 ^^()* 6536782!87-&gt; [] 编程难题和代码高尔夫球-&gt; [] aaand ...我赢了!-&gt; ['aa','aa','aaa'] …
19 code-golf  string 

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.