Questions tagged «code-golf»

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

3
龙的形象
我看到一个由正方形制成的双龙曲线的酷图,不知道如果我们从另一个基本图像开始会发生什么。所以我写了一个程序来做到这一点。 太酷了,我以为作为挑战来做会很有趣。 任务 您将拍摄一个正方形图像,其边缘长度为2的幂(大于4)。 要制作此图像,您应先将图像分成4个相等大小的垂直带,然后将相邻的带沿相反方向移动为图像大小的八分之一(移动的带应环绕到另一侧)。然后,您应该在每次将图像分为两倍的分割并向上一次移动一半时重复此过程。每次迭代都应在垂直和水平移位之间交替。您应该进行迭代,直到移位要求您移位完成的点数像素(始终为1/2)。 从左向左垂直移动奇数编号的带(零索引)时,应向下移动,而偶数向上移动。水平移动时,从顶部起奇数编号的频段应向左移动,而偶数编号的频段应向右移动。 您只需要输出/显示转换的最终结果,而不是像gif所示的所有中间步骤。 这是代码高尔夫球,因此目标是最小化以字节为单位的源代码长度。 通过示例工作 我将逐帧浏览页面顶部显示的cat gif。 这是起始图像: 该图像为512 x 512像素。我们将其分为4个频段,以将每个频段垂直移动和移动1/8图像尺寸(64像素)。 现在,我们将其分为两倍的频段(8个频段),并将其移动到上次的一半(32像素)。这次我们将水平移动。 现在,我们这次再次垂直移动,分为16个波段,每个波段移动16个像素。 32波段8像素水平移动 64波段4像素,垂直移位。 128个波段,2个像素,水平移动。 256个波段,1个像素,垂直移位。 由于下一个移位将要求我们将每个波段移动半个像素,因此我们将在此处停止并输出结果。 测试用例 我有一个可以制作这些图像的工作脚本,所以我想我会让你们选择测试用例的图像。因此,如果您有一个平方的图像是2的幂次方,那么您希望看到它变成龙形。随时将其发送给我,我将其作为测试用例。 您还应该在纯白色或纯黑色图像上进行测试,以便确定像素是否消失。

10
自然日志上的蚂蚁
这是一个很好的初学者挑战,也是一个很好的时间杀手。 我只说了-自然-对数,因为标题太短了,这与对数无关。 给定2个变量: 蚂蚁数量n。 日志的宽度w。 输出日志宽度w与n蚁(实施例示出w=3,n=6) | | | \O/ \O/ \O/ | | -O- -O- -O- | | /o\ /o\ /o\ | | ^ ^ ^ | | | | \O/ \O/ \O/ | | -O- -O- -O- | | /o\ /o\ /o\ | | ^ ^ ^ | …

23
获取小数!
任务: 当给出三个输入时,您的任务是: 分子 n 分母 d 另一个整数 x 创建一个程序/函数,以找到x小数点后第一个数字。 眼镜: 的范围n和d之间1和2^31 - 1,包括端值。 的范围x介于1和之间10,000,000,包括在内。 您可以选择使用基于1的索引或基于0的索引x。请在回答中说明您使用的是哪个。 n可能大于d。 n,d并x保证是正整数(为基于1的索引版本x,如果您选择使用基于0的索引功能x则x可以0)。 您可以采用任何合理的方式(即非标准漏洞的任何方式)进行输入。 规则: 您必须返回精确的xth位数,而不是四舍五入-因此,例如的15th位数1/6不是7,而是6。 x除非您的语言不支持小数到1000万位,否则您的程序必须能满足1000万以下的所有要求。 I / O示例: 示例输入使用基于0的索引,这意味着x将从0到9,999,999。不仅如此,“输入”还被编写为字符串,并用空格分隔数字。 1 2 3: 0 5 6 0: 8 5 6 1: 3 1 6 15: 6 (not 7, as it's not rounded) 1 11 2: …
23 code-golf  math 

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
制作气泡包装模拟器
气泡包装纸是最高级别的娱乐活动。每个人都可以同意。 现在,您甚至可以使计算机享受泡沫包装。 眼镜 您将得到两个整数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.... ....... ....... ....... ....... …

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在编写此问题时所提供的帮助。 此代码高尔夫球,所以最短的代码获胜。祝你好运,打高尔夫球!

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.