编程拼图和代码高尔夫

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

4
字谜代码
让我们再试一次。 竞赛的目的是制作两段彼此相同的字母(彼此必须包含不同顺序的相同字节)的代码,它们将执行以下任务: 必须测试输入的数字是happy还是prime,并测试数字是否是数字(例如,7必须输出happy prime和4必须输出sad non-prime)。 另一个必须以字为单位输出其代码大小(以字节为单位)(输出60字节的程序,输出sixty39字节的程序thirty-nine)。 如果规则需要任何澄清,请随时告诉我。 这是一场代码高尔夫比赛,因此最短的程序将获胜!

6
从> 1000位数字中查找最小的周期
您的工作是将此数字作为输入(尽管它也应该与任何其他数字一起使用): 18349570345710975183495703457109751834957034571097518349570345710975183495703457109761834957034571097518349570345710975183495703457109751834957034571097518349570345710976183495703457109751834957034571097518349570345710975183495703457109751834957034571097618349570345710975183495703457109751834957034571097518349570345710975183495703457109761834957034571097518349570345710975183495703457109751834957034571097518349570345710976183495703457109751834957034571097518349570345710975183495703457109751834957034571097618349570345710975183495703457109751834957034571097518349570345710975183495703457109761834957034571097518349570345710975183495703457109751834957034571097518349570345710976183495703457109751834957034571097518349570345710975183495703457109751834957034571097618349570345710975183495703457109751834957034571097518349570345710975183495703457109761834957034571097518349570345710975183495703457109751834957034571097518349570345710976183495703457109751834957034571097518349570345710975183495703457109751834957034571097618349570345710975183495703457109751834957 并找到最小周期,在这种情况下为: 1834957034571097518349570345710975183495703457109751834957034571097518349570345710976 祝好运并玩得开心点! 说明: 输入的数字至少有一个周期和一个局部周期 句号始终从输入数字的开头开始 在这种情况下,句号表示重复的数字序列。
10 code-golf 

18
缩小数字
输入是(至少3个,最多20个)不同整数的数组。每个整数都大于-1000并且小于1000。 你的任务是“线性映射”他们缩小数字0.0来1.0。这意味着数组中最小的数字将映射为0.0,最大的映射为1.0。 您可以将数组作为参数(在函数内部)或stdin / program参数(可以选择)。以格式打印结果double1;double2;double3;...。输出必须具有与输入相同的顺序。 如果需要,可以将输出舍入到小数点后两位。小数点后必须至少有1位数字。 该内置功能的使用(其比例放倒为你的数字功能,如mathematicas Rescale)是不允许的。 例子: Input Output [5,-20,30] 0.5;0.0;1.0 [1,2,3,4,5] 0.0;0.25;0.5;0.75;1.0 [0,5,100,400] 0.0;0.01;0.25;1.0 (最后的输出是四舍五入的,否则为0.0;0.0125;0.25;1.0)

1
在俄罗斯方块游戏中找到最佳动作
我非常喜欢俄罗斯方块,但是我不太擅长。我只想看到那艘飞船在我眼前起飞!而且由于计算机在所有方面都非常出色,因此唯一可行的解​​决方案是编写一个程序供我使用...除非您要为我做这件事! 给定一个tetromino(由四个正方形组成的形状)和一个运动场的地图,您将放置tetromino,以使其得分最多的行(使最大的行数完全充满块)并创建最少的行的新孔(一个空的空间不能“看”比赛场上的顶部1)。 输入值 输入将在一行上包含一个代表下降的tetromino的字符,然后是一个10 * 18的网格2,由空格()和加号(+)组成。 该字符代表在俄罗斯方块中发现的七个基本四聚体中的任何一个。所有的片段都可以旋转90度,但不能翻转。所有四蛋白骨及其旋转如下: # S = ## ## ## # # Z = ## ## ## # # ### ## L = # # # # ## # ### # ### ## J = # # # # ## # ### # # # T = …
10 code-golf  tetris 

11
编写一个程序,将文本文件的第17位变成1
我和我的同事正在开发我们有时讨厌的旧版软件。每当您运行它时,调试断言就会四处飞扬,并且不能保证任何事情都会起作用。这轮代码高尔夫的动机来自于我的同事对我们的软件发表了以下看法。 “就像每次运行该程序一样,您同意某些服务条款,这些条款说硬盘上的第17位将变成1。” 目标:编写一个程序,该程序将精确复制文件并将文本文件的第17位变成1 你可能不把EVERY文件的位为1,即你的程序必须表现出一定的智能,它仅针对每第17位 你可能不写入到原始文件中的任何方式或形式 该获奖者是在月底最小的程序提交 玩得开心!走!

4
一元数有多强?
通常,您会得到一个由0到8组成的非进制(基数9)非负整数。但是,此数字中的位数(没有前导零)是一个完美的正方形。 因此,可以将数字排列在正方形网格中(仍保留读取顺序)。 1480(1125以10为基)的示例: 14 80 现在,让这样的一元网格中的每个数字指示运动到另一个网格空间(具有周期性边界条件): 432 501 678 就是说 0 = stay still 1 = move right 2 = move right and up 3 = move up ... 8 = move right and down 因此,如果在1480网格中从4开始,然后向上移动(记住pbc)并向左移动到8,这意味着您将向右和向下移动回到4,从周期2开始一个循环。 通常,此过程一直持续到您达到0或注意到一个循环为止。(0被认为是周期为1的周期。) 在1480的情况下,最终到达4个起始数字中的每个数字的时间段2 2 2 1分别是。 对于更大的网格,这些数字可能大于8,但是我们仍然可以将它们用作新的非二进制数字中的“数字”(简单地将9 ^ n的系数视为数字): 2*9^3 + 2*9^2 + 2*9 + …

15
创建一个尽可能靠近正方形的网格
创建使网格尽可能靠近正方形的函数或程序 您将得到一个整数N作为输入,整数(1、2、3、25等) 输出必须是N个字母的完美矩形网格,并尽可能接近正方形 (wannabe)方块必须由用户指定的字母O或X之一组成 要点: 硬编码为仅O或X:+1 一个param(0/1,true / false,类似的东西)以旋转输出(例如5或8):-10 设计正方形(以某种方式同时使用O和X):-5 如果图案包含两种类型的字符(其中x / y轴> = 3)并且在水平或垂直翻转时保持不变(允许将Xs与Os交换),则该图案被视为有效 例子 INPUT: 4 INPUT: 5 INPUT: 8 INPUT: 9 OO OOOOO XXXX XOX OO XXXX OXO or rotated 90deg XOX 不允许的示例(行或列的长度不一样) BAD RESULT: 5a BAD RESULT: 5b BAD RESULT: 8 OOO OO OOO OO OO …

2
写书作家
这是一本打开的书的相当简单的ASCII描述: |\ | \ | \ | \ | \__________ | || | | || Lorem i | \ || psum do | \ || lor sit | \ || amet, | \ || consect | \||_________| 请注意,文本部分仅在右侧页面上,宽7个字符,高5个字符。另请注意,该书的顶部边缘有5个反斜杠和10个下划线。10来自文本宽度加3,而5是10的一半。 使用相同的缩放格式,我们可以调整书的大小以使其文本区域的宽度为w个字符,高度为h个字符,其中w为任何奇数正整数,h为任何正整数。 一些w × h的书:1×1、1×2、3×2 |\ |\ | \ |\ | \____ | …

5
便宜,快速,良好-共同因素(最大)[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 4年前关闭。 受Cheap,Fast,Good的启发,我们将要实现一个算法,其中恰好有两个。 数学 给定两个非零整数a和b,GCF d是将a和b均除而无余的最大整数。贝索特系数是整数对(x,y),因此ax + by = d。贝索特系数不是唯一的。例如,给定: a = 15, b = 9 我们有 d = 3 x = 2 y = -3 自从15*2 + 9*(-3) = 30 - 27 = 3。 计算GCF和一对Bézout系数的常用方法是使用Euclid算法,但这绝不是唯一的方法。 编码 您的程序应采用两个整数作为输入。它应该输出/返回最大公因数和一对Bézout系数。 输入示例: 15 9 示例输出 3 (2, …

3
mathpack数字文字
前言 在非常炎热的情况下,您必须进一步打高尔夫球。 (例如,在一个挑战中,您的答案长达100个字符,而您无法将其设为99则令人尴尬) 在这种情况下,从现在开始,您将使用该挑战者的获胜者算法:) 目标 您必须编写一个使用uint32并返回最压缩形式的程序。 $ mathpack 147456 9<<14 一个数字将有多种解决方案。选择最短的一个 如果压缩后的格式大于或等于原始编号,请返回原始编号 规则 用任何语言编写-以任何语言输出 我知道在C语言'abc'中6382179,使用此转换可以达到很好的效果。但是在挑战中语言是分开的,所以不要灰心 禁止使用外部变量。仅运算符,文字和数学相关函数! 得分 这是测试用例:pastebin.com/0bYPzUhX 您的分数(百分比)将是byte_size_of_your_output / byte_size_of_the_list 没有换行符的比率。 (您必须自己做,因为我会验证最佳代码,以防万一) 获胜者将由得分和输出语言选择! 例子: $ mathpack 147456 | mathpack 97787584 | mathpack 387420489 9<<14 | 9e7^9e6 | pow(9,9)

12
列出一组元素的组合
给定一组n元素,挑战在于编写一个函数,该函数列出k该集合中所有元素的组合。 例 Set: [1, 7, 4] Input: 2 Output: [1,7], [1,4], [7,4] 例 Set: ["Charlie", "Alice", "Daniel", "Bob"] Input: 2 Output ["Daniel", "Bob"], ["Charlie", "Alice"], ["Alice", "Daniel"], ["Charlie", "Daniel"], ["Alice", "Bob"], ["Charlie", "Bob"] 规则(已编辑) 您可以选择输出的顺序。 输入可以是任何类型的数据。但是输出应与输入的类型相同。如果输入是整数列表,则输出也应该是整数列表。如果输入是字符串(字符数组),则输出也应该是字符串。 该代码应与任意数量的输入变量一起使用。 您可以使用任何编程语言。 答案也应该能够使用任何东西(字符串,整数,双精度数...)作为输入和输出。 禁止与组合和排列有关的任何内置函数。 最短的代码获胜(以字节为单位)。 决胜局:票。 时间:1周。 PS请注意极端输入,例如负数,0等。
10 code-golf 

1
有多少个数独谜题?
这不是Sudoku求解器,也不是Sudoku检查器。 您的挑战是编写一个函数或脚本,作为输入,它提供2D Sudoku拼图的“块”大小(对于经典9x9板为3 ,对于16x16板为4 ,等等),将计算出该数字的近似值针对该大小存在的不同难题(解决方案)。 例如,在给定输入3的情况下,您的程序应该以期望的精度打印数字6,670,903,752,021,072,936,960的近似值,这是已知的9x9 Sudoku数独难题的已知数量,或者在考虑到各种对称性时为5,472,730,538。您的解决方案应说明是计算对称性还是忽略对称性。 “所需的精度”没有定义:您的程序可能运行给定的时间,然后输出结果,或者将其计算到给定数量的有效数字,甚至永远运行,从而打印出越来越好的近似值。关键是应该有可能使其在有限的时间内以任何所需的精度计算结果。(因此,“ 42”是不可接受的答案。)将结果的精度限制在可用的机器浮动范围内是可以接受的。 不能访问在线资源,不能在文件名中存储源代码,等等。 PS:我知道这是一个难题(如果我没记错的话,请填写NP。)但是这个问题只是在寻求一个近似的统计解决方案。例如,您可以尝试满足一个(或两个以上)约束的随机配置,计算其中存在多少约束,然后检查获得满足所有三个约束的难题的频率。对于小尺寸(确定为size = 3,可能为4),这将在适当的时间内起作用,但是该算法应该足够通用,以适合任何尺寸。 最好的算法获胜。 PS2:我从“代码高尔夫”更改为“代码挑战”,以更好地反映问题的难度并鼓励采用更聪明的解决方案,而不是笨拙但效果良好的解决方案。但是由于显然“最佳算法”尚不清楚,所以让我尝试正确定义它。 给定足够的时间并且不考虑常量因素(包括CPU和解释器速度),或者等效地考虑它们的无症状行为,哪种解决方案将以最快的速度收敛到准确的结果?

3
这些是我的幸运骰子[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 2年前关闭。 实现一个程序或函数,以模拟角色扮演游戏的普通骰子。它至少应处理最常见的两个骰子d6和d20。 但是,它应该像定型游戏玩家期望的那样工作,而不是像真正的骰子那样工作。 这是玩家之间的一个玩笑,一个人可以为非常非常重要的掷骰而特别幸运地掷骰子,方法是预先掷出很多骰子,选择那些结果为“ 1”的骰子,然后再次掷出它们,直到获得一些将其多次滚动为“ 1”。然后,您要仔细保存它们,因为它们顺序滚动了1次,因此下次滚动1的可能性应该非常低。 当然,这不是骰子在现实生活中的工作方式,因为掷骰在统计上是独立的。 您模拟的骰子必须考虑先前的掷骰,并且其工作方式与赌徒谬论中的赌徒期望其运作的方式类似。例如,如果滚动了很多低数字,则应该增加滚动更高数字的可能性。 但是,由于这是作弊行为,因此必须将其隐藏起来。这意味着,随意浏览该程序不应显示出您被骗。这意味着,显式地保存先前的结果并在每次抛出时都读取它们将太可疑。您必须隐藏骰子的这种“属性”,如果您将其合理化,并且将其伪装成诚实的错误,则可以隐藏奖励积分。(例如,您制作带有“意外”缺陷的RNG) 选民们,请考虑一下这个“缺陷”的隐藏程度。 程序应清晰无误。在经过混淆的程序中隐藏邪恶的代码太容易了。

10
将字节数组转换为base64
您的任务是编写一个将字节数组(即:从0到255的整数数组)转换为base64的函数/程序。 不允许使用内置的base64编码器。 所需的base64实现是RFC2045。(使用“ +”,“ /”和带有“ =”的强制填充) 最短的代码(以字节为单位)获胜! 例: 输入(int数组): [99, 97, 102, 195, 169] 输出(字符串): Y2Fmw6k=

2
机器人!收集这些泡菜!
我似乎有点不高兴。从字面上看。我把一堆泡菜放在地板上,现在它们都散落了!我需要你来帮助我收集它们。哦,我是否提到我要指挥一堆机器人?(它们也分散在各处;我真的很难组织事情。) 您必须以以下形式输入: P....... ..1..2.. .......P ........ P3PP...4 .......P 即,多行.,P(点名)或数字(机器人的ID)。(您可以假设每行的长度相等,并用.。填充。)您可以将这些行作为数组输入,或者从STDIN中吸取,或者读取以逗号分隔的单行,或者读取文件,或者执行任何操作喜欢接受输入。 您的输出必须采用n行的形式,其中n是最高的机械手ID。(机器人ID始终从1开始是连续的。)每行将包含由字母L(左),R(右),U(上)和D(下)组成的机器人路径。例如,这是该难题的示例输出: LLU RDR LRRR D 也可以是 LLU RDR LRRR D 要么 ["LLU","RDR","LRRR","D"] 或任何您想要的格式,只要您能说出解决方案应该是什么即可。 您的目标是找到最佳输出,这是步骤最少的输出。步数被视为所有机器人的最大步数。例如,上面的示例包含4个步骤。请注意,可能有多种解决方案,但是您只需要输出一种即可。 得分: 您的程序将与5个(随机生成的)测试用例一起运行。 您必须添加每次运行的步骤,这就是您的分数。 最低的累计分数将获胜。 您可能没有为这些特定输入进行硬编码。您的代码也应适用于任何其他输入。 机器人可以相互穿过。 您的程序必须是确定性的,即每次运行都具有相同的输出。您可以使用随机数生成器,只要它是种子并且可以跨平台一致地生成相同的数字即可。 每个输入的代码必须在3分钟内运行。(最好少得多。) 如果平局,大多数投票将获胜。 这是测试用例。它们是用我写的一个小的Ruby脚本随机生成的。 P.......1. .......... P.....P... ..P....... ....P2.... ...P.P.... .PP..P.... ....P....P PPPP....3. .P..P.P..P ....P..... P....1.... .P.....PP. .PP....PP. .2.P.P.... ..P....P.. .P........ …

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.