编程拼图和代码高尔夫

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

1
归一化我的决策图
编写处理文本块并返回新文本的函数或程序。最小的有效程序获胜。 文本块中的每一行将具有以下格式: 12:34,56 第一个数字是行ID,其他两个逗号分隔的数字是对其他行的引用。 在输入文本中,数字可以是大于或等于0的任何整数。所有数字将以ASCII编码的十进制表示,且不带前导零。不会有重复的行ID。尽管可能存在未引用的行ID,但不会引用不存在的行ID。 在输出文本中,编号最小的行将移至文本块的开头,并重新编号为0。对此行的所有引用也必须更新。该行上的第一个引用必须为0或1。如果第一个引用为1,则第二个引用只能为2。否则,它必须为0或1。 所有行必须按升序,升序排列(没有跳过的数字)。如果先前已有对第n-1行的引用或当前行ID为n,则只能对第n行进行引用。除第0行外,不得存在所有未由低行ID引用的行。必须在最终输出之前删除所有此类行。 您可以假设输入文本始终采用正确的格式。 测试输入1: 45:73,24 78:24,78 89:24,73 73:45,3 72:3,24 3:24,24 24:3,89 重新排序: 3:24,24 24:3,89 89:24,73 73:45,3 45:73,24 78:24,78 72:3,24 重新编号: 0:1,1 1:0,2 2:1,3 3:4,0 4:3,1 78:1,78 72:0,1 删除未引用的行以最终输出: 0:1,1 1:0,2 2:1,3 3:4,0 4:3,1 当然,您的程序不必遵循此顺序,只需产生正确的输出即可。输出必须是单个文本块或您所用语言中最接近的等价文本,即没有直接字符输出。您可以返回它(首选),也可以直接输出整个块。假设您的输出将传递给另一个函数或程序。 测试输入2 5:2,3 7:3,2 2:4,2 4:2,3 3:4,3 输出: 0:1,0 1:0,2 2:1,2 测试输入#3 …
11 code-golf 

4
晦涩难懂
您应该使用以下语言完成四项任务: 在此(codegolf.se)网站上搜索时,不得返回任何结果*,例如ToffeeScript; 必须在Esolang,Rosetta Code或Wikipedia上列出页面; 是一种独特的语言,而不是独特的版本(例如,如果python满足前两个条件,则python 2.1将是有效的)。 *例外情况是对ToffeeScript的打击。 您应该完成的四个任务是: 1)用推文(<140个字符)描述/宣传所选语言。 2)打印“ Hello World!这是用<programming language name>。写的。” 3)打印用户指定范围内的所有奇数。(例如,20 25应返回的标准输入21 23 25)。 4)编写一个您觉得最能说明所选语言有趣功能的程序。 得分: 这是一次人气竞赛 如果在以上两个目录中列出了10点的奖励,如果在所有三个目录中列出了25点的奖励。 得分是2015年7月1日午夜UTC收到的票数加奖金的总和。 说明: 任务1)可以是可发布消息的程序,但纯文本也是可以接受的。 许多语言没有现有的口译员。解决这些问题的方法很好,但是将本着诚意采取。 选择语言的第二个条件是禁止在其发布之后创建日期的页面。如果对于给定的语言X,Rosetta Code中存在问题的解决方案,但是在某处没有自己的独特页面,则仍然可以接受。

12
CodeGolf-Barry凌乱的开发人员#2
这是CodeGolf的后续 内容-忽略噪音#1 唯一的问题是Barry使我们变得更糟。让我们来看看发生了什么 更新资料 我添加了代码以创建随机输入和期望的输出,因为我不太擅长解释我想要的内容,而且我猜有时候单词比代码更具误导性(不是总是这样吗?) 描述 Dumb Corp API中的另一种方法可以使我们提供程序为项目提供的当前价格,可以实现最大销售的最优价格以及该价格与字符串UP或之前价格相比的趋势DOWN。我们需要决定是否应该从商店中删除商品或等待。 输入值 80,90,UP 150,100,DOWN 65,65,UP 1618,1618,DOWN 840,1200,DOWN 54,12,UP 30,1,UP 对于具有预期输出的巨大输入示例演示,请将以下代码(js)放入浏览器控制台,它应输出有效的随机输入以进行测试。 var output = ""; var result = ""; for(i=10;i--;){ var currentPrice = Math.floor(Math.random() * 10000) + 1; var optimalPrice = Math.floor(Math.random() * 10000) + 1; var tendency = Math.round(Math.random())?"UP":"DOWN"; var tresult = …

2
寻找保利尼莫!
不好了!Nemo,我们的小小丑鱼在这个ASCII海洋中迷路了,他的父亲Marlin试图找到他。 您的任务是让Marlin安全地到达Nemo。但是要当心,我们在宽松的状态下有疯狂的布鲁斯,所以最好不惜一切代价避免他! 细节 您将获得一个仅包含小写字母的矩形ASCII海洋网格a-z。该海洋将具有nemo,marlin并bruce以连续多米诺的形式存在于其内部,始终从多米诺第一列的最顶部单元开始。因此,例如,在所有可能的Tetromino中,有效片段在下面的代码段中列出 显示代码段 nemo n e m o no em ne om nem o o nem n e mo o m ne ne m o n emo ne mo n em o mo ne 运行代码段隐藏结果展开摘要 但是这样的形式是无效的,并且不会出现在输入中: omen ne mo nem o o m en nem o n eo …

11
火箭机器人KOTH
火箭机器人 那一年是3024年。人们已经变得资源稀缺,无法在战争中冒险,因此战斗已经转移到了机器人身上。您的任务是构造一个与众不同的机器人,该机器人的火箭将摧毁敌人的敌人,击落所有即将到来的威胁。 游戏玩法 机器人 游戏玩法在10x15的网格上进行。您的机器人位于底部边缘之外,并且在网格的位置6,7和8处具有三个插槽。您的对手位于网格的顶部,在您的对面有三个插槽。 火箭队 从任何一个插槽中,您都可以发射火箭,前提是该插槽尚未销毁。火箭由创建时给出的方向列表组成,一旦发射,这些方向就无法更改。每转一圈,火箭将消耗列表的顶部,并朝该方向移动。火箭同时移动。如果两枚火箭以相同的砖块结尾,它们都会爆炸。如果火箭用完了命令,它将爆炸。如果火箭用尽燃料,则在移动100次后会爆炸。火箭爆炸时,它将在该磁贴中保留5圈,从而导致其他任何在那里移动的火箭也爆炸。 注意: 由于同时运动,两个火箭可以彼此通过而不会爆炸,只要它们不都在相同的瓦片中结束转弯即可。 目标 每场比赛的目的都是在保持对手生存的同时消灭对手的位置。可以从您拥有的任何活动插槽中发射火箭,并在发射前为其指定路径。您每转一圈发射一枚火箭,这意味着火箭将移动两次,然后再发射另一枚。决斗持续200回合,或者直到一个机器人插槽全部被破坏。 计分 比赛结束时,您每拥有一个实时角子机就获得1分,而您摧毁的每个对手角子机则得到1分。这意味着这是一场零和游戏,每场比赛将获得6分。 轮循将运行,以便每个机器人都彼此面对一次。如果有任何机器人使用RNG,则每个对决将是1000次对决。 实作 比赛代码可以在这里找到:https : //github.com/Cain93/RocketBots 每次提交都应扩大Bot班级。您必须重写该fireRocket方法。此方法接收Rocket[][]代表游戏板的Rockets的网格数组。你总是位于网格的底部,与斑点插槽[-1][6],[-1][7],[-1][8]。在网格上,未占用的地点将用表示null。如果磁贴中存在火箭,则可以通过访问该dis字段来识别它属于谁。“ ^”是您的火箭,“ v”是您的对手。 您必须返回一个给出了火箭说明的整数链接列表。要向上移动,请使用0。要向上和向右移动,请使用1,就在右边,使用2,依此类推,一直到7向上和向左。火箭将按您推动整数的顺序移动。例如,以下代码将使火箭向上旋转几圈,使之弯曲几圈,然后爆炸。 LinkedList<Integer> moves = new LinkedList<Integer>(); moves.push(0); moves.push(0); moves.push(0); moves.push(1); moves.push(7); moves.push(1); moves.push(7); 要更改从哪个插槽发射火箭,请更改curSlot字段。0是您最左边的插槽,2是您最右边的插槽。要检查插槽是否已损坏,请使用getSlot(int slotNumber)。 如果火箭在插槽上结束转弯,则该插槽将被销毁。您无需手动引爆火箭。 注意:火箭在发射出的插槽位置生成,但在评估碰撞之前会移动一次。因此,如果您从插槽0发射火箭,而第一步是正确的(2),那么您将摧毁自己的中间插槽。但是,向上和向右(1)是安全的举动。 如果要命名您的机器人,请覆盖该name()方法。 机器人将为每个决斗重新构建,因此所有静态变量都将被重置。 祝好运! 愿您的火箭真实飞行,而您的对手不过是闷烧的金属碎片。 暗示: 与试图击落对手的火箭相比,有目的地引爆火箭以产生爆炸是一种更容易防御的防御方法。 机器人例子 package bots; import java.util.LinkedList; import …

7
简单的Pazaak(旧共和国骑士团的《星球大战》纸牌游戏)
Pazaak是来自《星球大战》世界的纸牌游戏。它与BlackJack相似,两名玩家互相争夺,试图在不超过20名的情况下达到20名。每个玩家都有自己的四张牌的“副牌”,可以用来修改得分。 排行榜 截至2015年6月17日格林尼治标准时间16:40 编辑:Neptor被取消作弊资格。分数将尽快修复。 NEPTR:〜424,000 辛辛那提小子(Cincinnati Kid):〜422,000 内斯特:〜408,000 奥斯丁力量:〜405,000 巴斯蒂拉:〜248,000 愚蠢的谨慎玩家:〜107,000 傻大胆的玩家:〜87,000 模拟帕扎克杯季后赛 将尽快更新。 第一回合-内斯特vs巴斯蒂拉&奥斯汀·鲍尔斯vs辛辛那提小子 第二轮-内斯特vs奥斯汀·鲍尔斯&辛辛那提小子vs巴斯蒂拉 机械学 游戏是依次进行的。从主(房屋)副牌中拿出一张牌。娱乐场甲板可容纳40张牌:1到10的四份副本。发牌后,他们可以选择结束自己的回合并在下一回合接收新牌,保持其当前值,或者从侧甲板和站在新的价值上。玩家一决定他们想做什么之后,玩家二重复该过程。 一旦两个玩家都走了,手就被评估了。如果一个玩家被炸开了(超过20个),则另一名玩家将获胜,前提是他们也没有被炸开。如果一位玩家选择站立,而另一位玩家的手牌价值更高,则另一位玩家将获胜。如果两个玩家都选择站立,则手牌价值较高的玩家将获胜。如果出现平局,则任何玩家都不会赢。 如果不满足获胜条件,比赛将重复进行。如果玩家选择结束回合,则他们将收到一张新卡并且可以做出新选择。如果他们选择站起来,或者从侧甲板打出了一张纸牌,他们将不会获得新的纸牌,也无法选择新的动作。 这样继续游戏,直到一名玩家赢得比赛。游戏以五组中的三组中的最佳状态进行。 为什么选择“简单” Pazaak? 在《星球大战》世界中,Pazaak参与赌博。虽然包含这样的系统会为游戏增加更多的动态性,但是对于首次参加KoTH比赛来说,这有点复杂。 “真实” Pazaak侧甲板也由玩家自己提供,可以包括许多不同的牌选择,例如负牌,正负牌,翻牌,双牌和决胜局牌。这些也将使游戏变得更有趣,但是将需要一个赌博界面,并且将需要更多的竞争对手。在这个简单的Pazaak游戏中,每个玩家都拥有相同的侧甲板:从1到5的两个副本,从中随机选择四个。 根据游戏的成功程度,我可能会努力开发一个高级版本,在该版本中可以进行赌博和自定义侧甲板。 玩家们 该游戏的玩家将是您设计的机器人。每个漫游器都需要扩展Player类,导入Mechanics包并驻留在player包中,如下所示: package Players; import java.util.Collection; import Mechanics.*; public class DemoPlayer extends Player { public DemoPlayer() { name = "Your Name Here"; } …

2
医生,我们螺旋式上升!
为了逃避达莱克部队的努力,医生决定将它们以螺旋运动在各个空间移动,从而使其旋转。 根据可用时空的性质,医生需要进入TARDIS,控制空间部分的高度和宽度以及开始螺旋的入口点。 可以将空间的一部分想象成一个h x w的网格,从左到右,从上到下,从1开始填充连续的整数。 起始位置以rc的形式提供给行和列...从这开始,TARDIS的软件需要吐出从r列c沿逆时针方向向外螺旋地向上获得的整数的有序列表。 作为Doctor的助手,您的任务是对TARDIS进行编程,使其采用以下格式的四个数字,height width row column并确定TARDIS需要移动哪个空间区域以匹配下面描述的螺旋运动... 输入1 5 5 3 3 (5 x 5格,从位置3,3开始) 输出1 13 8 7 12 17 18 19 14 9 4 3 2 1 6 11 16 21 22 23 24 25 20 15 10 5 解释输出 原始网格 产生螺旋 输入2 2 4 …
11 code-golf 

4
长度为n的魔术序列
魔术序列的非负整数序列x[0..n-1],从而有确切x[i]的情况下,i 例如,6,2,1,0,0,0,1,0,0,0是一个魔术序列,因为有6个0、2个1等。 编写一个函数,当给定n时,输出长度为n的所有魔术序列 可以在10秒内获得n最大值的正确输出的程序。(尽管欢迎所有程序) 例如,爱丽丝的程序可以在10秒内处理多达n = 15,而鲍勃的程序可以在同一时间内处理多达n = 20。鲍勃赢了。 平台:Linux 2.7GHz @ 4 CPU

1
调整光栅化文本的大小,使其看起来没有像素化
这是在文本编辑器中键入的一些文本的屏幕截图: 这是较大尺寸的相同文本。 请注意,在带有明显对角线笔划的字母(例如和)上,锯齿现象是显而易见的。此问题是光栅字体无法普及到TrueType等“可缩放”格式的主要原因。xz 但这可能不是光栅字体固有的问题,只是通常实现缩放字体的方式。这是使用简单的双线性插值结合阈值的替代渲染。 这比较平滑,但并不理想。对角线笔触仍然凹凸不平,弯曲的字母像c和o仍然是多边形。这在大尺寸情况下尤其明显。 那有更好的方法吗? 任务 编写一个带有三个命令行参数的程序。 resize INPUT_FILE OUTPUT_FILE SCALE_FACTOR 哪里 INPUT_FILE是输入文件的名称,假定它是在白色背景上包含黑色文本的图像文件。您可以使用任何方便的主流栅格图像格式(PNG,BMP等)。 OUTPUT_FILE是输出文件的名称。它可以是栅格图像或矢量图像格式。如果要执行类似ClearType的子像素渲染,则可以引入颜色。 SCALE_FACTOR是一个正浮点值,指示可以调整图像大小的大小。给定x × y px输入文件和缩放因子s,输出将具有sx × sy px 的大小(四舍五入为整数)。 您可以使用第三方的开源图像处理库。 除了您的代码外,请使用我的第一张图片作为输入,以1.333、1.5、2、3和4的比例因子包含程序的示例输出。您也可以尝试使用其他字体,包括按比例隔开的字体。 计分 这是一次人气竞赛。投票数量减去投票数量最多的条目将获胜。如果出现平局,则以较早的参赛者为准。 编辑:由于缺少条目而延长了截止日期。待定。 鼓励选民首先根据输出图像的外观进行判断,其次基于算法的简单/优雅。

6
最大串联产品
给出了一个整数列表p1,...,pk(不一定是不同的),其中每个值的范围都在1到9之间(含1和9)。仅使用一次每个p1,...,pk,我们就可以形成数字的级联,以获得一个新的数字列表;然后,我们输出此新列表的产品。目的是通过选择最佳的数字级联来最大化此乘积。 例如,我们得到以下列表:2 3 2(用空格分隔)。我们可以形成以下串联: 2 3 2(这些串联的乘积是12) 23 2(商品是46) 32 2(商品是64) 22 3(商品是66) 因为我们可以形成的最大乘积是66,所以我们将其输出。 规则: 必须至少有一个乘法(即,您不能只连接所有数字并输出)。 除乘法或插入括号等外,不能使用任何其他运算符。 假定给定的整数列表由空格分隔,并且所有整数的值都在1到9之间。 最短的代码(以字节为单位)获胜! 测试用例: 输入:1 2 3; 输出:(63即21*3) 输入:2 5 9; 输出:468(52*9) 输入:1 2 3 4; 输出:1312(41*32)

2
数独的Y翼策略
我最近获得了一个新的Sudoku应用程序,该应用程序可以生成非常难的Sudoku,这无法使用标准策略来解决。所以我必须学习一些新知识。这些策略之一是Y翼策略。它被列为“艰难策略”,但实际上并不难。 例 对于此策略,只有4个单元很重要。因此,我忽略了图像中的所有其他单元格。 我们查看每个单元的所有候选。在以下示例中,我们有一个包含候选对象的单元格3 7(这意味着我们已经拒绝了这些候选对象1 2 4 5 6 8 9,例如,因为1在同一行中有一个2,在同一3x3框中有一个...),一个具有候选对象的单元格6 7,有候选人3 6的牢房和有候选人的牢房2 6。Y翼策略将建议,6可以将其从彻头彻尾的单元格的候选项中删除,只留下一个可以2作为填充项的候选项。因此,我们找到了一个正确的数字,并且在解决完整数独问题上又迈进了一步。 为什么可以将6其删除? 说明 让我们假设,对于6正确的单元格,正确的数字是。现在6在此列中有一个,因此我们可以6从右上方单元格的候选项中删除,仅留下一个7,我们可以填写。左下方单元格也是如此。我们可以删除6并填写3。现在,如果我们看一下左上方的单元格,就会发现矛盾。因为现在7在同一行和3同一列中已经有一个,所以我们可以删除的7和3,而根本没有任何候选人。这显然是不可能的。因此,6不能是正确的直立单元格数。 更精确地讲:如果我们有4个具有候选对象的单元格[A B] [A C] [C D] [B C](按此顺序或循环旋转),并且这些单元格(通过相同的行,相同的列或相同的3x3框)连接成一个圆(单元格1连接到了单元格2,连接到单元3,该单元3已连接到单元4,该单元4已连接到单元1),那么您可以C从该[C D]单元中卸下它。这是至关重要的,这三个细胞[A B],[A C]并且[B C]只包含各两名候选人。不同地,该单元[C D]可能包含更多或更少(D可以是零,一个或什至更多个候选)。 请注意,我明确表示可以使用任何一种方式进行连接。在下一个示例中,您可以看到策略再次被应用。但是这次这4个单元格没有形成矩形。左下和右下单元格是简单连接的,因为它们位于同一3x3框中。Y-Wing说,我们可以删除1左上单元格的as候选。这次,该单元格中还剩下2个候选者,因此我们实际上没有找到新的正确数字。但是尽管如此,1罐的拆除为不同的策略打开了大门。 如果您需要有关该策略的更多信息或更多示例,请访问sudokuwiki.org。 挑战规格 您将收到4个列表作为输入,代表这些单元格的候选项。四个单元以圆形连接(单元1连接到单元2,单元2连接到单元3,单元3连接到单元4,单元4连接到单元1)。您可以假定每个列表都按升序排序。 您的工作是通过应用Y翼策略删除一名候选人,并以相同的顺序返回结果候选人列表。如果您无法应用该策略,则只需返回相同的候选人列表即可。 如果有两种可能的解决方案(您可以删除单元格B的A或删除单元格D的C),则只返回一个解决方案。哪一个都没关系。 输入可以是任何本机列表或数组格式。您还可以使用列表列表或类似内容。您可以通过STDIN,命令行参数,提示或函数参数接收输入,并通过返回值或简单地通过打印到STDOUT返回输出。 这是代码高尔夫球。最短的代码(以字节为单位)获胜。 测试用例 [3 7] [6 7] [2 6] [3 6] => [3 7] …
11 code-golf  sudoku 

3
重访Matrix属性X(或X的Joy)
这一挑战部分是算法挑战,部分是优化挑战,部分仅仅是最快的代码挑战。 AT矩阵由其第一行r和第一列完全指定c。矩阵的每个剩余元素只是该元素在对角线上方和左侧的一个副本。那是M[i,j] = M[i-1,j-1]。我们将允许非正方形的T矩阵。但是,我们始终假定行数不超过列数。例如,考虑下面的3×5 T矩阵。 10111 11011 11101 如果矩阵包含两个具有相同索引(向量)和不同索引的非空列,则该矩阵具有属性X。一列或多列的向量和只是其列的逐元素求和。那是包含x元素的两列或更多列的总和,每列是包含元素的另一列x。一列的总和等于列本身。 上面的矩阵平凡地具有属性X,因为第一列和最后一列相同。单位矩阵从不具有属性X。 如果我们只删除上面矩阵的最后一列,那么我们将得到一个不具有属性X且得分为4/3的示例。 1011 1101 1110 任务 任务是编写代码以找到得分最高的T矩阵,该矩阵具有二进制条目,并且不具有属性X。为清楚起见,具有二进制条目的矩阵具有其每个条目均为0或1的属性。 得分了 您的分数将是数字列除以最佳得分矩阵中的行数。 决胜局 如果两个答案得分相同,则第一个提交者获胜。 在(极不可能)的事件中,如果有人找到获得无限分的方法,则将接受这种解决方案的第一个有效证明。在更不可能的情况下,您可以找到有限矩阵的最优性证明,我当然也会获奖。 暗示 查找没有属性X的最高得分矩阵的所有答案在此处均有效,但不是最佳答案。有T个不具有属性X的矩阵,它们不是循环的。 例如,有一个7 x 12 T矩阵,没有属性X,但没有这样的循环矩阵。 21/11将击败当前和之前挑战带来的所有答案。 语言和图书馆 您可以使用任何具有免费编译器/解释器/等的语言。适用于Linux以及任何可免费用于Linux的库。 奖励得分大于2的第一个答案将立即获得200点赏金奖励。Ton Hospel现在已经做到了! 现任排行榜 C ++。Ton Hospel得分31/15 Java。彼得·泰勒(Peter Taylor)得分36/19 哈斯克尔。亚历山大·布雷特得分14/8

3
环绕子序列
介绍 在这个挑战中,您的任务是找到字符串的广义子序列。子序列不一定是连续的,它们也可以“环绕”字符串,越过字符串的末端并从头开始。不过,您将需要尽量减少换行次数。 更正式地说,让u并且v是任意两个字符串和k ≥ 0一个整数。我们说u是k,计量子的v,如果有不同的指标,从而,在大多数指标的满足。这意味着可以在内部找到,方法是从左到右,在途中选择其某些字符,然后最多包装(等效地,最多扫描一次)。请注意,即使重新包装后,也不能选择一个以上的字符,而且-wrapping子序列恰好是我们都熟悉的普通子序列。i1, i2, ..., ilen(u)u == v[i1] v[i2] ... v[ilen(u)]kijij > ij+1uvkk+1v0 任务 您的输入是两个非空的字母数字字符串u和v,而您的输出是最小的整数k,因此u是的k换行子序列v。如果不k存在,则输出为-1。 例 考虑输入u := xyzyxzzxyx和v := yxzzazzyxxxyz。如果我们开始寻找的字符u在v一个贪婪的方式,我们将环绕3次: yxzzazzyxxxyz >─x─────y────z┐ ┌─────────────┘ └y───────x────┐ ┌─────────────┘ └──zz─────x─y─┐ ┌─────────────┘ └──────────x──> 因此,正确的输出最多为3。请注意如何x选择最左边的字符一次,然后在第二次扫描中将其忽略,因为它无法重复使用。但是,存在一种较短的方法,只有两个环绕: yxzzazzyxxxyz >──────────xyz┐ ┌─────────────┘ └yxzz────x────┐ ┌─────────────┘ └───────y─x───> 事实证明,仅一次环绕(即两次扫描)是不够的,因此正确的输出是2。 规则和奖金 您可以编写函数或完整程序,也可以根据需要更改输入顺序。最低字节数获胜,并且不允许出现标准漏洞。 在不到10秒的时间内计算所有测试用例,可获得-10%的奖励。我将在机器上测试不清楚的情况;我在Python中的参考实现大约需要0.6秒。我有一台使用1.86 GHz双核CPU的7年笔记本电脑,您可能要考虑到这一点。 测试用例 "me" "moe" -> 0 "meet" "metro" …

4
在Brainfuck中编码URL
受这个问题的启发,您今天的目标是用头脑风暴对URL进行编码。 我的浏览器被黑了!位置栏已经变成了一个让人烦恼的解释器。我需要一个将URL转换为“笨蛋”程序的程序。我的电脑也很慢,所以如果Brainfuck程序很小,那就更好了。 哦,我的Twitter上只有一个工作选项卡处于打开状态。因此,您只能通过推文向我发送该程序。 用任何以字符串作为输入并输出“脑力激荡”程序的语言编写适合于tweet(140个字符)的程序。 该Brainfuck程序将在没有输入的情况下运行,并将生成输出。 此输出将插入到Google Chrome浏览器的位置栏中,并执行。 如果Google Chrome的行为与您输入的#1输入字符串所获得的行为相同,则该解决方案有效。URL缩短程序的重定向被认为是不同的行为-至少保持在同一域中。 您可能会认为Brainfuck解释器在每个单元格中都有无限精度的有符号整数,并且单元格的数量不受限制。 您的分数取决于为编码以下URL集而生成的Brainfuck程序的总长度: https://www.google.com/ /codegolf/47895/ http://www.golfscript.com/golfscript/examples.html http://en.wikipedia.org/wiki/Percent-encoding ftp://ftp.freebsd.org/pub/FreeBSD/ https://github.com/isaacg1/pyth/blob/master/doc.txt#L92 http://ftp.gnu.org/non-gnu/nethack/nethack-3.4.0.tar.gz.back-RSN.README 得分最低者获胜。

8
生成一个Brainf_ck程序,该程序输出给定长度的字符串
您的朋友正试图闯入一个具有特殊锁定系统的保险库:它需要在特定位置轻敲几次。您的朋友发现了该号码(范围为1 ... 99999),并拥有一个可产生所需敲击声的小工具。但是,该小工具是Brainfuck解释器!因此,您的朋友需要为其提供一个Brainfuck程序,该程序显然应该尽可能短(小工具的I / O速度很慢)。 您的任务是帮助他!用任何语言编写一个程序或子程序,该程序或子程序接受数字作为输入N,然后输出Brainfuck程序,该程序不进行任何输入,而是输出一串可打印的ASCII字符(不包括空格字符-范围为33的代码... 126)的长度N。 示例:对于input 10,输出可能是 +++++++++++++++++++++++++++++++++.......... (但我可以确定可以缩短它!) 您的分数将是以下值N(它们是随机数)的输出长度的总和: 55 68 15 28 841 838 522 846 4898 9004 9363 3810 13230 67175 37231 44701 哦,您将通过Twitter将您的代码(生成器程序)传输给您的朋友。因此,请确保它不超过140个字符! PS Brainfuck语言有多种变体。假设磁带在两个方向上都是无限的(或“圆形且足够大”),并且这些单元具有32位int容量(有限,并且能够容纳高达99999的数字)。而且,无需包装:当单元溢出时,机器会自毁!

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.