Questions tagged «fastest-code»

最快的代码挑战的赢家取决于提交的运行时性能。为了公平起见,所有提交的文件都应在同一台计算机上进行基准测试,这通常意味着所有提交的文件都必须由挑战主机进行测试。要通过渐近时间复杂度进行评分,请改用[fastest-algorithm]。

3
计算匹配任何一组掩码的平衡二进制字符串
一个二进制字符串是只包含绘制字符的字符串01。甲平衡二进制串是包含完全一样多一个二进制串0 S作为1秒。 您会得到一个正整数n和任意数量的掩码,每个掩码的长度为2n个字符,并且仅包含从012绘制的字符。如果二进制字符串和掩码的长度相同,并且在掩码没有2的每个位置上的字符都相同,则匹配该字符串。例如掩模011022比赛的二进制串011000,011001,011010,011011。 给定n和掩码作为输入(用换行符分隔),您必须输出与一个或多个掩码匹配的不同平衡二进制字符串的数量。 例子 输入值 3 111222 000112 122020 122210 102120 推理 唯一匹配111222的平衡二进制字符串是111000。 唯一匹配000112的平衡二进制字符串是000111。 匹配122020的平衡二进制字符串为111000(已计数),110010和101010。 匹配122210的平衡二进制串是110010(已经计数),101010(已经计数)和100110。 匹配的平衡二进制字符串102120是101100和100110(已计数)。 所以输出应该是 6 输入值 10 22222222222222222222 推理 有20个选择10个长度为20的平衡二进制字符串。 输出量 184756 优胜者 获胜者将是计算比赛输入最快的人,当然会像对待其他输入一样对待它。(我使用确定的代码来获得明确的获胜者,并避免出现不同的输入将给不同的获胜者的情况。如果您想找到一种找到最快代码的更好方法,请告诉我。) 比赛输入 http://pastebin.com/2Dg7gbfV

3
快速分裂制造工厂
背景 Manufactoria已经作为一种游戏进行了营销,但是我们的代码高尔夫球手可以真正地看到它:二维编程语言。Manufactoria编程语言基于单个队列,其中包含一系列彩色标记。指令指针使用传送带在游戏板上移动,并且遇到一系列读写器,它们在队列中进行读取和写入。 该语言非常容易理解,因此学习该语言的最快方法是玩游戏的前几个级别(上面有链接)。 挑战 您面临的挑战是创建一个可以在最短时间内将一个数除以另一个数的程序。 程序的输入将是一串X蓝色标记,后跟Y红色标记。所需的输出将是一串红色标记,长度为X / Y。 在此正式比赛级别中找到了要使用的游戏板: http://pleasingfungus.com/Manufactoria/?ctm=Divide_and_Conquer;Input_will_be_X_blues_followed_by_Y_reds,_output_X/Y_reds;bbbbbbrr:rrr|bbbrrr:r|bbbbr:rrrr|r:|bbbbbbbbbbbbbbbbbbbbbbbbbbrr rrrrr; 13; 3; 0 它是13x13(最大尺寸),并且已预先配备了正确的测试(请参阅评分部分)。 计分 您的课程分数是该课程通过官方竞赛级别的所有测试所花费的总时间。总时间在级别完成屏幕上给出。 在运行测试时,您很可能必须使用左下角的50倍加速滑块才能快速接收结果(时间加速不会影响得分)。 这是测试中涉及的除法问题的列表: 6/2 = 3 3/3 = 1 4/1 = 4 0/1 = 0 12/4 = 3 12/3 = 4 9/3 = 3 10/2 = 5 示例I / O 12/3=4 in: BBBBBBBBBBBBRRR out: …

16
随机抽样,无需更换
创建一个函数,该函数将输出从一个范围中得出的一组不同的随机数。集合中元素的顺序无关紧要(甚至可以排序),但是每次调用函数时,集合的内容都必须不同。 该函数将以您想要的任何顺序接收3个参数: 输出集中的数量计数 下限(含) 上限(含) 假设所有数字都是0(含)到2 31(不含)之间的整数。可以将输出传递回任何您想要的方式(写入控制台,作为数组等)。 评判 条件包括3个R 运行时 -在Windows 7四核计算机上使用免费或易于使用的编译器进行了测试(必要时提供链接) 稳健性 -函数是否处理极端情况,或者陷入无限循环或产生无效结果-无效输入中的异常或错误有效 随机性 -它应该产生随机结果,使用随机分布很难预测。使用内置的随机数生成器就可以了。但是,不应有明显的偏差或明显的可预测模式。需要比Dilbert会计部门使用的随机数生成器更好 如果它是健壮且随机的,那么它就取决于运行时间。缺乏鲁棒性或随机性会极大地损害其地位。

12
写最快的斐波那契
这是有关斐波那契数的又一挑战。 目标是尽快计算第20'000'000 个斐波那契数。小数输出大约是4 MiB。它开始于: 28543982899108793710435526490684533031144309848579 输出的MD5总和为 fa831ff5dd57a830792d8ded4c24c2cb 您必须提交一个程序,该程序在运行时计算数量并将结果放入stdout。以我自己的机器衡量,最快的程序胜出。 以下是一些其他规则: 您必须提交源代码和可在x64 Linux上运行的二进制文件 源代码必须短于1 MiB,如果只有二进制代码那么小,则在汇编的情况下也可以接受。 即使以变相的方式,也不得在二进制文件中包含要计算的数字。该数字必须在运行时计算。 我的计算机有两个核心。您被允许使用并行 我从Internet上进行了一个小型实施,运行时间约为4.5秒。假设您有一个好的算法,那么克服这一挑战应该不会很困难。

1
计算真正独特的数组
这是对创建唯一集合的Count数组的跟踪。最大的区别是唯一性的定义。 考虑A长度数组n。该数组仅包含正整数。例如A = (1,1,2,2)。让我们将定义f(A)为的所有非空连续子数组之和的集合A。在这种情况下f(A) = {1,2,3,4,5,6}。产生步骤f(A) 如下: 的子阵列A是(1), (1), (2), (2), (1,1), (1,2), (2,2), (1,1,2), (1,2,2), (1,1,2,2)。它们各自的总和为1,1,2,2,2,3,4,4,5,6。因此,您从此列表中获得的集合是{1,2,3,4,5,6}。 如果没有其他相同长度的数组,则我们将数组称为A 唯一数组,除了反向数组。作为示例,但是没有其他长度数组会产生相同的和集。Bf(A) = f(B)Af((1,2,3)) = f((3,2,1)) = {1,2,3,5,6}3 任务 任务,对于给定n和s是计算该长度的独特阵列的数量。您可以假设s介于1和之间9。您只需要对元素为给定整数s或的数组进行计数s+1。例如,如果s=1您要计数的数组仅包含1和2。但是,唯一性的定义是针对相同长度的任何其他数组。举一个具体的例子[1, 2, 2, 2]是不是因为它提供了一组相同的款项的独特[1, 1, 2, 3]。 您应该计算数组的倒数以及数组本身(当然,只要数组不是回文)。 例子 s = 1,n = 2,3,4,5,6,7,8,9的答案是: 4, 3, 3, 4, 4, 5, 5, 6 对于s = …

2
Quarto中有多少次平局?
介绍 此挑战类似于欧拉计划问题。我之所以提出这个建议,是因为我在玩一个看似简单的棋盘游戏,却无法提出一个有效的解决方案来回答有关其机制的简单问题。 Quarto是连续4个有趣的变体。它在4 x 4板上演奏,有16个独特的乐段(没有乐段重复)。每位玩家每回合将1个棋子放在棋盘上。每块都有4个二进制特征(短/高,黑/白,正方形/圆形,空心/实心)。目标是针对四个特征中的任何一个,水平,垂直或沿2个对角线连续制作四个!因此有4个黑​​色块,4个白色块,4个高块,4个短块,4个正方形块,4个圆形块,4个空心块或4个实心块。 上图显示了完成的游戏,由于有4个正方形棋子,所以连续有四个。 挑战 在Quarto中,某些游戏可能以平局结束。 可能的最终头寸总数16!约为20万亿。 这些平局中有多少是平局? 规则 解决方案必须是一个程序,该程序计算并输出绘制的最终位置总数。正确答案是414298141056 您只能使用人工推导的游戏规则信息(无计算机辅助证明)。 可以对问题进行数学简化,但是必须在解决方案中(手动)进行说明和证明。 赢家是在CPU运行时间方面最优化的解决方案。 为了确定获胜者,我将在MacBook Pro 2.5 GHz Intel Core i7和16 GB RAM上运行每个报告的运行时间少于30m的解决方案。 提出与其他尺寸的电路板都兼容的解决方案没有任何加分。即使那会很好。 如果适用,您的程序必须在1分钟内在上述硬件上编译(以避免滥用编译器优化) 不允许默认漏洞 意见书 请发表: 该代码或指向该代码的github / bitbucket链接。 代码的输出。 您本地测量的运行时间 您的方法的说明。 最后期限 提交截止日期为3月1日,因此还有很多时间。

5
计算汉明距离序列的数量
等长的两个字符串之间的汉明距离是相应符号不同的位置数。 让P是长度为二进制串n和T是长度为二进制字符串2n-1。我们可以按从左到右的顺序计算到每个长度子字符串n之间的汉明距离,并将它们放入数组(或列表)中。PnT 汉明距离序列示例 让P = 101和T = 01100。从这对中得到的汉明距离的顺序是2,2,1。 任务 为了增加n起始位置n=1,请考虑所有可能P的长度对n和T长度对的二进制字符串对2n-1。有2**(n+2n-1)这样的对,因此有许多汉明距离序列。但是,这些序列中的许多序列将是相同的。任务是找到每个有多少不同n。 您的代码应为的每个值输出一个数字n。 得分了 您的分数是n您的代码在5分钟内到达我的计算机的最高分数。时间是用于总运行时间,而不是仅用于该时间n。 谁赢 得分最高的人获胜。如果两个或两个以上的人最终获得相同的分数,那么这是第一个获胜的答案。 示例答案 对于n从1到8最佳答案2, 9, 48, 297, 2040, 15425, 125232, 1070553。 语言和图书馆 您可以使用任何喜欢的语言和库。在可行的情况下,能够运行您的代码将是一件好事,因此,请尽可能提供有关如何在Linux中运行/编译代码的完整说明。 我的机器计时将在我的64位机器上运行。这是带有8GB RAM,AMD FX-8350八核处理器和Radeon HD 4250的标准ubuntu安装。这也意味着我需要能够运行您的代码。 领先的答案 11在C ++通过feersum。25秒 C ++ 11,作者:Andrew Epstein。176秒。 10中的Javascript尼尔。54秒 nimi 在Haskell中的9。4分59秒。 8中的Javascript通过fənɛtɪk。10秒

2
税务史学家
介绍 有一个收税员在管理其王国的税收时遇到了一些麻烦:历史记录已在大火中燃烧。 他想找出从现有资金继承的角度来看可能有多少过去。幸运的是,他的王国很简单。 王国可以用2D布尔矩阵建模,其中l代表已继承货币的O人,而未继承货币的人。例如: l O l l O O O l l O l O O O O l (它将始终是一个矩形) 在下一代中,王国变小了(狼很强!)。 下一代看起来像这样,叠加在上一代上(x是下一代后代的占位符) l O l l x x x O O O l x x x l O l O x x x O O O l 后代将着眼于那些直接身边的祖先(所以左上角x会看到{ l,O,O,O},称为未对齐的矩形街区) …

4
快速画线算法
任务是找到一种在16位整数数组中绘制水平线的方法。 我们假设一个256x192像素的数组,每个单词16个像素。一条线是一组(1)位的连续运行。行可以在任何单词的中间开始,也可以与任何其他单词重叠,并在任何单词之后结束;它们也可以以相同的词开头和结尾。它们可能不会继续到下一行。提示:中间单词很容易-只需写0xffff,但是边缘会比较棘手,因为处理同一单词的开头和结尾时会很麻烦。函数/过程/例程必须采用x0和x1坐标(指示水平起点和终点)以及y坐标。 我将自己排除在外是因为我自己为嵌入式处理器设计了几乎相同的算法,但是我很好奇其他人会如何处理它。使用相对较快的操作的加分点(例如,嵌入式计算机上64位乘法或浮点运算不是很快,但简单的移位就可以了。)
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.