编程拼图和代码高尔夫

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

5
你的土地有多大?
在这项挑战中,您将计算出自己的土地面积。 给定已建好的墙,编写一个程序或函数来计算土地的大小。您将获得一个非空的输入字符串,其中包含一组由您选择的4个不同的字符组成,它们代表“上”,“下”,“左”和“右”四个方向(我将^ v < >在此挑战中使用)。不可能转180度(<>或^v),但您可能会越过墙壁。 您“捕获”土地的方式是用墙壁将其包围。隔离墙本身也被视为您土地的一部分。一些示例将使其更加清晰。我将使用o被墙壁环绕的土地,x墙壁本身以及墙壁S的起点,仅用于说明如何建造墙壁。输出应该是你的土地的总规模(数量o,x并且S在测试情况下)。 Input: >>>> Land: Sxxxx Output: 5 Input: <<<^^^>>>vv Land: xxxx xoox xoox xxxS Output: 16 Input: <<<^^^>>>v Land: xxxx x x x xxxS Output: 11 Input: < Land: xS Output: 2 Input: >>>>>>vvvvvvvvv<<<<<^^^^>>>>>>>>vvvvvvvvvv<<<<<<<<<<<<<<<^^^^^^^^^>>>vvvvvv<<<<< Land: Sxxxxxx x x x x xxxxxxxxx xxxx xoooox x xoox …

1
找到斐波那契内核
您可能听说过斐波那契数;他们很有名。斐波那契数列中的每个数字都是序列中最后两个数之和,第一个和第二个数字是1。该序列如下所示: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296 433494437 701408733 1134903170 1836311903 2971215073 4807526976 7778742049 …

20
测试一个字符串是否可以用子字符串组成!
给定一个字符串s和一个数组/列表l,请确定是否s可以使用中的零件制成l。 例如,如果字符串为"Hello, world!"且列表为[' world!', 'Hello,'],则程序/函数应返回真实值,因为您可以排列列表以形成字符串。以下列表也将返回真实值:['l', 'He', 'o, wor', 'd!']。试想一下'l',在字符串中需要填充的地方。所以可以,您可以重复列表中的元素以形成字符串。如果不能形成字符串,则应返回假值。IO的标准方法和标准漏洞适用。 测试用例: Input (In the form of s, l) Output (1 if possible, 0 if impossible) "Hello, world!", ["l", "He", "o, wor", "d!"] 1 "la lal al ", ["la", " l", "al "] 1 "this is a string", ["this should return falsy"] …

2
逃离棋盘
您会像在棋盘上一样发现自己。您可以看到出口,但出口非常遥远,您宁愿不走一路。幸运的是,一些当地人为您提供了游览。骑士,白嘴鸦,主教和国王都愿意将您带到目的地,但看到这是一个棋盘,他们每个人都必须遵守前往目的地的棋牌规则。您想尽快离开这里,您接受谁的报价? 任务 给定任意形状和大小的棋盘,并在棋盘上指定两个点,输出可以在两个位置之间以尽可能少的移动进行移动的棋子。董事会不一定是连续的,这意味着董事会各部分之间可能存在差距。四个棋子(国王,白嘴鸦,骑士和主教)中的每一个都可以根据其在国际象棋中的标准规则移动。女王和典当兵被故意排除在这一挑战之外。 输入输出 您可以采用任何合理的格式输入,也可以以您选择的任何格式输出。您的输入和输出必须自洽。如果多个零件可以相同的移动次数到达目的地,则必须输出所有可以在最短时间内到达目的地的零件。如果这四个部分都不能奏效,则可以输出任何东西,只要它与所有其他可能的输出都不同即可。这可能包括不输出任何内容或引发错误。 测试用例 正方形表示起点,圆形表示终点。 主教 骑士 国王 车 国王,骑士 没有
23 code-golf  chess 

12
我的Diffy游戏退化了吗?
最近,我发布了一个有关Diffy游戏的问题,但尚未得到解答。很好,这个问题确实很困难,但是我想对Diffy游戏提出一个更简单的问题,以便我们能够解决问题。 Diffy如何运作 复制自Find Diffy Games Diffy游戏的工作方式如下:从一个非负整数列表开始,在本示例中,我们将使用 3 4 5 8 然后取相邻数字之间的绝对差 (8) 3 4 5 8 5 1 1 3 然后重复。重复直到您意识到自己已经进入循环。通常,游戏会从头开始。 3 4 5 8 5 1 1 3 2 4 0 2 0 2 4 2 2 2 2 2 0 0 0 0 0 0 0 0 大多数游戏都以全零的字符串结尾,这被认为是失败状态,但是很少有游戏陷入较大的循环。 …

30
其他元素之和的奇偶校验
任务 给定正整数数组,请用其他元素之和的奇偶校验替换每个元素。该数组保证至少包含 2个元素。 定义 奇偶校验:数字是奇数还是偶数。 例 对于数组[1,2,3,1]: 替换1为的奇偶校验2+3+1,即even。 替换2为1+3+1,即odd。 替换3为1+2+1,即even。 替换1为1+2+3,即even。 输出: [even, odd, even, even] 输入项 正整数数组。 您可以将其作为一个适当的数组,或者作为一个由换行分隔的正整数字符串。 您可以假定数组和其中的值在您语言的处理能力之内。 输出量 两个一致值的数组,一个代表odd一个,一个代表even。 您可以将其输出为两个值之间以换行符分隔的字符串。 测试用例 输入: [1, 2, 3, 1] [1, 2, 3, 2, 1] [2, 2] [100, 1001] 输出: [even, odd, even, even] [even, odd, even, odd, even] [even, even] …

7
旋转相机;保存一名宇航员
注意:火星人的小破坏者正面临这一挑战。仔细阅读 《火星人》是一部科幻小说,讲述的是宇航员和植物学家马克·沃特尼(Mark Watney),他偶然被困在火星上。在书中的某一点上,马克尝试与NASA通讯,但他们拥有的唯一通讯方式是摄像头。马克通过在索引卡上书写来发送消息,并且由于NASA可以将摄像机旋转360度,因此NASA通过将摄像机指向标有“是”或“否”的卡来发送回复。 由于NASA只能发送的数据是相机所面对的方向,因此Mark提出了一个系统,可以指向卡片上带有字母字符的卡片来键入消息。但是使用字母“ az”将是不切实际的。引用这本书(从这个答案开始,在scifi.se上): 每半小时,我们需要比肯定/否定的问题说话更快。相机可以旋转360度,并且我有很多天线零件。是时候制作一个字母了。但是我不能只使用字母A到Z。二十六个字母加上我的问题卡将是着陆器周围的二十七张卡片。每个人只会得到13度的弧度。即使JPL完美地对准了相机,我也很可能不知道它们的意思。 因此,我将不得不使用ASCII。这就是计算机管理字符的方式。每个字符都有一个介于0和255之间的数字代码。介于0和255之间的值可以表示为2个十六进制数字。通过给我两对十六进制数字,他们可以发送喜欢的任何字符,包括数字,标点符号等。 ... 因此,我将制作0到9,A到F的卡片。这将在相机周围放置16张卡片,再加上问题卡片。十七张牌的意思是每张超过21度。更容易处理。 作为NASA的顶级软件工程师之一,您今天的目标是编写一个程序来对摄像机的各个角度进行编码。马克为您指出的十七张卡片是(按顺序排列): ?0123456789ABCDEF 并且这些卡中的每张相距21度,因此要将相机从旋转?到0,您应该将相机旋转21度,2到1则旋转-21度。(它不完全是 21,但我们将对其进行简化以使其更圆滑)此回绕,因此从F到3是105度(5圈,5 * 21 = 105)。这比使用-252更为有效,因为相机不必移动到最远。 这是您的程序或函数必须执行的操作。 以字符串作为输入。我们将其称为s。为简单起见,我们将说输入将只能是可打印的ASCII。对于我们的示例,假设输入为STATUS 将每个字符转换为其十六进制表示形式。这将转换STATUS为53 54 41 54 55 53。 打印或返回相机将需要指向的连续度,以便指向每张卡并返回到“问题卡”。对于我们的示例,这将是: 6 * 21 = 126 (?-5) -2 * 21 = -42 (5-3) 2 * 21 = 42 (3-5) -1 * 21 = -21 (5-4) …

14
重用您的代码!
在这一挑战中,我们试图立即解决两个重要问题。他们是: 给定整数a和b,确定b -1是否为质数。 给定整数a和b,返回nCr(a,b)。 具体来说,您必须编写两个程序,一个程序执行第一个任务,另一个程序执行另一个任务。由于我们想一次解决两个问题,因此建议在两个程序中使用同一段代码。 计分 答案的分数是两个程序之间的Levenshtein距离。分数越低越好。如果出现平局,则以两个程序中组合代码最短的答案为准。您可以使用此脚本来计算解决方案的分数。 规则 您必须用相同的语言编写两个程序来解决上述任务。您可以使用所需的任何I / O方法。对于任务1,您可以返回真实/虚假值,或选择两个值分别表示是和否,然后相应地返回它们。例如。您可以选择“ "prime"真”和“ "not prime"假”。 您使用的算法必须适用于所有可能的输入,但是如果代码由于使用的数字类型的限制而无法用于大量数字,则可以。您可以假定输入有效。 程序的任何子集都不能解决问题,即。如果删除了任何字符,该代码将无法正常工作。例如,以下代码无效,因为可以在不破坏程序的情况下删除未使用的else-block: if (1) { /* change to 0 to get the second program*/ ... } else { ... } 不允许出现标准漏洞。 测试用例 a b -1是质数? a b 1 1 false 2 3 true 5 2 false …

14
制作气泡包装模拟器
气泡包装纸是最高级别的娱乐活动。每个人都可以同意。 现在,您甚至可以使计算机享受泡沫包装。 眼镜 您将得到两个整数w和h(分别是宽度和高度) 您的程序应输出所有w * h阶段,每阶段之间等待1秒钟,然后终止。 每次气泡包装都从所有细胞充满开始。 例如,一个4 * 6的气泡包装开始如下: O_O_ _O_O O_O_ _O_O O_O_ _O_O 每个阶段都会弹出一个随机未弹出的单元格。 O_O_ _O_O O_X_ _O_O O_O_ _O_O 当所有单元格都弹出时,程序应终止。又名 X_X_ _X_X X_X_ _X_X X_X_ _X_X 例子 (4,6) (5,5) (6,2) (10,10) (7,9)

14
我的风火轮车多快?
几年前,Hot Wheels制作了一个简单的Flash游戏,名为“ Formula Fuelers Racers” *。要玩游戏,您需要从冰箱中选择三种食材放入您的汽车中,然后将其与计算机的随机生成的汽车竞争。事实证明,这款游戏的机制非常简单。首先,您汽车的实际比赛“时间”是随机生成的,与您是否赢得比赛无关。其次,比赛的获胜者是根据从所选成分中计算出的分数确定的(允许重复的成分,顺序很重要)。每种成分都有一个关联的“值”和一个关联的“操作”,如下表所示: # ingredient val op 1 Hot Salsa 2 + 2 Root Beer 1 + 3 Milk 1 + 4 Pickle Juice 2 + 5 Mystery Lunch -3 * 6 BBQ Sauce 2 + 7 Egg 1 + 8 Ketchup 2 + 9 Mustard -1 …

16
制作音乐盒
您的任务是将一系列字符(音乐)作为输入(在函数或程序中),并按照音乐盒中的外观打印(或返回)音乐。 您将只接收字符ABCDEFG.()作为输入,并且输入永远不会为空。如果您愿意,您可能还会收到小写字母。 这是一个空的音乐盒,长度为3: ....... ....... ....... 如您所见,这些行的长度为7个字符,并且由于音乐盒的长度为3,因此我们有3行。.因为音乐盒为空,所以这里只有。让我们放一些音乐吧! 首先,我们创建音乐盒。在此示例中,输入将为CDAG.DAG。 的长度CDAG.DAG为8,因此我们需要一个长度为8的音乐盒: ....... ....... ....... ....... ....... ....... ....... ....... 然后,我们读取输入,一次输入一个字符,并将其放置O在其相应位置。 第一个字符是C,每个音符的位置与此等效(为清楚起见,我添加了空格): A B C D E F G . . . . . . . . . . . . . . (and so on) 如果输入字符是.,则我们只打印一个空行....... 因此,这C将是第三个字符。让我们将其放在顶部的音乐盒中: ..O.... ....... ....... ....... ....... …

5
最快的家用Prime发电机
什么是家庭必备? 例如,以HP(4)为例。首先,找到主要因素。4的质因子(按从最小到最大的数字顺序,始终为)为2。2。将这些因子作为文字数。2,2变成22。分解的过程一直持续到您达到素数为止。 number prime factors 4 2, 2 22 2, 11 211 211 is prime 达到质数后,序列结束。HP(4)= 211。这是一个更长的例子,有14个: number prime factors 14 2, 7 27 3, 3, 3 333 3, 3, 37 3337 47, 71 4771 13, 367 13367 13367 is prime 您面临的挑战是创建一个程序,该程序将在给定x的情况下计算HP(x)并尽快执行。您可以使用所需的任何资源,而不是已知的家庭素数列表。 请注意,这些数字很快变得非常大。在x = 8时,HP(x)一直跳到3331113965338635107。尚未找到HP(49)。 平均在以下输入下,将在Raspberry Pi 2上测试程序速度: 16 20 …

9
希尔伯特大酒店
介绍 你们中有些人可能听说过希尔伯特大酒店。那里的经理丢失了他的住所清单,但他仍然保留了他们的入住顺序。每个客人都不能住在房间号小于其房间值的房间中,并且如果客人被添加到较低的房间中房间,较高房间的所有客人之间都没有空的空间,新来的客人被转移到一个房间。您能帮他找到每位客人的住处吗? 要求 编写一个程序,该程序接收自然数的有序列表作为输入,并将其放在其索引处。如果该索引中已经有一个值,则将其上移到列表中的下一个条目。重复此过程,直到找到第一个空白(0或未定义)空间。当前最高索引与任何新输入之间的所有未定义空格都将加0。由于这是希尔伯特大酒店,因此不存在比当前最高入住指数更高的房间。 输入输出 输入将是自然数的有序列表(允许通过任何可接受的输入形式读取)输入中的 每个数均被视为一位到达酒店且按到达顺序排列的客人 输出将是客人的最终安排(人数) 例子 输入: 1 3 1 输出: 1 1 3 逐步: 1 在索引1处创建房间并将1放置在其中 1 0 3 在索引3处创建房间并将3放置在房间3中 1 1 3 向上移动房间1的内容一室一厅1 输入: 1 4 3 1 2 1 输出:1 1 2 1 3 4 逐步: 1 在索引1处创建房间并将1放置在其中 1 0 0 4 在索引4处创建房间并将4放置在房间4 1 …

1
一路下跌的因素!
这项挑战的灵感来自于这张奇妙的动画图表(感谢在聊天中张贴的虚假人物)。 给定输入n,将其所有主要因子绘制为指定的点的嵌套多边形。 例如,给定数字357 = 17x7x3,您在一个三角形中排列3个点,在一个七边形中排列这些三角形的7个版本,并在一个17边角中排列这些庚烷的17个版本。简而言之,嵌套的多边形从外部的最大素数到内部的最小素数。对于357,您的答案应该看起来像这样(有色或无色): 每个素数的每个多边形>= 3都不应围绕图旋转。 唯一的例外是质数2,专门用于的奇数幂2。在376 = 47x2x2x2下面的示例中可以看到,8s旋转并且不是2s的单行,而是4正方形中s的垂直堆栈。甚至2以正方形排列的的幂也不需要以这种方式旋转。 实际上,它448 = 7x2x2x2x2x2x2具有一个看起来像64s 的七边形的图,并64排列成正方形的正方形,但没有旋转。 还有两个示例是440 = 11x5x2x2x2和432 = 3x3x3x2x2x2x2。我们看到440奇数幂为2时旋转了8s,而432偶数幂2为时旋转了16s。 最后,这是一个最小的示例,它10 = 5x2没有我用Python及其turtle模块模拟的颜色。 挑战 给定输入nwhere 1 <= n <= 10000,输出其嵌套因子多边形的图像。 规则是: 图像由嵌套的点的多边形组成,从外侧(最大素因数)侧面到内侧最小素数因数的多边形组成。 对于因子2,2的幂应堆叠为一条线,然后是一个正方形,然后是一个正方形的线,依此类推。即使2的次方也不应该旋转。2的奇次幂应绕其各自的多边形旋转,并且在旋转之前应垂直堆叠它们。 您可以根据自己的喜好调整图像的方向(尽管我更喜欢向上),但是每个嵌套的多边形都应与其他任何多边形面对相同的方向,唯一的例外是2的次方。 对于图像大小和点大小,您有两个选择: 图像大小是静态的,并且点的大小随着n动画的增加而减小。 点大小是静态的,图像大小会随着n增加而增大。 多边形的前三层应与相邻的多边形(即不接触)区分开,但要考虑到周围及其周围图像的大小n=10000如果层开始接触就可以了。如果他们不愿意的话,我会更喜欢它,但是它不可避免地要适合可上传到Stack Exchange的图像。 颜色是可选的。 点的形状由您决定。如果正方形更适合您的语言,请使用那些。 没有奖金,但是我希望看到有人像原始帖子那样为图表添加动画并为其着色。 感谢Conor O'Brien,EasterlyIrk,Martin Ender,Kritixi Lithos,Mego,DJ McMayhem和El'endia Starman在编写此问题时所提供的帮助。 此代码高尔夫球,所以最短的代码获胜。祝你好运,打高尔夫球!

2
ASCII希尔伯特曲线
给定一个整数n输出,使用字符和,以ASCII n形式对Hilbert曲线进行第三次迭代。_| 这是前4个迭代: n=1 _ | | n=2 _ _ | |_| | |_ _| _| |_ n=3 _ _ _ _ | |_| | | |_| | |_ _| |_ _| _| |_____| |_ | ___ ___ | |_| _| |_ |_| _ |_ _| _ | |___| |___| …

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.