タグ付けされた質問 「fastest-code」

最速のコードチャレンジの勝者は、提出物の実行時のパフォーマンスによって決まります。公平を期すために、すべての提出物は同じマシンでベンチマークする必要があります。これは通常、すべての提出物をチャレンジのホストがテストする必要があることを意味します。漸近的な時間の複雑さによるスコアリングには、代わりに[fastest-algorithm]を使用します。


30
小さな「H」から「H」を作成する
チャレンジ 整数を指定するとsize、次のことを行う関数またはプログラムを作成します。 size1に等しい場合、出力 H H HHH H H 場合はsize1、出力よりも大きく、 X X XXX X X どこXのプログラム/関数の出力size - 1 (必要に応じて0、回答で指定する限り、ベースケースをに対応させることができます) 次の出力形式のいずれかが受け入れられますが、どちらがより便利です。 任意の二つの異なる文字に対応する必要な構造の文字列Hとspace 対応する任意の二つの別個の値を要求される構造を有する二次元アレイ、H及びspace 任意の二つの別個の値は、対応する各列における出力の一つの行と列/文字列のリスト、Hおよびspace 各行に一定量の先行スペースがある限り、先行スペースを使用できます。2つの異なる出力文字は、異なる限り、選択したものに依存します。 コードが返す出力形式を指定します。 テストケース 1 H H HHH H H 2 H H H H HHH HHH H H H H H HH HH H HHHHHHHHH H HH HH …
73 code-golf  ascii-art  fractal  code-golf  code-golf  string  code-golf  string  matrix  code-golf  graph-theory  maze  binary-matrix  code-golf  kolmogorov-complexity  random  code-challenge  metagolf  test-battery  brain-flak  text-processing  code-golf  matrix  code-golf  number-theory  primes  code-golf  string  matrix  code-golf  binary  bitwise  code-golf  number  factorial  floating-point  code-golf  number  sequence  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-golf  string  code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

23
コンテスト:ガウス分布データの大きな配列を並べ替える最速の方法
この質問への関心に続いて、コンテストを提案することで、回答をもう少し客観的かつ定量的にすることは興味深いと思いました。 アイデアは簡単です:5000万ガウス分布のdoubleを含むバイナリファイルを生成しました(平均:0、stdev 1)。目標は、メモリ内でこれらをできるだけ速くソートするプログラムを作成することです。Pythonでの非常に単純なリファレンス実装は、完了するのに1m4sかかります。どのくらい低くすることができますか? ルールは次のとおりです。ファイル「gaussian.dat」を開き、メモリ内の数値を並べ替えるプログラムで出力する(出力する必要はありません)。プログラムのビルドと実行の手順。このプログラムは、私のArch Linuxマシンで動作する必要があります(このシステムに簡単にインストールできるプログラミング言語またはライブラリを使用できることを意味します)。 プログラムは、安全に起動できるようにするために、合理的に読み取り可能である必要があります(アセンブラーのみのソリューションはご遠慮ください!)。 私のマシンで答えを実行します(クアッドコア、4ギガバイトのRAM)。最速の解決策は、受け入れられた答えと100ポイントの報奨金を取得します:) 数値の生成に使用されるプログラム: #!/usr/bin/env python import random from array import array from sys import argv count=int(argv[1]) a=array('d',(random.gauss(0,1) for x in xrange(count))) f=open("gaussian.dat","wb") a.tofile(f) 単純なリファレンス実装: #!/usr/bin/env python from array import array from sys import argv count=int(argv[1]) a=array('d') a.fromfile(open("gaussian.dat"),count) print "sorting..." b=sorted(a) 編集:4 GBのRAMのみ、ごめんなさい EDIT#2:コンテストのポイントは、データに関する事前情報を使用できるかどうかを確認することです。異なるプログラミング言語の実装間でやりがいのある一致を想定していません!

13
nまでの素数の計算
π(N)素数の数未満またはそれに等しいN。 入力:自然数、nは。 出力: π(n)。 スコアリング:これは最速のコードチャレンジです。スコアは、スコアケースの時間の合計になります。コンピューター上の各エントリーの時間を計ります。 ルールと詳細 あなたのコードは、のために働く必要がありますnは 20億(2,000,000,000)まで。 これを単純化するビルトインは許可されていません。これには、組み込みのπ関数またはπ(n)の値のリストが含まれます。 素数性をテストしたり、素数を生成したりするビルトインは許可されていません。これには素数のリストが含まれますが、次の箇条書きに関する場合を除き、外部から検索したり、ローカルでハードコーディングしたりすることはできません。 19以下の素数をハードコーディングできます。 πの実装は決定的でなければなりません。これは、特定のnを指定すると、コードが(ほぼ)同じ時間で実行されることを意味します。 使用する言語は、Linux(Centos 7)で自由に使用できる必要があります。コードの実行方法に関する指示を含める必要があります。必要に応じて、コンパイラ/インタープリターの詳細を含めます。 公式の時間は私のコンピューターからです。 投稿するときは、コードの実行速度の推定値を提供するために、テスト/スコアの一部またはすべてのケースで自己測定時間を含めてください。 提出物は、この質問に対する回答投稿に収まらなければなりません。 64bit centos7を実行しています。8GBのRAMと1GBのスワップしかありません。CPUモデルは次のとおりです。AMDFX(tm)-6300 6コアプロセッサ。 テストケース(ソース): Input Output 90 24 3000 430 9000 1117 4000000 283146 <--- input = 4*10^6 800000000 41146179 <--- input = 9*10^8 1100000000 55662470 <--- input = 1.1*10^9 スコアケース(同じソース) いつものように、これらのケースは変更される可能性があります。スコアリングケースの最適化は許可されていません。また、妥当な実行時間と正確な結果のバランスを取るために、ケースの数を変更する場合があります。 Input …

14
Pythonは本当に遅い(パートII)
これは、Pythonが実際にどれくらい遅いかというフォローアップです (または、どのくらいの速あなたの言語で?) 。 最後の質問で100倍のスピードアップを得るのは少し簡単すぎることがわかりました。チャレンジを楽しんでいるが、低レベルのスキルを実際に使用できるより難しいものが必要な場合は、パートIIをご覧ください。課題は、私のコンピューターでテストされた次のpythonコードのx100の高速化を得ることです。 さらに難しくするために、今回はpypyを使用しています。私の現在のタイミングは、pypy 2.2.1を使用して1分7秒です。 ルール 私が実行できるコードを送信した最初の人は正しいですし、私のマシンで100倍高速である場合、50ポイントの報奨金が授与されます。 私は一週間後に最速のコードに勝利を授与します。 import itertools import operator import random n = 8 m = 8 iters = 1000 # creates an array of 0s with length m # [0, 0, 0, 0, 0, 0, 0, 0] leadingzerocounts = [0]*m # itertools.product creates an array …

2
OEISの拡張:ダイヤモンドタイルのカウント
私は約束します、これはダイアモンドタイルに関する私の最後の挑戦になるでしょう(とにかく、しばらくの間)。明るい面では、この課題はASCIIアートとは関係がなく、コードゴルフでもないため、これは実際にはまったく異なります。 念のため、すべての六角形に3つの異なるダイヤモンドのタイトルを付けることができます。 興味深い質問は、特定の六角形のサイズに対してこれらのタイルがいくつ存在するかです。これらの数値はかなり徹底的に研究されており、OEIS A008793に記載されているようです。 ただし、回転と反射までのタイルの数を尋ねると、問題は複雑になります。たとえば、辺の長さN = 2の場合、次の20のタイルが存在します。 ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ /\_\_\ /\_\_\ /\_\_\ /\_\_\ /_/\_\ /_/\_\ /\_\_\ /_/\_\ /_/\_\ /_/\_\ /\/\_\_\ /\/_/\_\ /\/_/_/\ /\/_/\_\ /\_\/\_\ /\_\/_/\ /\/_/_/\ /\_\/\_\ /\_\/_/\ /_/\/\_\ \/\/_/_/ \/\_\/_/ \/\_\_\/ \/_/\/_/ \/\_\/_/ \/\_\_\/ \/_/\_\/ \/_/\/_/ \/_/\_\/ \_\/\/_/ \/_/_/ \/_/_/ \/_/_/ …

3
インディ・ジョーンズが宝を手に入れるのを手伝ってください
物語 インディ・ジョーンズは、貴重な宝物がある洞窟を探索していました。突然、地震が起こりました。 地震が終わったとき、彼は天井から落ちたいくつかの岩が宝物への道を塞いでいることに気づきました。また、彼は石を押すことができることに気づきましたが、石は非常に重いため、連続する2つの石を押すことはできませんでした。 あなたの目的は、インディ・ジョーンズが宝を手に入れるのを助けることです。単一の石でも押すのは非常に難しいので、押す回数は非常に重要です。 問題 宝物を見つけるための最良の方法(インディアナジョーンズが石をできる限り少なくする場所)を見つけてください。 地図(入力) マップであるmことによりn、細胞の5種を含有することができる(両方とも1より大きい)マトリックス: 0 これは空白セルを意味し、 1 壁を意味します 2 インディ・ジョーンズが位置する(1つだけが存在する) 3 宝が置かれている(1つだけが存在する) および4、これは岩を意味します。 マップの最初の行では、マップの次元がのよう4 6に指定され、2番目の行からマップの最後の行まで、洞窟の構造は次のように指定されます。 110131 104040 100101 200000 したがって、完全なマップは次のとおりです。 4 6 110131 104040 100101 200000 つまり マップは、stdin、ファイル(ファイルの名前を指定できます)、または上記の情報のみを含むコード内の配列によって提供されます。 出力 インディ・ジョーンズがプッシュすべき最低額。そのような方法がない場合は、を出力しますX。 上記の場合、彼は左の石を上に押し、次に右の石を押して宝物を得ることができます。したがって、この場合の出力は2です。 しかしながら。この場合 : 4 6 111131 104040 100101 200000 (セクションの下を見てください)彼は宝物を破壊するので、右の石を押すことができません。また、左の石を右に押しても何も変わりません。したがって、出力はXです。 ルール 彼は上下左右の4方向にしか移動できません。 彼は2つの連続する石を押すことができません。 彼は石を引っ張ることができず、一方向(「前方」)にのみ石を押すことができます。 彼は壁を通過することはできません。彼が行くことができるのは、空のセルと宝のセルだけです。 石を宝物の上に置くことはできません。それは宝物を破壊します。:( …

3
ルービックキューブを解く
ルービックキューブ(3 * 3 * 3)を妥当な時間内に解決する最短のプログラムを作成し、移動します(たとえば、マシン上で最大5秒、1000回未満の移動)。 入力の形式は次のとおりです。 UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (この特定の入力は、解決されたキューブを表します)。 最初の12個の2文字の文字列は、UF、UR、... BL位置のエッジ(U =上、F =前、R =右、B =後、L =左、D =下)であり、次の8 3文字の文字列は、UFR、URB、... DBR位置のコーナーです。 出力は、次の形式で一連の動きを示します。 D+ L2 U+ F+ D+ L+ D+ F+ U- F+ D1またはD +はD(下)面を時計回りに90度回転することを表し、L2はL面を180度回転し、U3またはU-はU面を反時計回りに90度回転することを表します。 …

11
長さ、和、積が素数である最大の素数を見つける
数値113は、長さ3が素数、デジタル合計5 = 1 + 1 + 3が素数、デジタル積3 = 1 * 1 * 3が素数である最初の素数です。 これら3つの特性を持つ素数は、最高素数と呼ばれます。プライム11117と1111151は他の例です。 ゴール まともな最新のパーソナルコンピューター(ここで推奨される仕様など)で1時間以内に可能な限り最大の素数を見つけることができるプログラムを作成します。 単に最高の素数を与えてはいけません。実際に動作するコードで検索プロセスを示す必要があります。自分や他の人のソリューションを基に構築できますが、必ずクレジットを与えるようにしてください。私たちは、通常のコンピューターで1時間で実現可能な最大の素数を見つけようと共同で試みています。 得点 最大のプライムプライムを見つけたサブミッションが勝ちます。有限数の最高素数があることが判明した場合、最高最高素数を生成する最初のサブミッションが勝ちます。 (数え切れないほど多くの最高素数があるかどうかを数学的に証明できる場合は、200の報奨金を提供します。理由は:)) 詳細 任意のソースを使用して素数を生成できます(インターネットなど)。 確率的素数検定法を使用できます。 すべてがベース10にあります。 0と1は素数とは見なされません。 を含むプライムには0デジタル製品がある0ため、最高になれないことは明らかです。 ページを整理するために、フォームに大きな(100桁以上の)最高プライムを配置します。 {[number of 1's before the prime digit]}[prime digit]{[number of 1's after the prime digit]} だから、1111151のように表現することができ{5}5{1}。

9
文字列をひっかく
スナックされた文字列は次のようになります。 T AnE eOf ifi ing h s x l A k e r isI amp Sna dSt あなたのタスク 文字列sとサイズをn取得し、スナックされた文字列を出力します。入力しThisIsAnExampleOfaSnakifiedString、3上記の例を生成します。 仕様書 s コードポイント33から126までのASCII文字のみが含まれます(スペースや改行は含まれません)。 s 長さは1〜100文字です。 n各出力文字列セグメントのサイズを表す整数です。「蛇」の曲線を構成する文字の各行(上/下または左/右)はn文字です。例については、テストケースを参照してください。 n 3〜10になります。 出力文字列は常に下向きになります。 各行の末尾のスペースは許可されます。 出力の最後にある末尾の改行も使用できます。 先行スペースは使用できません。 code-golfは、バイト単位の最短コードが勝つことを意味します。 テストケース a 3 a ---------- Hello,World! 3 H Wor e , l llo d! ---------- ProgrammingPuzzlesAndCodeGolf 4 …
35 code-golf  string  ascii-art  code-golf  code-golf  string  balanced-string  decision-problem  code-golf  string  geometry  grid  code-golf  tips  lisp  code-golf  quine  tips  king-of-the-hill  code-challenge  math  code-golf  string  palindrome  math  fastest-code  code-golf  string  counting  code-golf  code-golf  internet  code-golf  quine  source-layout  hello-world  code-golf  math  number  sequence  arithmetic  code-golf  ascii-art  grid  code-golf  number  grid  code-golf  string  crossword  code-golf  code-golf  ascii-art  grid  counting  code-golf  code-golf  math  sequence  arithmetic  number-theory  code-golf  code-golf  graphical-output  geometry  random  code-golf  ascii-art  grid  counting  code-golf  string  ascii-art  code-challenge  test-battery  code-golf  string  code-golf  ascii-art  kolmogorov-complexity  code-golf  interpreter  code-golf  math  sequence  code-golf  math  primes  set-partitions  code-golf 

10
あなたはどれくらい高く行くことができますか?(コーディング+アルゴリズムの課題)
Pythonが実際にどれくらい遅いかについて、誰もが(しばしば驚くべき)低レベルコーディングの専門知識を開発しました。(またはあなたの言語はどれくらい速いですか?)およびPythonは本当に遅い(パートII)?アルゴリズムを改善する能力を伸ばす挑戦の時です。 次のコードは、長さ9のリストを計算します。iリスト内の位置は、とのi間の内積を計算するときに少なくとも連続したゼロが見つかった回数をカウントします。まさにこれを行うために、それはすべての可能なリストの上に反復した長さのとリストの長さ。FSFnSn+m-1 #!/usr/bin/python import itertools import operator n=8 m=n+1 leadingzerocounts = [0]*m for S in itertools.product([-1,1], repeat = n+m-1): for F in itertools.product([-1,1], repeat = n): i = 0 while (i<m and sum(map(operator.mul, F, S[i:i+n])) == 0): leadingzerocounts[i] +=1 i+=1 print leadingzerocounts 出力は [4587520、1254400、347648、95488、27264、9536、4512、2128、1064] このコードを使用してnを10,12,14,16,18,20に増やすと、非常に急速に非常に遅くなります。 ルール 課題は、できるだけ大きなnに対して正しい出力を提供することです。nの偶数値のみが関連します。 同点の場合、勝者は私のマシンで最大のnの最速コードになります。 10分以上かかるコードをテストしない権利を留保します。 正しい出力が得られる限り、好きな方法でアルゴリズムを変更できます。実際、勝つためにある程度の進歩を遂げるには、アルゴリズムを変更する必要があります。 …

28
超対数を計算する
これは簡単な課題です。 数を考えるとn >= 0、出力超対数(またはログ*、ログスターを、または対数を繰り返し、同等であるため、nこのような課題に対して負になることはありません。)のn。 これは、テトラションに対する2つの逆関数の1つです。もう1つはスーパールートです。これは関連する質問です。 例 Input Output 0 0 1 0 2 1 3 2 4 2 ... 15 2 16 3 ... 3814279 3 3814280 4 ルール 可能ですが、小数をサポートする必要はありません。 少なくともの入力をサポートする必要があり3814280 = ceiling(e^e^e)ます。 のような値をハードコーディングすることはできません3814280。(あなたのプログラムは理論的にはより大きな数値をサポートしなければなりません。)アルゴリズムを実装したいです。 最短のコードが優先されます。 関連OEIS
29 code-golf  math  code-golf  array-manipulation  sorting  code-golf  math  arithmetic  matrix  code-golf  string  kolmogorov-complexity  code-golf  string  code-golf  math  sequence  arithmetic  recursion  code-golf  math  ascii-art  sequence  code-golf  math  array-manipulation  code-golf  code-golf  kolmogorov-complexity  code-golf  string  code-golf  string  decision-problem  code-golf  array-manipulation  tips  javascript  json  code-golf  math  string  number  number-theory  code-golf  math  sequence  fibonacci  number  arithmetic  fastest-code  integer  code-golf  math  sequence  code-golf  string  file-system  tips  golfscript  code-golf  string  code-golf  string  natural-language  code-golf  string  file-system  code-golf  math  array-manipulation  code-challenge  image-processing  compression  code-golf  math  number  sequence  code-golf  math  combinatorics  regular-expression  code-golf  sequence  pi  code-golf  ascii-art  code-golf  string  array-manipulation  sorting  code-golf  string  graph-theory  code-golf  string  code-golf  string  ascii-art  code-challenge  compression  code-golf  code-golf  math  sequence  number-theory  code-golf  maze  graph-theory  code-golf  math  sequence 

30
賢い人のMira気楼
むかしむかし、Quoraでこの質問/回答を読んでいた FizzBu​​zzテストに合格できないコンピューターサイエンスの学位を持つプログラマーは本当にいますか このコードは明白な答えとして与えられます for i in range(1, 100): if i % 3 == 0 and i % 5 == 0: print "FizzBuzz" elif i % 3 == 0: print "Fizz" elif i % 5 == 0: print "Buzz" else: print i もちろん、FizzBu​​zzは死ぬまでゴルフにかけられましたが、それはこの質問の目的ではありません。あなたはコメントで、4の倍数の印刷「ジャズ」などの追加条件を簡単に追加できるので、この明白な答えは素晴らしいと誰かが言及していることがわかります(同意しません。このスキームを拡張するにはO(2 ** n )コード行。) あなたの挑戦は、仲間によって判断されるようにFizzJazzBuzzの最も美しいバージョンを書くことです。 投票者が考慮すべき事項: ドライ 除算/モジュラス演算の効率 Quoraに関する回答の多くはPythonを使用していましたが、ここではそのような言語の制限はありません。 …
29 popularity-contest  code-challenge  word  popularity-contest  string  grid  language-design  code-golf  source-layout  math  fastest-algorithm  assembly  code-golf  json  code-golf  arithmetic  array-manipulation  code-golf  ascii-art  code-golf  crossword  code-golf  string  restricted-complexity  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  decision-problem  balanced-string  syntax  code-golf  grid  puzzle-solver  hexagonal-grid  code-golf  math  number  sequence  code-golf  string  decision-problem  code-golf  cryptography  king-of-the-hill  code-challenge  fastest-code  code-golf  number  code-golf  code-golf  string  code-golf  cryptography  king-of-the-hill  java  code-golf  number-theory  base-conversion  code-golf  code-golf  array-manipulation  code-golf  array-manipulation  sorting  code-challenge  restricted-source  quine  code-golf  tips  python  king-of-the-hill  code-golf  source-layout  fractal  code-golf  tips  game  king-of-the-hill  path-finding  grid  code-golf  kolmogorov-complexity  natural-language  code-golf  tips  python  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  number  combinatorics  random  integer-partitions  code-golf  string  code-golf  vim  comment  code-golf  combinatorics  counting  code-challenge  rosetta-stone  code-golf  combinatorics  sequence  subsequence  code-golf  code-challenge  restricted-source  primes  printable-ascii  popularity-contest  graphical-output  image-processing 

2
最速の準素因数分解
最短時間で半素数を因数分解するプログラムを作成します。 テストのために、これを使用してください:38!+1(523022617466601111760007224100074291200000001) 等しい:14029308060317546154181×37280713718589679646221

2
リーマンシータ関数の特殊なケースの近似
この課題は、計算が困難な無限和を実行できる高速コードを記述することです。 入力 マトリックスよりも小さい整数のエントリを持つ絶対値です。テストするときは、コードに必要な適切な形式でコードに入力を提供できてうれしいです。デフォルトは、マトリックスの行ごとに1行で、スペースで区切られて標準入力に提供されます。nnP100 Pなります正定それは常に対称になる暗示います。それ以外は、チャレンジに答えるために正の明確な意味を本当に知る必要はありません。ただし、実際に以下に定義する合計に対する答えがあることを意味します。 ただし、行列ベクトル積とは何かを知る必要があります。 出力 コードで無限和を計算する必要があります。 正解のプラスまたはマイナス0.0001以内。ここではZ整数の集合であり、これZ^nですべての可能なベクトルであるn整数要素とeある有名な数学定数は約2.71828に等しいです。指数の値は単なる数値であることに注意してください。明示的な例については、以下を参照してください。 これはリーマンシータ関数とどのように関係しますか? リーマンシータ関数の近似に関するこの論文の記法では、計算しようとしています。私たちの問題は、少なくとも2つの理由で特別なケースです。 zリンクされたペーパーで呼び出される初期パラメーターを0に設定します。 P固有値の最小サイズがになるような方法で行列を作成します1。(マトリックスの作成方法については、以下を参照してください。) 例 P = [[ 5., 2., 0., 0.], [ 2., 5., 2., -2.], [ 0., 2., 5., 0.], [ 0., -2., 0., 5.]] Output: 1.07551411208 より詳細には、このPの合計に含まれる1つの用語のみを見てみましょう。 および x^T P x = 30。これe^(-30)は約で10^(-14)あり、与えられた許容範囲まで正しい答えを得るために重要ではないことに注意してください。無限和は、要素が整数である長さ4のすべての可能なベクトルを実際に使用することを思い出してください。明示的な例を示すために1つだけを選択しました。 P = [[ 5., 2., 2., …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.