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

コードチャレンジは、他のスコアリングタグ(コードゴルフなど)ではカバーされない客観的な勝ち基準でプログラミングパズルを解くクリエイティブな方法の競争です。

12
シャミールの秘密の共有
与えられたn(プレイヤーの数)、 t(しきい値)、およびs(秘密)、出力nによって生成された秘密シャミール秘密分散アルゴリズム。 アルゴリズム このチャレンジの目的のために、計算はGF(251)(sizeの有限体251、または整数mod 251として知られる)で行われます。通常、フィールドは、サイズがより大きい素数になるように選択されnます。課題を簡素化するために、フィールドサイズは一定になります。251これは、8ビットの符号なし整数で表現できる最大の素数であるため選択されました。 t-1(包括的)範囲でランダムな整数を生成します[0, 250]。これらのラベル1を通過T-1 。 構築t-1用い番目の多項式をsのパワーの係数として工程1からの一定値とランダムな整数としてx:F(X)= S + X * 1 + X 2 * 2 + ... + X T- 1 * a t-1。 (包括的)範囲内の(f(z) mod 251)それぞれの出力。z[1, n] 参照実装 #!/usr/bin/env python from __future__ import print_function import random import sys # Shamir's Secret Sharing algorithm # Input …
17 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 

4
言語は何ですか?
最近、PPCG設計リーダーボードは、回答htmlヘッダーの解析に問題を抱えています。 この課題では、回答ヘッダーの解析で独自のショットを取ります。 テストケースの例 これらの例入力(NOT実際のテストケース)、ちょうどので、あなたが入力が方法のアイデアを得ることが可能かもしれないようなことを Input: <h1>Python 3, 32 bytes</h1> Desired Output: Python 3 Input: <h1>JavaScript, 13 chars / 32 bytes</h1> Desired Output: JavaScript Input: <b>VeryBadlyFormattedHeader v3 : (32 bytes)</b> スペック あなたのプログラムは150バイト以下でなければなりません 回答ヘッダーのhtmlの行が表示されます。言語を正常に抽出するには、最善を尽くす必要があります。入力にはユニコード文字が含まれる場合があります。 出力ケースが重要です。 テスト Github Gistとテストケース 1行に1つのテストケースがあります。形式は次のとおりです。 <lang_name> - <rest_of_the_line_is_the_header> 得点 あなたのスコアは: Number Correct ---------------- Total Number (これはパーセントです) タイブレーカーは最も短いコードです。

7
合計のないパーティションを見つける
エグゼクティブサマリー 入力を考えるとk、整数のパーティションを見つける1にnにk最大のための和自由サブセットn10分以内にすることができます。 背景:シュール数 自己合計に共通する要素がない場合、セットAは合計なしですA + A = { x + y | x, y in A}。 すべての正の整数の場合はk整数の最大があるS(k)セットがあるよう{1, 2, ..., S(k)}に分割することができますk合計フリーサブセット。この番号は、k 番目の シューア番号(OEIS A045652)と呼ばれます。 たとえば、S(2) = 4。{1, 2, 3, 4}としてパーティション化できます。{1, 4}, {2, 3}これは、2つの合計のないサブセットへの一意のパーティションですが、5どちらの部分にもa を追加することはできません。 チャレンジ 以下を実行する決定論的プログラムを作成します。 k入力として正の整数を取る 現在のUnixタイムスタンプをstdoutに書き込みます パーティションのシーケンスを出力1するnにk増大させるための和自由サブセットn現在のUnixタイムスタンプを持つ各シーケンス以下、。 勝者は、n入力が与えられたときに私のコンピューターで10分以内に最大のパーティションを印刷するプログラム5です。n3回の実行で平均された最大のパーティションを見つけるための最も早い時間で関係が壊れます。そのため、出力にタイムスタンプを含める必要があります。 重要な詳細: 私はUbuntu Preciseを持っているので、あなたの言語がサポートされていない場合、スコアをつけることができません。 Intel Core2 Quad CPUを持っているので、マルチスレッドを使用したい場合、4つ以上のスレッドを使用しても意味がありません。 特定のコンパイラフラグまたは実装を使用する場合は、回答に明確に文書化してください。 入力を処理するためにコードを特殊なケースにしないでください5。 見つかったすべての改善を出力する必要はありません。たとえば、入力の2場合は、パーティションのみを出力できますn = …

3
文字列内のパターンを検索
この挑戦では、あなたの仕事は、与えられた構造を持つ部分文字列を見つけることです。 入力 入力は、空ではない2つの英数字文字列、パターン p、およびテキスト tです。の考え方は、の各文字がp連続して空でない部分文字列を表し、その部分文字列tが隣り合って出現し、pそれらの連結を表すことです。同一の文字は同一の部分文字列に対応します。たとえば、パターンaaは空でない正方形(短い文字列をそれ自体に連結することによって取得される文字列)を表します。したがって、パターンaaは部分文字列byebyeとa一致し、それぞれ一致しbyeます。 出力 テキストtにp一致する部分文字列が含まれている場合、出力はその部分文字列になり、の文字に:対応する文字列の間にコロンが挿入されますp。例えば、我々が持っている場合t = byebyenowとp = aa、その後、bye:bye許容出力されます。一致する部分文字列にはいくつかの選択肢がありますが、そのうちの1つだけを出力します。 t一致する部分文字列が含まれていない場合、出力は悲しい顔になり:(ます。 規則と説明 の異なる文字はp同一の部分文字列に対応できるためp = aba、文字列と一致できますAAA。文字は空でない文字列に対応する必要があることに注意してください。特に、pがより長い場合t、出力はでなければなりません:(。 完全なプログラムまたは関数を記述できます。また、2つの入力の順序を変更することもできます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース 形式で与えられますpattern text -> output。他の受け入れ可能な出力が存在する可能性があることに注意してください。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

2
ロボットがテレポーターに到達するのを支援する
更新:はじめにPythonフレームワークを追加しました。 宇宙ステーションはクラッシャーボットによって追い抜かれました。ステーションが自己破壊する前に、「ウサギ」と呼ばれる高価で壊れやすいハイテクボットを出口テレポーターに向ける必要がありますが、クラッシャーボットは通路をパトロールしています。 プログラムにはASCIIマップが与えられ、各ターンにはクラッシャーボットと現在のウサギがいる場所が通知されます。その後、プログラムは、クラッシャーボットを避けながらウサギを出口テレポーターに移動します。 実行 Python 2コントローラーを実行するには: python controller.py <mapfile> <turns> <seed> <runs> <prog>... <prog> can be <interpreter> <yourprog> or similar. シードは、実行を繰り返し可能にするために、クラッシャーとプログラムPRNGに使用される小さな整数です。使用する実際のシードに関係なく、プログラムは一貫して実行する必要があります。シードがゼロの場合、コントローラーは実行ごとにランダムシードを使用します。 コントローラは、マップテキストファイルの名前とシードを引数として使用してプログラムを実行します。例えば: perl wandomwabbits.pl large.map 322 プログラムでPRNGを使用する場合は、指定されたシードで初期化する必要があります。コントローラは、STDINを介してプログラムの更新を送信し、STDOUTを介してウサギの動きを読み取ります。 コントローラが回転するたびに、3行が出力されます。 turnsleft <INT> crusher <x,y> <movesto|crushes> <x,y>; ... rabbits <x,y> <x,y> ... 次に、プログラムが1行を出力するのを待ちます。 move <x,y> to <x,y>; ... 更新:最初の行がコントローラーによって送信される前に、プログラムの初期化に2秒かかります。 コントローラーのウサギの位置を入力した後、プログラムが動きに応答するのに0.5秒以上かかる場合、コントローラーは終了します。 グリッド上にウサギがいない場合、ウサギの行には値がなく、プログラムはむき出しの「移動」文字列行を出力する必要があります。 毎ターン、プログラムの出力ストリームをフラッシュすることを忘れないでください。 例 …

8
長い単語の連鎖を構築する
この課題は、次の単語の最初の3文字が最後の単語の最後の3文字と一致する英語の単語の最長チェーンを見つけることです。Linuxディストリビューションで利用可能な一般的な辞書を使用します。こちらからダウンロードできます。 https://www.dropbox.com/s/8tyzf94ps37tzp7/words?dl=0 99171英語の単語があります。ローカルLinux /usr/share/dict/wordsが同じファイルである場合(md5sum == cbbcded3dc3b61ad50c4e36f79c37084がある場合)、それを使用できます。 単語は回答で1回だけ使用できます。 編集:文字は大文字/小文字、アポストロフィ、アクセントを含めて正確に一致する必要があります。 有効な回答の例は次のとおりです idea deadpan panoramic micra craftsman mantra traffic fiche 。スコアは8です。 有効な単語のチェーンが最も長い答えが勝者になります。同点の場合、最も早い回答が勝ちます。答えには、見つけた単語のチェーンと、(もちろん)それを実行するために書いたプログラムがリストされているはずです。

3
独自の言語コードを選択してください
16x16の印刷可能なASCII文字(コードポイント0x20〜0x7E)のグリッドを見てみましょう。次の例のように、左上から右下隅まで30から15のパスがあり、直交移動のみを行います。 ##.............. .#.............. .######......... ......##........ .......##....... ........#....... ........#....... ........#....... ........###..... ..........###... ............#... ............#### ...............# ...............# ...............# そのような各パスは、正確に31文字で構成されます。これらの各文字は、31個の対角線のいずれかとは異なることに注意してください。 0123456789ABCDEF 123456789ABCDEFG 23456789ABCDEFGH 3456789ABCDEFGHI 456789ABCDEFGHIJ 56789ABCDEFGHIJK 6789ABCDEFGHIJKL 789ABCDEFGHIJKLM 89ABCDEFGHIJKLMN 9ABCDEFGHIJKLMNO ABCDEFGHIJKLMNOP BCDEFGHIJKLMNOPQ CDEFGHIJKLMNOPQR DEFGHIJKLMNOPQRS EFGHIJKLMNOPQRST FGHIJKLMNOPQRSTU これはグリッドの例ではありません。これは、31個の対角線を視覚化したものです。 対角線に同じ文字が2回含まれていない場合、対角線的に一意のグリッドを呼び出します。グリッドにこのプロパティがある場合、2つのパスに同じ文字列が含まれることはありません。(明確にするために、視覚化自体は基本的に対角線的に一意の反対です。) チャレンジ 可能な限り多くのパスが、可能な限りJabberwocky多くの言語でSTDOUT(オプションの末尾の改行付き)に出力される有効なコードになるように、斜めに一意の16x16グリッドを設計します。各コードは、完全なプログラム、またはreturnステートメントのないパラメーターレス関数の本体のいずれかです(これは、定型関数/クラス/名前空間にコードを置く必要がある言語を妨げないためです)。 注:簡単にするために、Ypnypnのように未使用のセルに予約文字を使用できます。 有効なパスごとに、有効なプログラミング言語を1つ明記してください。 受賞者は、上記のリストに含まれる言語の数が最も多い作品です。(または、カウントする言語ごとに、その言語で有効なパスを1つ表示しますが、2つの言語のパスをカウントしないようにしてください。) 同点の場合、有効なパスでカバーされていないグリッドセルを数えます。未使用のセルが少なくなります。まだ同点の場合は、最も(正味の)票数の回答を受け入れます。 検証スクリプト グリッドが対角線的に一意であることを検証するために使用できる小さなCJamスニペットを簡単にまとめました。 行くオンラインCJamインタプリタ。 次のコードを貼り付けます l:A; qN/W%A16**33/z{A-__|=}%:*"D""Not d"?"iagonally unique" 入力フィールドで、最初の行に予約文字を入力し(予約文字を使用しない場合は未使用文字を使用します)、2行目から17行目までグリッドを使用します。たとえば、Ypnypnの答え: …

6
最小バイトコードインタープリター/ VM
リーダーボード-JITコンパイル済み(低いほど良い) es1024-81.2ポイント(動作中のコンパイラを含む!) キース・ランドール-116ポイント Ell-121ポイント リーダーボード-解釈済み(低いほど良い) マーティン・ブットナー-706654ポイント(約2時間)。 クリプティック-30379ポイント(97秒) あなたがそれを受け入れることを選択した場合、あなたの使命は、可能な限り最小のバイトコードインタープリター/ VMを書くことです。VM /インタープリターは、以下で指定されている言語で、小さなCISCアーキテクチャを使用します(操作のサイズは異なる場合があります)。完了したら、3つのCPUレジスタの値を印刷して、正しい出力が印刷されたことを証明する必要があります(3,126,900,366)。 コンパイラ 独自のテストを作成する場合は、コンパイラを以下に掲載します。回答とともにテストを投稿してください。 コードスニペットを表示 window.compile=function(){var e=$("#text").val().toLowerCase().match(/[^\r\n]+/g);var t=[];for(var n=0;n<e.length;n++)compileLine(e[n],t);var r="";for(var n=0;n<t.length;n++)if(typeof t[n]=="string")r+="\n";else r+="0x"+t[n].toString(16)+" ";$("#compiledArray").val(r)};window.compileLine=function(e,t){var n=e.split(" ");if(n[0]=="load"){t.push(0);t.push(getInt(n[1]));t.pushArr(getInt(n[2]))}if(n[0]=="rload"){t.push(1);t.push(getInt(n[1]));t.push(getInt(n[1]))}if(n[0]=="push"){t.push(2);t.push(getInt(n[1]))}if(n[0]=="pop"){t.push(3);t.push(getInt(n[1]))}if(n[0]=="add"){t.push(4);t.push(getInt(n[1]));t.push(getInt(n[2]))}if(n[0]=="sub"){t.push(5);t.push(getInt(n[1]));t.push(getInt(n[2]))}if(n[0]=="mul"){t.push(6);t.push(getInt(n[1]));t.push(getInt(n[2]))}if(n[0]=="div"){t.push(7);t.push(getInt(n[1]));t.push(getInt(n[2]))}if(n[0]=="jmp"){t.push(8);t.pushArr(getInt(n[1]))}if(n[0]=="cmp"){t.push(9);t.push(getInt(n[1]));t.push(getInt(n[2]))}if(n[0]=="branchlt"){t.push(10);t.pushArr(getInt(n[1]))}if(n[0]=="brancheq"){t.push(11);t.pushArr(getInt(n[1]))}if(n[0]=="branchgt"){t.push(12);t.pushArr(getInt(n[1]))}if(n[0]=="branchne"){t.push(13);t.pushArr(getInt(n[1]))}t.push("NEW LINE")};window.getInt=function(e){if(e.trim().startsWith("<--"))return"COMMENT";if(e=="r0")return 0;if(e=="r1")return 1;if(e=="r2")return 2;if(e.startsWith("0x"))return parseInt(e,16);if(isNaN(parseInt(e)))alert(e);return getIntBytes(parseInt(e))};if(typeof String.prototype.startsWith!="function"){String.prototype.startsWith=function(e){return this.slice(0,e.length)==e}}Array.prototype.pushArr=function(e){this.push.apply(this,e)};window.getIntBytes=function(e){var t=[];var n=4;do{t[--n]=e&255;e=e>>8}while(n);return t} <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> <textarea id="text" cols="40" rows="10"></textarea> <br/> <button onclick="compile()">Compile</button> <br/> <textarea id="compiledArray" cols="40" rows="10" readonly></textarea> …

30
ジグソーコードパズル
これは答えに依存する課題です!回答の順序は重要であり、正確なタスクは最後に投稿された回答に依存します。回答を最も古い順に並べ替えることができます。 コードをつなぎましょう!1920個のランダム(印刷可能なASCII)文字があります。それらは、箱の中にある未分類のジグソーパズルのピースの大きなヒープと考えてください。 L-^=v^Ej2tW8OxNOIecSt4m}tji2O%YRJ;PJ!M|0*oO77$*Rs&2*<c"KI7e%FY^?I=];Y@`x)u)IBk%_a#<E6<yv5O*$kL): KNGq)2Wa%b)j."(6U|{[UY@`lrCSJ`u0RHX!1z7f,v}n=GvRgkrEZ=YT:4H44bz]iC<](:+FF?Ay'vX~h5QMF)0vaXk1sk@p Zj).{+l;PBKHABvEP%FnSw>u<_-4B^A>I8Kay&5]vXZJ{fCF]UVZ<!ZpOI$7\Y%`@:%H3wPsX-`/l]ZZ?Q/d`\M<T@'t]zip {[ovg:6EpCT&'+vU4Heb^;}0AV|?<}M0rAH/^DL"RkT~%$[VUlM]-&We4(P=66},hL~;a`:$'yty.W[g2OWcL~b:Ryj0*eN< ;&-n[F1F=oh0k[NI!xS"]pA@Y;K}'=ekG5yda8J$+`N;:FIx:l,f_LT@sV[]HF@2*vl?|q"GL1j&%e(CyYPqY%3W|@`z}]bp 4_'1Nx{"G2&j6$UWt_#%`sTt2xC}s1P8J<gV24_RWge/aMuyVOjz=zS!1i2s@`Q#@^~@W/k@.YLbKxS:g9?J^p;7ju?B\yC5 x,ZApKS5G4}kx_iM)f4/|su>=[{XSV#{,j5Qn3U.v5LF;HXs%DYm4'+efmU;\}f6j$SFCRC`Gsd37:'3$q=bs;lvsW0Yj^:- I[94@I|.IpR=}4KB4Z0G4>8PR29'L?n\gk,*4X[-%T`\FC)jj0jl_x<xL8E:G2-"3tT8&E}"sE+SH[7jR%@V)a{!m8K>.rAO 2[dq7GX9nrz8p4}^2mn@q|dF%<.Tl8)Dk?O.<UoE(a*k_=4+u!h$^bVd:$jS#EHFh@Z=y=ib^~/~lEJ^SQ3E_t#&^IOov7v8 ~j#I#OHgxg{DZDyCsq-(GVq}HbiG,JV?eJ~5wJ;bSt@;3LI!2(6gIT92>}`_dw;YF@ccTIEz\Gu@2(}J2I1"S{R(2niIYPp9 8A3iiP[*!SH2*SN8'`V?w4Ufx2H*Az%{}FlUdH31TJ5{:ge^N91^;9Gj`Uqf'$_|8P"kHR1w.(ASwmN)U-~q"[XcWbqPnns= d.ZoPJ}$Xc2lA>HN28`(d0y+UAr*sQ=?KE07=\FsVN(#?&hRabS%BVI#<`O$o#4x5ZFFLGDcA4t?&Eh~Z$oBWwNSNv`^;vO' 2&9egng~L#\QkfMG?S/n@%-VA[?f9K&3"V%P#Sv0!D<,GV:Z;3c&zFe^k&^0b7fAjvrbMc^Lq7k$h=YL<h7<0\NK>~Q=uUv) 4cI$.'b-RVS-=rom:=8QR=c>9am-^5F[XGv>E/>|]~\']3{r{kTc?ee1v=;I7]52#NE)~A;}!z>5?hi{5<9FtWH6{VO_Y-Jy Mw>{l8n#mD,kl'8cG^.7sy=QqU-3~SKGs5(.Ta]:-Vfr'NS$o*q:w6e$&7spk3{CFT'l_hGY0-0Xui*5i^0^fO@6?2IdCn_C lPKaJ6]0t!u>v8<d'Vby]8kEHh04p(YI)&7w82BrGB3PkI,s+%7ux5)gau`G!8F8hLa4[lfD55Xf3Hqy*-K,?;2'fxH3JWYE Z.[N`:[K:CY@TzKX4TMXsm{Xbd:B3)Gy[mlwnC$>)z`:k=C\0ho/v{57#+2,*%]>p~vI2^C:2DebJR>.ESw^wd2N<~]O9sOQ `_yvIw&Ryf%JgT@W(G1wfU3.4G3U}x1jKJzJY\S9n$2~P;F}*eT9UXcTNBTrTs>~0v_Oi.y8ofX6i5u$;'^"q][QhTb*gO[U n'R0"v1r+9fv;5G7Bg=D:c*a=1@[}7}dYOO{Mz2&@6`jnNq.QcBDM9Dd=R.*=MqZ93#'{AJJFqx<{qb':B!H8ig1L%T\Vuc" (h$i3`,scX'hqpbw"=nY`*Lu:h1wR{+-`\^3cQkIWfq)3?&p;~pvDW$o7\O|R6rB2{PX.s#G6A.s<OA_,TI_b*&lO@L3KrQv 私たちが困惑させている「フロア」は、当初はスペースの96x20グリッド(コードポイント0x20)にすぎません。各回答は、ピースの隣接するブロックを移動し、最大10個のパズルピース(キャラクター)を選択し、パズルに追加して新しいプログラムを作成します。そのプログラムは、回答の番号(1から始まる連続番号)を印刷する必要があります。 返事 この課題について理解する重要なことは、一度に答えることができる人は1人だけであり、それぞれの答えはその前のものに依存するということです。 同じ数Nの回答が2つあることはありません。2人がNに対して同時に答えた場合場合、後で答えた人は(たとえ数秒の差があっても)丁寧に答えを削除する必要があります。 これを少しスムーズに実行するには、回答を投稿する際に次の手順に従うようにしてください。 誰かが前の回答の正しさを独立して検証したことを確認してください(そして対応するコメントを残しました)。 前の「パズルフロア」と「ピースの箱」を取ります。パズルフロアで隣接するキャラクターのブロックをユニットとして自由に動かすことができます(キャラクターは、水平方向または垂直方向に沿ってタッチすると隣接しています)。隣接するブロックを再度分割することはできません。5x4グリッドの例: Last answer: Valid: Invalid: |a bc| |d g | |a bc| | bc | |a bc| | d e | |fa …

4
既存のフレームワークを使用して2048 AIをプログラムする
編集:最近、私の質問は2048ボットチャレンジの複製として提案されました。この質問はその質問とは異なり、回答をその質問とは異なる方法で考える必要があることを強調したいと思います。2048ボットチャレンジは、ユーザーにボットを作成するように要求し、ボットを1時間実行します。最高スコアはユーザーのスコアです。さらに、555バイトの制限がありました。私のチャレンジでは、コードの実行頻度ははるかに低く、3回だけです。スコアは、これらの3回の平均スコアを使用して、ゴルフコードの文字長で割ることによって計算されます。私の質問は、エントリが「スマート」であり、総当たりで最高のスコアを取得しようとしないことを奨励しています。 - 編集:getメソッドがgetTileに変更され、JSキーワードgetとの競合を回避しました。さらに、高得点セクションが追加されました。 最近、JavaScriptを使用して人気のあるゲーム2048を制御できるサイトを作成しました。私のサイトはここにリンクされています: http://thatcoolidea.com/2048 どうやって: Ace Editorはボードの上にあります。コードを配置します。コードは250ミリ秒ごとに1回、または1秒間に4回実行されます。これはサイクルと呼ばれます。 ボードを制御するには、次の方法を使用します。矢印キーは使用できません。 up(); //move up down(); //move down left(); //move left right(); //move right move(integer); //integer is a direction. 0:up,1:right,2:down,3:left getTile(y,x); //gets the value of the tile in position y,x on the board. See diagram 便宜上、次の変数が定義されています。 eother //boolean, alternates every cycle frozen //integer, …

13
FizzBu​​zzコンパイラーを作成する
コンパイラーゴルフの世界へようこそ。あなたの仕事は、仕様でFizzBu​​zzのバリアントを再生する別のプログラムを生成するプログラムを書くことです。 コンパイラー FizzBu​​zzプログラムのバリアントを仕様に合わせて生成するコンパイラーを作成します。このバリアントの仕様は、整数/文字列のペアの配列の形式で表されます。 入力は、言語に都合のよい形式であればどのような形式でもかまいません。(私の例ではn:xxxxを使用していますが、これは単に説明のためです。) 各整数入力は、コンパイラーの呼び出しごとに1回のみ使用できます。 各ペアの整数は、少なくとも1つの値を持ちます。 各ペアの文字列は、ちょうど4つのASCII文字で構成されます。 出力は、以下の規則に準拠する単一の完全なプログラムでなければなりません。 テキスト形式のプログラムである限り、出力は任意の便利な形式にすることができます。(したがって、ラムダ式を返しません。) 上記の規則に準拠していない入力の動作は未定義です。 生成されたFizzBu​​zzプログラム コンパイラが生成するプログラムは、入力として単一の整数nを受け取ります。1からnまでの一連の数値を出力し、必要に応じて数値をFizzBu​​zz文字列に置き換えます。 生成されたプログラムは、コンパイラーと同じ言語である必要があります。 入力nは、言語に適した任意の形式にすることができます。 nには少なくとも1つの値があります。 コンパイラーへの整数入力の少なくとも1つの倍数である数値は、それらの整数を結合したすべてのストリングで置き換える必要があります。 FizzBu​​zz文字列に置き換えられない数値は、10進数のASCIIで出力する必要があります。 例えば; > GenFizzBuzz 3:Fizz 5:Buzz > a.out 5 1 2 Fizz 4 Buzz 得点 エントリーは、コンパイラーが生成するプログラムの長さをコンパイラーの長さに追加することによってスコアリングされます。以下の各パラメーターを使用してコンパイラーを何度も実行し、生成されたプログラムの長さとコンパイラーの長さを加算して、スコアを見つけます。 ただカウント。(入力なし-生成されたプログラムは、置換なしで1からnまでカウントされます。) ただのゴルフ。(1:ゴルフ-生成されたプログラムは「ゴルフ」をn回出力します。) クラシックFizzBu​​zz。(3:フィズ、5:バズ) (リストされているものだけでなく、有効な入力のコードを生成するためにコンパイラが必要なことに注意してください。)

6
巡回セールスマン
リストまたはベクターなど、3タプルの束などが与えられます。最初の2つの要素は文字列で、3番目の要素は数値です。文字列は都市であり、数字はそれらの間の距離です。タプル内の都市の順序は任意です(つまり、どちらが最初に来て、どちらが最初に来るかは関係ありません)。また、接続された引用のペアごとにタプルが1つだけあります。すべての都市が接続されているわけではありません。また、距離は常に正です(ではなく0)。これらの条件を確認する必要はありません。入力が正しい形式であると仮定することができます。あなたの仕事は、都市を周期的な順序で返すことです。そのため、ある都市から開始して、同じ都市に戻った場合、都市間の距離の合計は最小になります(正確かつ全体的に)解決策が存在すると仮定することができます。たとえば、与えられたとしましょう [("New York", "Detroit", 2.2), ("New York", "Dillsburg", 3.7), ("Hong Kong", "Dillsburg", 4), ("Hong Kong", "Detroit", 4), ("Dillsburg", "Detroit", 9000.1), ("New York", "Hong Kong", 9000.01)] 次のいずれかを出力できます(ただし、出力する必要があるのは1つだけです)。 ["Detroit","Hong Kong","Dillsburg","New York"] ["Hong Kong","Dillsburg","New York","Detroit"] ["Dillsburg","New York","Detroit","Hong Kong"] ["New York","Detroit","Hong Kong","Dillsburg"] ["Dillsburg","Hong Kong","Detroit","New York"] ["New York","Dillsburg","Hong Kong","Detroit"] ["Detroit","New York","Dillsburg","Hong Kong"] ["Hong Kong","Detroit","New York","Dillsburg"] …

9
インプレースの文字列内の単語の逆順
タスク に一致する可変文字列が与えられ[a-z]+( [a-z]+)*ます。 「hello there everyone」が「everyone there hello」になるように、同じ単語を含む文字列に逆順で変更する必要があります。 一定量以上の追加メモリを使用することは許可されていません(したがって、割り当てたばかりのバッファに文字列全体または単語全体をコピーすることはできません)。 時間の制約はありません。絶望的に非効率であることはあなたのスコアを傷つけません。 選択した言語で文字列の変更が許可されていない場合は、文字の配列を使用できます。 あなたのスコア スコアは、文字列要素に対して行った割り当ての数に基づいて純粋にカウントされます(小さいスコアが最適です)。文字列に書き込むライブラリ関数を使用すると、その書き込みもカウントされます。 入力sに必要な割り当ての数がn(s)であるとします。次に、スコアは、n(s)/ length(s)のすべての入力s(上記で指定された正規表現に一致)の最大値(理論的には、最高)です。これを正確に計算できない場合は、証明できる最低の上限を使用できます。 アルゴリズムが漸近的に少ない割り当てを使用することを証明できれば、同点を破ることができます(これは、同じスコアを持っている場合でも起こります。以下を参照)。これができない場合は、使用する追加メモリが少ないことを示すことで、同点を破ることができます。ただし、最初のタイブレーク条件が常に優先されます。 一部の入力では、すべての文字を変更する必要があるため、1未満のスコアを付けることはできません。 スコア2の単純なアルゴリズムを考えることができます(しかし、私はそれを入力していません)。 頂点と関係に関する注意 数のセットの最高値は、それらのどれよりも小さくない最小の数です。これはセットの最大値に非常に似ていますが、{2 / 3、3 / 4、4 / 5、5 / 6、...}のようないくつかの無限セットには単一の最大要素はありませんが、依然として上限があります。この場合1。 スコア2(たとえば)のアルゴリズムで一定数の割り当てのみを「保存」した場合、入力が大きくなると任意に2に近づくため、スコアは2のままになります。ただし、それに関してはタイブレークで勝ちます。

2
独占圧縮
プレイヤーのターンの開始時にモノポリーのゲームの現在の状態を表す文字列が与えられた場合、必要なすべてのデータを最小の出力に圧縮します。回答は、出力サイズとソースサイズによって判断されます。 注:地域ごとにさまざまなバリエーションがありますが、この投稿のプロパティ名などへの参照はすべてこの掲示板に基づいています。 入力: 入力は、単一の;分離された文字列として与えられます。この文字列は、標準入力、引数など、選択した言語で慣習的な方法でプログラムに与えられます。 書式なし入力は次のようになります。 numPlayers (1 to 8) whose turn (0 to numPlayers-1) for each player: bankrupt? (true/false) money (0 to 2^16-1) get-out-of-jail-free cards (0 to 2) position (0 to 39) jail turns (-1 to 2) for 28 properties: owner (-1 to numPlayers-1) mortgaged? (true/false) improvement level (0 to …

2
Befungeプログラムを圧縮する
Befungeは2次元の難解なプログラミング言語です。基本的な考え方は、(1文字の)コマンドが2次元グリッドに配置されるということです。制御フローはグリッド上を移動し、通過するコマンドを実行し、矢印にヒットすると方向を変更します(>^<v)。コマンドはスタックベースです。このリストを参照してください。http://esolangs.org/wiki/Befungeも参照してください。 Befunge-98の仕様が利用可能です。 問題 Befungeプログラムをよりコンパクトな表現に変換するプログラムを作成します。たとえば、次のプログラムは印刷します0: > 0 v > @ . ^ < この場合、スペースの行を削除することにより、プログラムの動作を変更せずに圧縮できます。 >0v >@. ^ < より洗練された変換は、コマンドのシーケンスを回転またはミラー化し、プログラムを圧縮するために不要な制御フローコマンドを排除できます。たとえば、このプログラムでは: >12345v 6 v....7< . . . @ プログラムの終わりを穴に押し込むかもしれません。 >12345v >...@ 6 ^....7< 最初の例では、可能な限り最もコンパクトなプログラムは >0.@ 出力プログラムで同じ結果が得られる限り、任意の変換を使用できます。 入力プログラム 入力プログラムは有効なBefunge-98プログラムです。 入力プログラムが決定論的であると仮定することができます。つまり、外部状態を読み取るコマンドは使用しません。ユーザー入力コマンド&と~、ランダマイザー?、および自己修正コードコマンドpとgです。 入力プログラムが終了することを想定できます。 得点 これはコードゴルフではありませんが、コードゴルフを実行するプログラムを作成する問題です。 入力はテストケースのセットです(上記の入力制限を満たすBefungeプログラム)。合計スコアは、テストケースのスコアの合計です。 各テストケースのスコア スコアは、出力プログラムの空でないセルの凸包の面積です。各セルは、4つの角がデカルト平面の格子点である正方形として扱われます。たとえば、 > v @ < 9.5のスコアを取得します。 プログラムが特定の入力で妥当な時間とメモリで終了しない場合、スコアは入力プログラムのスコアです。(これは、プログラムが時間内に終了しない場合、入力プログラムを変更せずに出力する時間制限ラッパーを簡単に追加できるためです。) プログラムで処理した後、テストケースプログラムの結果が異なる(または終了しない)場合、スコアは入力プログラムのスコアに100ポイントのペナルティを加えたものです。

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