Questions tagged «fastest-code»

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

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
构造正交对角希腊拉丁广场
考虑一个由Nx个N唯一元素组成的网格。每个元素都有一个字母(从A到第Nth个字母,包括端点)和一个数字(从1到N,包括端点)。因此,每个数字/字母对恰好在网格中一次。 您的工作是安排一个网格,以便: 每行,每列和对角线(包括换行)仅包含每个字母和数字一次。 通过包装,我的意思是 * * * # * * * # * * * # * * * # * * * * * * * * # 是对角线,以及碰到边缘的所有类似对角线。 一个示例5x5网格是: A1 B2 C3 D4 E5 C4 D5 E1 A2 B3 E2 A3 B4 C5 D1 B5 C1 D2 E3 …

2
X大于3,且X和Y之间至少相差2
我试图打败一些C ++。是否可以使这种情况更短? X > 3 & X - Y > 1 (当然,除了删除空白。) 所以,X至少4,但X >= Y + 2。 X和Y是[0,5]间隔中的整数。 我试图找到一些按位公式,但失败了。
11 code-golf  number  tips  c++  code-golf  popularity-contest  obfuscation  code-golf  c  code-golf  board-game  hexagonal-grid  code-golf  game  grid  code-golf  number  permutations  popularity-contest  math  graphical-output  number-theory  king-of-the-hill  code-challenge  compression  code-challenge  fastest-code  code-golf  math  ascii-art  animation  code-golf  popularity-contest  generation  counting  fastest-code  fastest-code  popularity-contest  image-processing  king-of-the-hill  code-golf  conversion  binary-tree  code-golf  math  number  rational-numbers  division  code-golf  restricted-source  hashing  atomic-code-golf  logic-gates  code-golf  function  code-challenge  puzzle-solver  ai-player  test-battery  popularity-contest  music  compression  code-golf  number  stack  atomic-code-golf  logic-gates  ascii-art  popularity-contest  code-golf  date  grid  code-challenge  game  code-golf  parsing  code-golf  math  geometry  sequence  popularity-contest  code-trolling  code-golf  string  restricted-source  code-golf  quine  king-of-the-hill  code-golf  math  code-golf  simulation  code-golf  ascii-art  code-challenge  sorting  optimization 

5
快速Topswops计算
从AZSPCS: 假设您有一个包含n张牌的卡组。每张卡包含一个从1到n的数字,并且每个数字恰好出现在一张卡上。您查看顶部卡上的数字-假设它是k-然后颠倒顶部k卡的顺序。您可以继续执行此过程-读取最高卡号,然后反转相应的卡数-直到最高卡为1。 编写最快的程序以计算给定卡座的冲销数量。请注意,如果您参加比赛,则不允许发布代码(因此,我不会发布代码)。

8
快速过滤大文件
面临的挑战是快速过滤大型文件。 输入:每行具有三个以空格分隔的正整数。 输出:所有输入线A B,T满足以下任一标准。 存在的另一个输入线C,D,U其中D = A和0 <= T - U < 100。 存在的另一个输入线C,D,U其中B = C和0 <= U - T < 100。 要制作测试文件,请使用以下python脚本,该脚本也将用于测试。它将生成1.3G文件。您当然可以减少测试的次数。 import random nolines = 50000000 # 50 million for i in xrange(nolines): print random.randint(0,nolines-1), random.randint(0,nolines-1), random.randint(0,nolines-1) 规则。当我在计算机上使用上述脚本在输入文件上测试时,最快的代码胜出。截止日期为首次输入正确时间后的一周。 我的机器时间将在我的机器上运行。这是在AMD FX-8350八核处理器上安装的标准8GB RAM ubuntu。这也意味着我需要能够运行您的代码。 一些相关的计时信息 在每次测试之前更新了计时以运行以下命令。 sync && sudo bash …

3
任意随机(速度版)
给定integer n,计算n范围1..n^2(含)范围内的一组随机唯一整数,以使该集合的总和等于n^2 在这种情况下,随机是指有效输出之间的一致随机。给定的每个有效输出n必须有统一的机会被生成。 例如,n=3应该有三分之一的机会的各个输出6, 1, 2,3, 5, 1或4, 3, 2。由于这是一个集合,所以顺序无关紧要,4, 3, 2等同于3, 2, 4 计分 赢家是可以n在60秒内计算出最高分数的程序。 注意:为防止可能的部分硬编码,所有条目必须小于4000字节 测试中 所有代码都将在我的本地Windows 10计算机上运行(Razer Blade 15、16GB RAM,Intel i7-8750H 6核,4.1GHz,GTX 1060,以防您滥用GPU),因此请提供详细说明以在以下位置运行代码我的机器。 根据要求,条目可以通过Debian在WSL上运行,也可以在Xubuntu虚拟机上运行(两者都与上述相同) 提交将连续运行50次,最终得分将是全部50个结果的平均值。

2
网格中最大的正方形[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 2年前关闭。 挑战 给定这样的网格 1 2 3 4 5 6 7 8 1 . . . . . . . . 2 . # . . . # . . 3 . . . . . . . . 4 . . . . …

2
计算OEIS A005434
任务是尽快计算OEIS A005434。 考虑一个S长度为string 的二进制字符串n。从索引1,我们可以确定是否完全S[1..i+1]匹配从到的顺序。例如,S[n-i..n]i0n-1 S = 01010 给 [Y, N, Y, N, Y]. 这是因为0matchs 0,01不匹配10,010matchs 010,0101不匹配1010 并最终01010匹配自身。 定义f(n)为Ys和Ns在2^n不同S长度的所有可能位字符串上迭代时得到的不同数组的数目n。 观察者会注意到这个问题是我最近另一个问题的一个简单的变体。但是,我希望巧妙的技巧可以使这一过程变得更快,更容易。 任务 为了增加n开头1,应该输出代码n, f(n)。 示例答案 对于n = 1..24,正确的答案是: 1, 2, 3, 4, 6, 8, 10, 13, 17, 21, 27, 30, 37, 47, 57, 62, 75, 87, 102, 116, 135, 155, 180, 194 …

1
滚来看看各个方面!
假设您有20面骰子。您开始滚动该骰子,并且必须滚动数十次才能最终滚动所有20个值。您想知道,我有多少卷才能有50%的机会看到全部20个值?n在滚动所有n面之前,我需要滚动几卷双面模具? 经过研究,您发现存在一个公式,用于计算滚动后所有值滚动的机会。nr P(r, n) = n! * S(r, n) / n**r 其中S(a, b)表示第二种斯特林数,是将一组n个对象(每个滚动)划分为k个非空子集(每侧)的方式的数量。 您还可以找到OEIS序列,我们称之为R(n),对应于最小的r,其中P(r, n)至少50%。面临的挑战是n尽可能快地计算此序列的th项。 挑战 给定一个n,找到最小的 r,其中P(r, n)大于或等于0.5或50%。 从理论上讲,您的代码应将任何非负整数n作为输入,但是我们将仅在范围内测试您的代码1 <= n <= 1000000。 对于进球,我们将采取运行所需的总时间R(n)上的投入1过10000。 我们将通过R(n)在输出中运行我们的版本来检查您的解决方案是否正确,以查看是否P(your_output, n) >= 0.5和P(your_output - 1, n) < 0.5,即您的输出实际上r是给定输出的最小值n。 您可以S(a, b)在解决方案中使用任何定义。Wikipedia有几个定义可能会对您有所帮助。 您可以在解决方案中使用内置函数,包括那些可以计算S(a, b)甚至P(r, n)直接计算的函数。 R(n)尽管这两个都不是硬性限制,但您最多可以对1000个值和一百万个斯特林数进行硬编码,并且如果可以说服您提高或降低它们,则可以更改。 你并不需要检查每一个可能的r之间n和r我们要找的,但你需要找到最小的r,不是任何r地方P(r, n) >= 0.5。 您的程序必须使用Windows 10上可自由运行的语言。 用于测试您的解决方案的计算机的规格为i7 4790k, 8 GB …

2
井字游戏,尽可能快地交叉
根据卢克的要求和彼得·泰勒(Peter Taylor)对此挑战的补充。 介绍 每个人都知道游戏井字游戏,但是在这个挑战中,我们将介绍一些小技巧。我们将只使用十字架。连续放置三个十字架的第一个人输了。一个有趣的事实是,有人输掉前最大的十字架数量等于6: X X - X - X - X X 这意味着对于3 x 3的面板,最大数量为6。因此,对于N = 3,我们需要输出6。 另一个示例,对于N = 4或4 x 4板: X X - X X X - X - - - - X X - X 这是一个最佳解决方案,您可以看到最大的十字架数量等于9。12 x 12板的最佳解决方案是: X - X - X - X X …

1
设置理论算术(+和*)
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 4年前关闭。 集合理论算术 前提 已经存在涉及不使用乘法运算符的乘法(这里和此处)的几个挑战,并且这个挑战是相同的(最类似于第二个链接)。 与以前的挑战不同,此挑战将使用自然数(N)的一组理论定义: 和 例如, 等等。 挑战 我们的目标是使用集合运算(请参见下文),以对自然数进行加法和乘法。为此,所有条目将使用其解释器在下面的相同“设置语言”。这将提供一致性并简化评分。 该解释器允许您将自然数作为集合进行操作。您的任务是编写两个程序主体(请参见下文),其中一个加上自然数,另一个自然将它们相乘。 集合的初步说明 集合遵循通常的数学结构。以下是一些要点: 集不排序。 没有集合包含自身 元素是否在集合中,这是布尔值。因此,集合元素不能具有多重性(即元素不能多次出现在集合中。) 口译员和细节 用于此挑战的“程序”以“设置语言”编写,并且由两部分组成:标题和正文。 标头 标头非常简单。它告诉解释器您正在解决什么程序。标题是程序的开始行。它以+or *字符开头,后跟两个以空格分隔的整数。例如: + 3 5 要么 * 19 2 是有效的标头。第一个表明您正在尝试解决3+5,这意味着您的答案应该是8。除了乘法之外,第二个相似。 身体 正文是您对口译员的实际指示所在。这才是真正构成您的“加法”或“乘法”程序的要素。您的答案将包含两个程序主体,每个任务主体一个。然后,您将更改标题以实际执行测试用例。 语法及指示 指令由一个命令后跟零个或多个参数组成。为了以下演示的目的,任何字母字符都是变量的名称。回想一下,所有变量都是集合。label是标签的名称(标签是单词,后跟分号(即main_loop:),int是整数。以下是有效的说明: 流量控制: jump label无条件跳转到标签。标签是一个“单词”,后跟一个分号:例如,main_loop:是一个标签。 je A label 如果A为空则跳转到标签 jne A label …

2
概率-您能走多高?
我之前曾问过一个问题,该如何快速准确地计算概率。但是,显然,提供封闭式解决方案太容易了!这是一个更困难的版本。 这项任务是关于编写代码以准确,快速地计算概率。输出应该是精确的概率,以最简化的形式写为分数。那是它永远不应该输出4/8,而应该输出1/2。 对于某个正整数n,请考虑一个长度为1s和-1s的均匀随机字符串,n并将其称为A。现在连接到A其自身的副本。那就是A[1] = A[n+1]从1开始索引,A[2] = A[n+2]依此类推。 A现在有长度2n。现在还考虑长度的第二随机串n,其第一n值是-1,0或1的概率是1 / 4,1 / 2,1/4每并调用它B. 现在考虑不同的Bwith 的内积。A[1+j,...,n+j]j =0,1,2,... 例如,考虑n=3。对于可能的值A,并B可能会A = [-1,1,1,-1,...]和B=[0,1,-1]。在这种情况下,前两个内积是0和2。 任务 对于每个j,从j=1您的代码开始,您的代码应该输出每个第一个j+1内积为零的概率n=j,...,50。 复制MartinBüttner生成的表,j=1我们得到以下示例结果。 n P(n) 1 1/2 2 3/8 3 7/32 4 89/512 5 269/2048 6 903/8192 7 3035/32768 8 169801/2097152 得分了 您的分数是j我的计算机在1分钟内完成的最大代码。为了澄清一点,每一个j都花一分钟。请注意,上一个链接的问题中的动态编程代码将很容易做到这一点j=1。 抢领带 如果两个条目获得相同的j分数,则获胜的条目将是n我机器上一分钟内得分最高的条目j。如果两个最佳作品在此标准上也相等,那么获胜者将是第一个提交的答案。 语言和图书馆 您可以使用任何喜欢的免费语言和库。我必须能够运行您的代码,因此请尽可能提供有关如何在Linux中运行/编译代码的完整说明。 我的机器时间将在我的机器上运行。这是在AMD FX-8350八核处理器上的标准ubuntu安装。这也意味着我需要能够运行您的代码。 获奖作品 j=2在Mitch Schwartz的Python中。 …

4
棋盘上的棋子太多
给定一个整数2n,找到在2n x 2n的棋盘上可以排列2n ^ 2个黑色棋子和2n ^ 2个白色棋子的可能方式的数量,这样就不会有其他棋子攻击对方。 黑色的棋子只能攻击白色的棋子,反之亦然。 遵循通常的棋牌进攻规则,即白色棋子在对角线前面立即攻击正方形,而黑色棋子在对角线后立即攻击正方形(如白色观察者所见)。 所有旋转,反射算作不同的。 可以在120秒内输出2n最大值的所有可能配置的程序将获胜。(尽管欢迎所有程序) 例如,爱丽丝的程序可以在120秒内处理n = 16,而鲍勃的程序可以在同一时间内处理n = 20。鲍勃赢了。 平台:Linux 2.7GHz @ 4 CPU

5
准确快速地计算概率
[这是一个精确计算概率的伙伴问题] 这项任务是关于编写代码以准确,快速地计算概率。输出应该是精确的概率,以最简化的形式写为分数。那是它永远不应该输出4/8,而应该1/2。 对于某个正整数n,请考虑一个长度为1s和-1s的均匀随机字符串,n并将其称为A。现在将A其串联为第一个值。就是说A[1] = A[n+1]从1 A开始的索引 现在具有length n+1。现在还考虑长度的第二随机串n,其第一n值是-1,0或1的概率是1 / 4,1 / 2,1/4每并调用它B. 现在考虑的内积A[1,...,n]和B和的内积A[2,...,n+1]和B。 例如,考虑n=3。对于可能的值A,并B可能会A = [-1,1,1,-1]和B=[0,1,-1]。在这种情况下,两个内积是0和2。 您的代码必须输出两个内积均为零的概率。 复制MartinBüttner制作的表,我们得到以下示例结果。 n P(n) 1 1/2 2 3/8 3 7/32 4 89/512 5 269/2048 6 903/8192 7 3035/32768 8 169801/2097152 语言和图书馆 您可以使用任何喜欢的免费语言和库。我必须能够运行您的代码,因此请尽可能提供有关如何在Linux中运行/编译代码的完整说明。 任务 您的代码必须以开头,n=1并在单独的一行上为每个递增的n提供正确的输出。10秒后应停止。 比分 分数只是在n计算机上运行10秒后代码停止之前达到的最高分数。如果平局,获胜者将是最快获得最高分的人。 条目表 n = 64在Python中。Mitch Schwartz的第1版 n = 106在Python中。版本Mitch …

3
超音波多米诺瓷砖
任务 编写一个程序,从STDIN或作为命令行参数读取三个整数m,n,打印出所有可能的矩形为m×n且由2×1和1×2 Domino组成的平铺,最后打印有效平铺的数量。 单个平铺的多米诺骨牌必须用两个破折号(-)表示2×1,用两个竖线(|)表示1×2的多米诺骨牌。每个平铺(包括最后一个平铺)都必须紧跟换行符。 出于评分目的,您还必须接受来自STDIN的标志或作为命令行参数的标志,该标志使您的程序仅打印有效拼贴的数量,而不打印拼贴本身。 您的程序不得超过1024个字节。它必须适用于所有输入,使得m×n≤64。 (灵感来自于打印所有4x6矩形的多米诺骨牌。) 例 $ sdt 4 2 ---- ---- ||-- ||-- |--| |--| --|| --|| |||| |||| 5 $ sdt 4 2 scoring 5 计分 您的分数取决于设置了标志的输入8 8的程序执行时间。 为了使此代码成为最快的代码,而不是最快的计算机挑战,我将在自己的计算机上运行所有提交的文件(英特尔酷睿i7-3770、16 GiB PC3-12800 RAM)以确定官方成绩。 请留下有关如何编译和/或执行代码的详细说明。如果您需要使用特定版本的语言的编译器/解释器,请对此声明。 如果发生以下情况,我保留不对提交内容进行评分的权利: 我的操作系统(Fedora 21,64位)没有免费的(如在啤酒中)编译器/解释器。 尽管我们竭尽全力,但是您的代码无法正常工作和/或在我的计算机上产生不正确的输出。 编译或执行需要一个多小时。 您的代码或唯一可用的编译器/解释器包含对的系统调用rm -rf ~或同样令人讨厌的东西。 排行榜 我对所有提交进行了重新评分,以10,000次迭代进行编译,并以100至10,000次迭代执行(取决于代码的速度),并在循环中运行编译和执行(取决于代码的速度)并计算平均值。 结果是: User Compiler …

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.