Questions tagged «fastest-code»

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

3
成为流行病学家!
挑战 您必须创建一个简单的模型来说明疾病如何在一群人中传播。 规则与要求 模型必须是1000 x 1000 2D数组,每个元素都是不同的人。 用户必须使用argv输入三个变量:传播的可能性(某人感染他人的可能性),突变的机会以及模拟应运行的周期。 在第一阶段(t=0),应随机选择四个人并感染该疾病。 该疾病的行为方式受以下规则支配: 该疾病只能在水平和垂直方向移动,移动到隔壁的人。 每个人感染持续3次。您可能没有考虑到免疫缺陷。 一个人被感染三遍之后,他们便会免疫,无法再次感染。 该疾病容易发生突变,使以前免疫的人容易感染这种新的突变疾病。变异的疾病具有与原始疾病完全相同的特征,并遵循相同的规则。 如果发生突变,则整个疾病不会改变,仅在传播时改变特定的“小包”即可。 一旦一个人被一种病毒感染,在当前的感染过去之前,他们无法再次被感染。 如果一个人被感染,他们从感染期开始到结束都具有传染性。 没有免疫力的水平-一个人是否免疫。 要停止内存过载,最大限制为800个突变。 在指定的周期数结束时,应输出结果。 结果必须为1000 x 1000的网格,以显示哪些人被感染,哪些人未被感染。可以将其输出为文本文件,图像文件或图形输出(其中#FFFFFF是健康人,而#40FF00是感染人)。 请在您的答案中包括语言名称和运行它的命令。 获奖 在我的计算机上运行的最快的代码胜出。时间将通过以下Python代码来衡量: import time, os start = time.time() os.system(command) end = time.time() print(end-start) 请注意,运行此脚本时,我将使用以下默认值: Probability of transmission = 1 Chance of mutation = 0.01 Number of …

8
中心二项式系数的数字总和
任务仅仅是看您可以计算n选择n / 2(甚至n)比python中的内置函数快多少。当然,对于大n来说,这是一个相当大的数字,因此您应该输出数字的总和,而不是输出整数。例如,n = 100000答案为135702。因为n=1000000是1354815。 这是python代码: from scipy.misc import comb def sum_digits(n): r = 0 while n: r, n = r + n % 10, n / 10 return r sum_digits(comb(n,n/2,exact=True)) 你的分数是(highest n on your machine using your code)/(highest n on your machine using my code)。您的代码必须在60秒或更短时间内终止。 您的程序必须为所有偶数n提供正确的输出:2 <= n <=(您的最高n) …

3
Brainfuck中的按位运算符
您的任务是为以下每个二进制运算符创建一个Brainfuck程序。每个程序应从输入中获取一个或两个8位数字(A和B)并计算指定的运算: A XOR B A AND B A OR B A Shifted Left by 1 (circular shift) NOT A 您不必全部实施5。得分的计算方式为: #totalCharacters + {4000 * #problemsNotCompleted} 因此,有效分数是从零(最佳)到20,000(未完成)。 我不在乎您将结果存储在哪里,也不管您是否保留输入。假设8位单元以及仅在右侧需要的空单元数。 您可能会认为数字已经在最适合您的任何内存位置中,因此您无需担心IO操作。
13 code-golf  binary  brainfuck  code-golf  code-golf  ascii-art  random  code-golf  code-golf  code-challenge  sorting  code-golf  code-challenge  java  code-golf  statistics  code-golf  code-challenge  fastest-code  code-golf  math  code-golf  math  kolmogorov-complexity  code-golf  code-golf  array-manipulation  combinatorics  code-golf  kolmogorov-complexity  popularity-contest  underhanded  code-golf  math  floating-point  code-golf  interpreter  code-golf  music  code-golf  code-golf  cryptography  code-challenge  scrabble  code-golf  code-challenge  popularity-contest  quine  code-golf  quine  cryptography  code-golf  kolmogorov-complexity  code-golf  printable-ascii  code-golf  chess  code-golf  math  number-theory  code-challenge  c  code-golf  random  popularity-contest  hello-world  code-shuffleboard  code-golf  compression  grammars  code-golf  tips  code-golf  sequence  code-golf  string  code-challenge  sorting  permutations  code-golf  string  code-challenge  optimization  code-golf  interpreter  code-challenge  string  code-golf  math  number  fibonacci  string  compression  c#  code-golf  chemistry  popularity-contest  math  c  c++  java  code-golf  math  function  code-golf  complex-numbers  code-golf  geometry 

8
尽快计算Hafnian
挑战在于编写可能最快的代码来计算矩阵的Hafnian。 对称2n按2n矩阵的Hafnian A定义为: 这里S 2n表示整数从1to 的所有置换的集合2n,即[1, 2n]。 Wikipedia链接还提供了一个可能引起您兴趣的不同外观公式(如果您在网络上进一步浏览,甚至可以使用更快的方法)。相同的Wiki页面讨论了邻接矩阵,但是您的代码也应适用于其他矩阵。您可以假设所有值都是整数,但不能假设它们都是正数。 还有一种更快的算法, 但似乎很难理解。而Christian Sievers是第一个实施它的人(在Haskell中)。 在这个问题上,矩阵都是正方形的,并且对称且偶数维。 参考实现(请注意,这是使用最慢的方法)。 这是Xcoder先生提供的一些示例python代码。 from itertools import permutations from math import factorial def hafnian(matrix): my_sum = 0 n = len(matrix) // 2 for sigma in permutations(range(n*2)): prod = 1 for j in range(n): prod *= matrix[sigma[2*j]][sigma[2*j+1]] my_sum += prod return …

2
解释基普尔!
介绍 Kipple是Rune Berg于2003年3月发明的基于堆栈的深奥编程语言。 Kipple有27个堆栈,4个运算符和一个控制结构。 堆栈 堆栈被命名为a- z并包含32位带符号整数。还有一个特殊的堆栈,@使输出数字更加方便。当将数字压入时@,实际上将压入该数字的ASCII值。(例如,如果您将12推到@,它将推49,然后推50。@) i在执行程序之前,将输入压入输入堆栈。解释器将i在执行之前要求存储值。执行完成后,输出堆栈上的所有内容o都会弹出以ASCII字符形式输出。由于这是Kipple唯一的IO机制,因此无法与Kipple程序进行交互。 经营者 操作数可以是堆栈标识符或带符号的32位整数。 推送:>或< 语法:Operand>StackIndentifier或StackIndentifier<Operand Push运算符将操作数向左移并将其推入指定的堆栈。例如,12>a将值12推入stack a。a>b将从堆栈中弹出最高值a并将其推入堆栈b。弹出空堆栈总是返回0 a<b相当于b>a。a<b>c从弹出最高值,b并同时推入c和a。 加: + 句法: StackIndentifier+Operand Add运算符将堆栈上最顶层项目和操作数之和压入堆栈。如果操作数是堆栈,则从中弹出值。例如,如果堆栈的最高值为a1,a+2则将3压入堆栈。如果a为空,a+2则将2推入。如果堆叠的最值a和b是1和2,然后a+b将从栈中弹出的值2 b和3推入堆栈a。 减去: - 句法: StackIndentifier-Operand 减法运算符的工作方式与加法运算符完全相同,只是它减去而不是加法。 明确: ? 句法: StackIndentifier? 如果最上面的项目为0,则Clear运算符将清空堆栈。 解释器将忽略操作符旁边不存在的所有内容,因此以下程序将起作用:a+2 this will be ignored c<i。但是,添加注释的正确方法是使用#字符。#执行前,a 和行尾字符之间的所有内容都将被删除。ASCII字符#10在Kipple中定义为行尾。 操作数可以由两个运算符共享,例如a>b c>b c?可以写为a>b<c?。 该程序1>a<2 a+a将导致a包含值[1 4](从下到上),而不是[1 3]。对于-操作员也是如此。 控制结构 Kipple中只有一种控制结构:循环。 句法: (StackIndentifier code …
12 code-golf  interpreter  code-golf  string  code-golf  math  string  code-golf  ascii-art  path-finding  code-golf  string  ascii-art  code-golf  interpreter  binary  logic-gates  logic  code-golf  ascii-art  code-golf  graph-theory  code-golf  string  code-golf  number  sorting  code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

3
计算Hankelable矩阵的数量
背景 二元汉克尔矩阵是具有仅包含0s和1s的恒定斜对角线(正倾斜对角线)的矩阵。例如,一个5x5二进制汉克矩阵看起来像 a b c d e b c d e f c d e f g d e f g h e f g h i 其中a, b, c, d, e, f, g, h, i要么0或1。 让我们定义一个矩阵中号为Hankelable如果有行和列的顺序的排列中号,使中号是汉克尔矩阵。这意味着可以对行顺序应用一种排列,对列应用一种可能的排列。 挑战 我们面临的挑战是要算多少Hankelable n通过n矩阵有全部n达到尽可能大的价值成为可能。 输出量 对于每个整数n从1个向上,输出的数目Hankelable n通过n基质与作为条目0或1。 对于n = 1,2,3,4,5答案应该是2,12,230,12076,1446672。(感谢orlp提供产生这些代码的代码。) 时限 我将在计算机上运行您的代码,并在1分钟后将其停止。输出正确答案的代码,最大n次取胜。时间限制是所有问题的答案,从n = 1最大的价值到n您给出的答案。 …

6
整数格上的误报
排行榜 User Language Score ========================================= Ell C++11 293,619,555 feersum C++11 100,993,667 Ell C++11 78,824,732 Geobits Java 27,817,255 Ell Python 27,797,402 Peter Taylor Java 2,468 <reference> Julia 530 背景 在整数坐标的二维网格上工作时,有时您想知道两个向量(具有整数分量)是否具有相同的大小。当然,在欧几里得几何中,向量的大小(x,y)由 √(x² + y²) 因此,幼稚的实现可能会为两个向量计算该值并比较结果。这不仅会导致不必要的平方根计算,而且还会导致浮点数不准确的问题,这可能会产生误报:幅值不同但浮点表示中的有效数字都相同的向量。 出于此挑战的目的,我们将误报定义为一对坐标对,(a,b)并(c,d)为此: 当表示为64位无符号整数时,它们的平方大小不同。 当表示为64位二进制浮点数并通过64位平方根计算得出时,它们的大小相同(根据IEEE 754)。 例如,使用16位表示(而不是64位),产生假阳性的最小一对矢量为: (25,20) and (32,0) 它们的平方平方大小分别是1025和1024。求平方根产量 32.01562118716424 and 32.0 但是在16位浮点数中,这两个都被截断为32.0。 同样,最小的2对产生32位表示形式的假阳性 (1659,1220) and (1951,659) …

16
你能快速繁殖多少?
随着最近对Python的 猛烈抨击,这是尝试展示Python的优势。您面临的挑战是编写一个程序,n在10秒钟内计算尽可能高的阶乘。 您的分数将是 (highest n for your program on your machine)/(highest n for my program on your machine) 规则 您必须计算一个精确的整数解。由于阶乘将远远大于64位无符号整数所能容纳的整数,因此如果您的语言不支持大整数,则可以使用字符串 禁止出现标准漏洞。特别是,您不能使用任何外部资源。 仅计算部分(这包括使用字符串的任何变通方法所花费的时间)平均总时间应少于10秒。 仅单线程程序。 您必须以易于打印的形式存储输出(因为打印需要时间)(请参见下面的程序),字符串,变量,字符数组等。 编辑: 您的程序必须为所有程序提供正确的输出n:1 <= n <= (your highest n) 编辑2: 我不想明确地说这句话,但是使用您语言的内置阶乘函数属于标准漏洞http://meta.codegolf.stackexchange.com/a/1078/8766 对不起,Mathematica和Sage 我的程序 from __future__ import print_function import time def factorial( n ): return reduce( ( lambda …

1
通过整数操作实现IEEE 754 64位二进制浮点数
(我暂时将问题标记为“ C”,但是如果您知道另一种支持联合的语言,则也可以使用它。) 您的任务是+ - * /为以下结构构建四个标准数学运算符: union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 这样操作本身就只能操纵或访问整数部分(因此也不能在操作过程中的任何时候都与double进行比较),并且结果是完全相同的(对于非数字结果,例如,功能上是等效的NaN)好像相应的数学运算已直接应用于double。 您可以选择要操作的整数部分,甚至可以在不同的运算符之间使用不同的整数部分。(尽管我不确定您是否要这样做,您也可以选择从联合中的任何字段中删除“未签名”。) 您的分数是四个运算符中每个字符的代码长度总和。最低分获胜。 对于不熟悉IEEE 754规范的我们来说,这是一篇有关Wikipedia的文章。 编辑: 03-06 08:47在intfloat结构中添加了构造函数。您可以使用它们进行测试,而不必手动设置double /etc。

1
破解密码
我设计了一个简单的随机生成器,使用乘法和模数方法以混沌的方式循环两个数字。为此很好。 如果我将其用作密码生成器,则由于攻击者可以以计算有效的方式对一系列随机数进行种子反向工程,因此它容易受到已知的明文攻击。 为了证明密码破解,找到合法的种子值对,它们在[0; 255]范围内连续生成7个零,并且使用尽可能少的功率,CPU时间等。 这是用JavaScript编写的随机生成器: function seed(state1,state2){ //Constants var mod1=4294967087 var mul1=65539 var mod2=4294965887 var mul2=65537 function random(limit){ //Cycle each state variable 1 step state1=(state1*mul1)%mod1 state2=(state2*mul2)%mod2 //Return a random variable return (state1+state2)%limit } //Return the random function return random } //Initiate the random generator using 2 integer values, //they must …

3
计算构成唯一集合的数组
这个问题具有类似的设置,以找到适合一组和的数组,尽管其目标完全不同。 考虑一个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 我们将仅考虑元素为给定整数s或的数组s+1。例如,如果s=1数组仅包含1和2。 任务 任务,对于给定n和s是计算该长度的独特阵列的数量。您可以假设s介于1和之间9。 您不应该算数组的倒数以及数组本身。 例子 s = 1答案永远是n+1。 s = 2,从n = 1上往下数的答案是: 2,3,6,10,20,32,52,86 s = 8,从n = 1上往下数的答案是: 2,3,6,10,20,36,68,130 得分了 对于给定n的代码,您的代码应输出s从1到的所有值的答案9。您的分数是n在一分钟内完成的最高分。 测试中 我将需要在ubuntu机器上运行您的代码,因此请尽可能详细地说明如何编译和运行您的代码。 排行榜 …

2
块分区字符串
灵感。 考虑一个l由数字组成的列表。i在列表的索引处定义一个块操作,l该操作是从iin 开始移动3个连续元素的动作l进行到底。 例: l, i (1-indexing) -> l (after applying block operation at index i) [1,2,3,4,5], 1 -> [4,5,1,2,3] [1,2,3,4,5,6,7], 3 -> [1,2,6,7,3,4,5] 给定一个仅包含0和1的列表,您的难题是仅使用块操作对其进行分区,以使零在前面,而在后面在后面。输出应该是索引在列表中应用的顺序。 因为这是不可能的 [1,0,1,0],所以保证列表长度至少为5。 测试用例(1-索引) (还有其他有效的输出) [1,1,1,0,0] -> [1] [0,1,0,1,0] -> [1,2,1,1] [0,0,0,1,1,1,0,0,0] -> [4] 使用此脚本可以生成更多的测试用例。(仅输入该rplc ' ';','部分用于ř Ë PL一个Ç ê空间与输出逗号) 获奖标准 代码挑战是主要的制胜法宝,而最快的代码是决胜局。尤其是: 以测试用例(n_elem= 500,random_seed= {secret value})的最短输出长度(最少块操作数)的解决方案为准。您应该能够使用测试用例(n_elem= …

7
计算周期数组
的period一个字符串的是最短的非零移位,使得字符串匹配本身,忽略任何份该突出端。因此,例如,abcabcab具有period 3。按照惯例,如果没有这种移位,则字符串的周期等于其长度。因此,时期abcde为5和时期a为1。 用更正式的术语来说,字符串的周期S是最小的,i > 0因此S[1,n-i] == S[i+1,n](从索引1)。 对于给定的具有两个长度的幂的字符串S,我们将计算其所有具有两个长度的幂的前缀的周期。例如,考虑S = abcabcab。我们将计算的周期为: 'a', 1 'ab', 2 'abca', 3 'abcabcab', 3 实际上,我们将仅输出周期数组,即[1, 2, 3, 3]。 对于给定的2的正幂n,请考虑所有可能的二进制字符串S。回想一下,二进制字符串只是1s和0s 的字符串,因此恰好有2^n这样的字符串(即2幂n)。对于每个,我们都可以计算这一周期数组。 挑战在于编写以n(2的幂)为输入的代码,并计算有多少个此类数组。 的答案n = 1, 2, 4, 8, 16, 32, 64, 128是: 1, 2, 6, 32, 320, 6025, 216854, 15128807 的不同周期数组的完整集合n = 4是: 1, 1, 1 1, …

1
帮助Jason格式化他的JSON
杰森(Jason)有一个很大的JSON,但它不可读,因此需要美化它。 格式化规格 JSON有4种不同的类型: 数字;只是0-9 弦; 用双引号引起来的"字符串\ 数组;以分隔[],项目以分隔,,项目可以是以下任何类型 对象;以分隔{},格式是key: valuekey是字符串,value是这些类型中的任何一种 间距 数组之间的逗号之间应仅留一个空格 对象应该在键和值之间只有一个空格, : 缩进 每个嵌套级别比上一个缩进2个级别 每个对象键/值对始终在自己的行上。对象缩进 如果数组包含另一个数组或对象,则该数组将缩进多行。否则,数组将保持一行 规则 内置插件,其轻视这个任务都不会允许的。 一如既往,不允许出现标准漏洞 例子 [1,2,3] [1, 2, 3] {"a":1,"b":4} { "a": 1, "b": 4 } "foo" "foo" 56 56 {"a":[{"b":1,"c":"foo"},{"d":[2,3,4,1], "a":["abc","def",{"d":{"f":[3,4]}}]}]} { "a": [ { "b": 1, "c": "foo" }, { "d": [2, …
11 code-golf  string  json  code-golf  number  code-golf  image-processing  code-golf  string  code-golf  number  sequence  arithmetic  number-theory  code-golf  string  code-golf  string  counting  code-golf  ascii-art  code-golf  math  code-golf  tips  code-golf  string  code-golf  grid  graph-theory  code-golf  parsing  interpreter  brainfuck  code-golf  math  arithmetic  number-theory  programming-puzzle  c#  code-golf  dominoes  code-golf  tips  code-golf  string  grid  crossword  code-golf  string  code-golf  kolmogorov-complexity  code-golf  number  sequence  code-golf  string  math  number  number-theory  primes  fastest-code  code-golf  number  code-golf  string  code-golf  ascii-art  number  kolmogorov-complexity  code-golf  string  grid 

2
最快的最长公共子序列查找器
你的任务是解决最长公共子序列的ň长度为1000的字符串。 给LCS问题的一个有效的解决方案为两个或多个字符串小号1,内容S Ñ是任意字符串Ť使得字符最大长度的Ť出现在所有s ^ 我,以相同的顺序在Ť。 注意,T不必是S i的子字符串。 我们已经用最短的代码解决了这个问题。这次,大小无关紧要。 例 字符串axbycz和 xaybzc具有8个常见的长度为3的子序列: abc abz ayc ayz xbc xbz xyc xyz 这些中的任何一个都是解决LCS问题的有效解决方案。 细节 如上所述,编写一个完整的程序来解决LCS问题,并遵守以下规则: 输入将由两个或多个长度为1000的字符串组成,这些字符串由代码点在0x30和0x3F之间的ASCII字符组成。 您必须从STDIN读取输入。 输入格式有两种选择: 每个字符串(包括最后一个字符串)后跟一个换行符。 字符串被链接在一起,没有分隔符,也没有尾随换行符。 字符串数将作为命令行参数传递给您的程序。 您必须将输出(即,对LCS的任何有效解决方案之一)写入STDOUT,然后再写入一个换行符。 您选择的语言必须具有针对我的操作系统(Fedora 21)的免费(例如在啤酒中)编译器/解释器。 如果您需要任何编译器标志或特定的解释器,请在您的文章中提及。 计分 我将使用2、3等字符串运行您的代码,直到花费超过120秒才能打印出有效的解决方案。这意味着每个n值都有120秒。 您的代码及时完成的​​最大字符串量就是您的得分。 如果得分为n,则在最短时间内解决n个字符串问题的提交将被宣布为获胜者。 所有提交都将在我的计算机上计时(Intel Core i7-3770、16 GiB RAM,无交换)。 第(n-1)个测试的n个字符串将通过调用(并在需要时剥离换行符)生成,其定义如下:rand nrand rand() { head -c$[500*$1] /dev/zero | openssl …

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.