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

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

2
首謀者の戦略
私は、Mastermindのコードゴルフチャレンジしか見つけることができなかったので、ここに、自分が挑戦したいコードチャレンジバージョンを示します。 通常の首謀者ゲームの最適な戦略であるMM(4,6)は、1993年に小山とライによって発見され、平均推測数= 5625/1296〜4.34でした。MM(5,8)はまだ解決されていませんが、推測の平均数は5.5であると推定されます。 あなたの仕事は、MM(5,8)戦略を作成することです。これは、5つの穴と8つの色に対応し、すべてのpow(8,5) = 32768可能な個別のソリューションをカバーします。明らかに、最適なものである必要はありません。次の2つの選択肢があります。 戦略を生成する決定論的プログラムを投稿します。このプログラムは、Windows 7、Mac OS X、またはLinux上で、フリーでないソフトウェアを追加せずにコンパイル/実行できる必要があります。 戦略を(StackExchange名とともに)インターネット上のどこかに公開し、ここにURLを投稿します。 どちらの場合も、回答のヘッダーにスコア(以下を参照)を明記してください。 戦略は、次の文法に従ってエンコードする必要があります。 strategy : guessing-strategy | known-solution-strategy guessing-strategy : '{' guess ':' branches '}' known-solution-strategy : guess guess : color color color color color color : 'A'..'H' branches : '{' branch (',' branch)* '}' branch : reply ':' strategy …

5
2048ボットチャレンジ
私たちはされているクローニング、2048年の分析 2048が、なぜ我々はまだそれをプレイしていませんか?555バイトのJavaScriptスニペットを作成して2048を自動的に再生します。1時間後の最高スコアがカウントされます(以下のスコアリングを参照)。 セットアップ: 後藤2048と実行: a = new GameManager(4, KeyboardInputManager, HTMLActuator, LocalStorageManager); a ゲームを制御するオブジェクトです。 ルール: セットアップ後、コンソールから555バイトのjavascriptを実行してゲームを制御できます。ゲームのソースコードはここにあります(コメントを含む)。 ユーザーに可能なことだけを行う場合があります。 a.move(n) 4つの方向のいずれかでキーアクションをトリガーします。 0:上、1:右、2:下、3:左 a.restart() ゲームを再起動します。再起動は、ゲームの途中で許可されています。 ゲームの状態に関する情報はにありa.grid.cellsます。この情報は読み取り専用です いずれかの関数へのフックは許可されますが、その動作を変更することはできません(または他のデータを変更します) 移動は250msごとに1回のみ許可されます 例 開始するのは非常に簡単な例です。コメントなしで181バイトを入力します。 //bind into new tile function and change m(ove) variable when a tile was moved b = a.addRandomTile.bind(a); m = !1; a.addRandomTile = function() { …

5
数字削除後もまだ素数である最大素数を見つける
時が経つにつれて/math/33094/deleting-any-digit-yields-a-prime-is-there-a-name-for-this、次の質問を尋ねています。数字のいずれかを削除した後に素数のままである素数はいくつありますか?例えば719、あなたが得るような素数71で19あり、そして79。この質問は未解決ですが、コーディングの難題となると思いました。 仕事。 数字のいずれかを削除した後でも素数のままであることがわかる最大の素数を指定します。それを見つけるコードも提供する必要があります。 スコア。与える素数の値。 自由であれば、任意のプログラミング言語とライブラリを使用できます。 物事を始めるため99444901133に、リンクされたページで与えられる最大のものです。 制限時間。回答で与えられたよりも大きい最初の正解の1週間後に与えられた最大の正解を受け入れ99444901133ます。 これまでのスコア。 Python(primo) 4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111 J(randomra)(この回答は、2013年2月21日に1週間のタイマーを開始しました。) 222223333333

3
ダンジョン建設セット
子供の頃、私はIntellivisionゲームAdvanced Dungeons and Dragons:Treasure of Tarminをプレイしました。3Dグラフィックスにより、衝撃的なリアリズムを備えた、一人称視点の視点が得られます。 しかし、その後、C-64を手に入れました。そして、画面の周りにカーソルを移動し、Ctrlキーと数字で色を設定し、好きな場所に記号を配置することで、40x25の文字グリッドに描画することができました(なぜそうさせないのbashですか?)。文字セットには、三角形のコンポーネントとソリッドブロックのコンポーネントがありました。だから私は、その媒体を介してグリッドに自分の視点のレンダリングを生成する方法を推論することができました。 今週、「ダンジョンコンストラクションセット」について、スパイラルバインドされたノート用紙で、約3年前の仕様を見つけました。 (更新:注意深く読んでいる人は、これが傾斜部分で完全には結びつかないことに気付くでしょう。修正された数値を以下に示します。) Treasure of Tarminはグリッド上でプレイされましたが、壁はグリッドの正方形の端にのみ存在していました。バイトが何であるかを学んだ後、バイトでマップを作成すると、マップ上の各正方形がそのエッジごとに4つの可能な状態を持つことができることに気付きました。 遮るものがない 壁 ドア 他に何か? (昨夜まで)私はそれを書くことはできませんでした。他の人が試すのは楽しいかもしれないと思った。 したがって、あなたのタスクは、私の(修正された!!)仕様を実装する文字モードベースの迷路レンダラーを実装することですが、2013年のテクノロジーを使用します。 入力 仕様ではドアのレンダリングを定義していないため、壁と壁以外のオプションのみを想定します。簡単にするために、入力は次のような文字列の行で構成されるマップです。 WN.. .N.. .N.. .N.. .N.E W... .... .... ..S. ...E W... .N.E W... .N.. ...E W... .... .... .... ...E W.S. ..S. ..S. ..S. ..SE それは5x5のマップになります。左上隅(1,1)にはWestおよびNorthの壁セットがあります。右下隅(5,5)には、S外側とE外側の壁が設定されています。 これは、マップナビゲーションがないとかなり面白くありません。したがって、少なくとも、プレーヤーを北向きの(1,1)に置き、提供します。 [F]orward, [B]ackward, turn …

29
番号を並べ替えます。ソルタ
配列を使用せずに数字の数字を並べ替えるという不運に触発されましたが、SOの質問よりも優れたコードゴルフだと思いました。 正の整数を指定して、その整数の桁をソートします。 最低スコアが勝ちます! 0ポイントから始めます。 1文字につき1ポイントを追加します。 使用する配列ごとに20ポイントを追加します。 コードの複数文字列ごとに10ポイントを追加します。(他の操作を行わずに整数に変換される限り、初期入力を除きます。) プログラムが処理できる最大桁数が(マシンではなく)プログラムによって制限されている場合は、32ポイントを追加します。 コードで別の引数を指定して並べ替えの方向を変更できる場合は、10ポ​​イントを減算します(たとえば、降順の並べ替えの場合は0、昇順の場合は1)。 言語はすべて異なりますが、アイデアは反復可能な数字のハッカーを避けることです。 例: 入力:52146729 出力:97654221または12245679 ノート: プログラミング言語が提供する組み込みの並べ替え機能を使用しますが、その並べ替え機能に文字列または配列が含まれる場合は、ペナルティがかかります! ソリューションは、整数を直接取得する関数として、またはargv、ファイルまたはストリームから引数を取得して整数に変換するプログラムとして作成できます。すぐに整数に変換し、それ以上の操作を行わずに元のchar *入力を破棄する限り、ペナルティは適用されません。 このペナルティは、プログラムテキスト内の文字列リテラルだけでなく、文字列または反復可能オブジェクトを間違いなく入力または出力するプログラム機能のすべての部分に適用されます。たとえば、JavaScriptにString.prototype.splitは入力(this)として少なくとも1つの文字列があり、出力として配列があるため、それを使用する場合は+30です。 これらのルールが、初期/最終I / Oではなく、アルゴリズム設計の原則をガイドするようにしました(したがって、注2)。その式がプログラムの最初のエントリポイントである限り、の署名が文字列を返すと言ってint(input())も、ペナルティは適用されるべきではないと思います。プログラムの最終的な出力がある場合は同様に、そして文字列でなければなりません、ペナルティが土壇場の文字列の鋳造作業には適用されません。とは言っても、これはプログラムである必要があるとか、I / Oを出入りさせる必要があるとは、明示的に言ったことはありません。を受け取り、を返す関数は機能し、これらのあいまいさの影響を受けません。inputprint(x)xintint

5
ランダム迷路を印刷する
ロックされています。この質問とその回答はロックされています。なぜなら、質問はトピックから外れていますが、歴史的に重要だからです。現在、新しい回答やインタラクションを受け入れていません。 選択したアルゴリズムを使用してランダム迷路を生成および印刷するプログラムを作成します。迷路は、プログラムの複数の実行で異なる必要があります。高さと幅は、コマンドライン引数として指定されます。使用し|、垂直壁用-水平壁用と+コーナー。迷路は壁に囲まれており、入り口には壁が欠けています。迷路には、#少なくとも1つの入り口から到達可能な宝物が含まれています。 $ python2 random-maze.py 4 5 +-+-+ |#| | | +---+

30
mod-or-ビット演算を使用せずに、数値が奇数か偶数かを判断する方法は?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Code Golf Stack Exchangeのトピックになるようにします。 6年前に閉鎖されました。 mod-or-ビット演算を使用せずに、数値が奇数か偶数かを判断する方法は? この課題は非常に非効率的ですが、創造的なソリューションのために枠を超えて考える能力に課題があります。 編集: 関数を作成してください。また、正規表現は楽しい応答ですが、関数は有効な数値を受け入れる必要があります。 背景:この質問は、私がプログラミングを始めたばかりの頃に由来します。クラス初日の宿題は、「奇数」または「偶数」を出力する簡単なプログラムを書くことでした。私が小学生だったので、それ%を決定するためにどのように使用するかを単に示したクラスのために持っていた本を読みませんでした。私はこれを行う方法を考えようとして部屋で前後に約30分ペースを費やし、講義から、あるプリミティブ型から別の型にキャストされると数値が精度を失い、獲得する可能性があることを思い出しました。したがって、数値を取得し、それを2で割ってから元の数値と等しくなかった場合は、その数値が奇数であることがわかります。 翌日、私たちのインストラクターがプログラムを評価している間、私はit然としました。彼はそれが最も効率的ではないにしても、問題を解決する方法であると考えていました。

5
まだ解析しているRコードの最もlineい行は何ですか?
目標は、次のような1行のRコードを生成することです。 できるだけ少ない できるだけ多くの文字で(最大100文字) そして、可能な限りいです(「lyい」とは、非効率的な計算戦略、終了セミコロンなどの無関係な文字などを意味します)。 あなたの最悪の、紳士をしてください! 勝利の客観的基準 勝利の答えは、次のポイントスケールに従って判断されます(最も多くのポイントを持つ答えが勝ちます)。 0〜10(100ポイント)のシーケンスを生成します できるだけ多くの文字(N)で N = 100の場合、0ポイント N <100の場合、N-100ポイント(つまり、100未満のすべての文字でポイントを失う) N> 100の場合、2(100-N)ポイント(つまり、100を超える文字ごとに2ポイントを失う) R Infernoのネガティブな例をできるだけ多く使用する 引用例ごとに6ポイント 各例は1回のみカウントされます。これは、「炎の墓に投獄された異端者」が一度だけ投獄できるためです。したがって、コード行の2つのグローバル割り当てでは、6ポイントしか得られません。
19 code-challenge  r 

7
ブラインドランダムソート
ソートアルゴリズムの非常に一般的なパターンを次に示します。 def sort(l): while not is_sorted(l): choose indices i, j assert i < j if l[i] > l[j]: l[i], l[j] = l[j], l[i] これらのアルゴリズムは、インデックスiとjがリストの状態に基づいて慎重に選択されるため、うまく機能しますl。 しかし、が表示されずl、盲目的に選択しなければならなかった場合はどうなりますか?それではリストをどれくらい速くソートできますか? あなたの課題は、の長さのみを指定して、インデックスのランダムなペアを出力する関数を書くことですl。具体的には、出力2つのインデックス、しなければならないi, j、と0 <= i < j < len(l)。関数は任意の長さのリストで機能するはずですが、長さ100のリストでスコアリングされます。 スコアは、上記のパターンに従って一様にランダムにシャッフルされたリストをソートするために必要なインデックス選択の平均数であり、インデックスは関数に従って選択されます。 長さ100の均一にランダムにシャッフルされたリストで、繰り返しのエントリなしで、1000回を超える試行のインデックス選択の平均数を取得して、提出物を採点します。 提出物が明らかに非競争的または終了しない場合、私はより少ないトライアルを実行する権利を留保します。複数の上位の提出物が計算リソースの限界でエラーの範囲内に残っている場合、さらなる計算リソースを負担できるようになるまで、以前の提出物を勝者と宣言します。 Pythonのスコアリングプログラムの例を次に示します。 import random def is_sorted(l): for x in range(len(l)-1): if l[x] > l[x+1]: return …

1
テトリス戦略
あなたの仕事は、スコアとコードサイズのバランスが取れたテトリス戦略を実装することです。 このバージョンのゲームでは、tetrominoesが回転し、上から20行10列のグリッドにドロップされます。落下中は、回転または水平方向への移動はできません。いつものように、ドロップされたピースは、グリッドの底に達するか、さらに下向きの動きがすでに占有されている正方形との衝突を引き起こすと停止します。 ときにn水平線が完全に埋まる、それらは同時に崩壊、グリッドが補充されたn上部に空行、およびスコアが2だけインクリメントされるN -1点。nそれぞれ1,3,7,15ポイントだ= 1,2,3,4。線が消えると、一部のブロックが空中に浮いたままになることがあります(「重力連鎖反応」はありません)。 現在のピースを希望する場所に表示する余地がない場合、グリッドはクリアされ、現在のピースは無視され、ゲームは次のピースを現在のものとして続行します。そのためのペナルティはありません。 ピースタイプのストリームを読み、それらを回転させる方法とドロップする場所を決定する必要があります。あなたが作品を見ることができます:次のピース(一つだけ)のための先読みが許可されているi+1に応答する前にi、しかし、あなたはの運命を決定している必要がありますiを見て前にi+2。入力の最後の部分を超える先読みは利用できません。 Tetrominoタイプとその回転は、次の表に従ってエンコードされます。 type 0 1 2 3 4 5 6 O I Z J L S T ┌────┬────┬────┬────┬────┬────┬────┐ rotation 0 │## │# │## │ # │# │ ## │### │ │## │# │ ## │ # │# │## │ # │ │ │# │ …

1
アドベントチャレンジ1:サンタが現在の金庫をアンロックできるように助けてください!
次へ>> 記述キーワード(検索用):2つの行列を同等にする、重複、配列、検索 チャレンジ サンタは過去にエルフがボールトからプレゼントを盗んだという歴史があったため、今年は非常に割れにくいロックを設計し、今年はエルフを締め出したようです。残念ながら、彼は組み合わせを失い、それを開く方法もわかりません!幸いなことに、彼はあなたにその組み合わせを見つけるプログラムを書くように依頼しました。それは最短のものである必要はありませんが、できるだけ早く見つける必要があります! 彼には非常に厳しいスケジュールがあり、非常に長い間待つ余裕はありません。スコアは、プログラムの合計ランタイムに、スコアリング入力に対してプログラムが出力するステップ数を掛けたものになります。最低スコアが勝ちます。 仕様書 ロックは1と0の正方行列です。1と0のランダムな配置に設定され、指定されたコードに設定する必要があります。幸いなことに、サンタは必要なコードを覚えています。 彼が実行できるいくつかのステップがあります。各ステップは任意の連続したサブマトリックスで実行できます(つまり、左上隅と右下隅で完全に囲まれているサブマトリックスを選択する必要があります)(非正方形のサブマトリックスにすることができます): 右に90度回転* 左に90度回転* 180度回転 各行n要素を右または左に循環(ラップ) 各列m要素を上下に循環(ラップ) 水平に反転 垂直に反転 主対角線で反転* メインの対角線を反転* *サブマトリックスが正方形の場合のみ もちろん、彼はマトリックス全体でこれらのステップを実行することもできます。1と0はマトリックス上でのみ交換できますが、正方形の値は直接変更できないため、1と0の数は開始構成と終了構成で同じです。 フォーマット仕様とルール 入力は、必要な妥当な形式の2つの正方行列(開始位置と終了位置)として与えられます。出力は、読み取り可能な形式のこれらの手順のシーケンスである必要があります。これはコードゴルフではないので、簡単に検証可能な形式にしてください。しかし、それは厳密な要件ではありません。必要に応じて、入力の行列の辺の長さを選択できます。 あなたのプログラムは私のコンピューターで実行され(Linux Mint、誰かが気にするならリクエストに応じて正確なバージョンの詳細が利用可能です:P)、コマンドラインで「Enter」を押してからコマンドが終了します。 テストケース 1 0 0 1 0 0 0 0 0 1 1 0 -> 0 0 0 0 0 1 1 0 -> 1 1 1 1 …

12
あなたのベース97はすべて私たちのものです
多くのプログラミング言語は、印刷可能なASCII、タブ、改行のみを使用して記述されています。これらの97文字は、8ビットバイト(実際には256の異なる文字を保持できる!)に格納されます。これは非常に非効率的です-特に、すべてのバイトがカウントされるコードゴルフでは!この課題では、ベースコンバージョンを使用してスコアを下げることができます。 チャレンジ プログラム/関数は、文字列または文字配列を入力として受け取り、それをベース97の数値として解釈します。次に、これを256ベースの数値に変換し、 この数値を表すために必要なシンボル(バイト)の数をカウントします。このカウントは、プログラム/関数の出力/戻り値になります。 base-2およびbase-10(2進および10進)を使用した簡単な例:入力がの場合、1011010110 2 = 22 10(出力を表すのに2桁必要)なので、出力は2になります。同様に、1101 2は13 10になり、出力も2になり、110 2は6 10になるため、出力は1になります。 入力文字列には、95個の印刷可能なASCII文字すべて と、基本変換用の97個の記号のソースアルファベットを作成する改行\n文字とリテラルタブを含めることができます。したがって、正確なアルファベットは次のようになります(and を実際のリテラルタブと改行で置き換えます。改行の後のリテラルスペースに注意してください)。\t\t\n \t\n !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ このアルファベットの順序は重要であることに注意してください。たとえば、base-97 \tはdecimal 0に対応し、decimal に!対応します3。 いくつかのテストケース:(空の文字列を処理する必要はありません) Input Output 'example@domain.com' 15 'All your base are belong to us!' 26 ' abcd' 9 '~ abcd' 10 'ABCDEFGHIJK' 9 'zyxwvutsrpq' 10 '{".~"}.~' 7 '\t\t\t\t\t\t\t\t' 1 (with …

11
PPCGを出力するプログラム…を出力するプログラムを出力します
チャレンジ: 実行すると、別の言語で実行可能な2番目のプログラムのソースコードを出力するコードを記述します。2番目のプログラムは、3番目の言語で実行できる3番目のプログラムのソースコードを出力する必要があります。最後のプログラムはPPCG、オプションの単一の末尾改行で出力する必要があります。 勝者は、ほとんどの言語で提出されます。最初のプログラムのコード長がタイブレーカーになります。 重要なルール: どのプログラムも同一にすることはできません 各言語は、いずれかのソースコードでのみ機能する必要があります。チェーンの2つの場所で同じ言語を壊さずに使用することはできません(例を参照)。 短縮されたチェーンは壊れたチェーンではありません。意図した場所とは異なる場所で言語を使用でき、最終結果がまだPPCGである場合、それは無効です 言語のすべてのバージョンは一意の言語としてカウントされます(ただし、ルール番号2に留意してください) 例: 無効な提出: print("""print'disp("PPCG")'""") Python 3:print("""print'disp("PPCG")'""")プリントprint'disp("PPCG")' Python 2:print'disp("PPCG")'印刷disp("PPCG") オクターブ:disp("PPCG")プリントPPCG これは正常に動作、しかし:あなたは、チェーンを壊すことなく、Pythonの2に、第1および第2のコードの両方を実行することができますので、これはルール番号2に違反します。 スコア3の有効な提出: print("""print'disp("PPCG")'""") Python 3:print("""print'disp("PPCG")'""")プリントprint'disp("PPCG")' Perl:print'disp("PPCG")'印刷disp("PPCG") オクターブ:disp("PPCG")プリントPPCG これは、無効な例とまったく同じコードです。違いは、ルール番号2に従う言語を選択したことです。最初のコードはPerl / Octaveで、2番目のコードはPython 3 / Octaveでも、最後のコードはPython 3 / Perlでも実行できません。Python 2を言語の1つとして使用していないため、Python 2は最初の2つのプログラムを実行できますが、これは有効です。

4
最小限の単語検索
先週、私たちは英語の上位10,000語を使用して最短の1次元文字列を作成することに取り組みました。さあ、同じチャレンジを2Dで試してみましょう! あなたがする必要があるのは、上記のすべての単語を取得し、それらを可能な限り小さな長方形に入れて、重複を可能にすることです。たとえば、単語がの場合["ape","pen","ab","be","pa"]、可能な長方形は次のようになります。 .b.. apen 上記の長方形のスコアは5です。 ルール: 単語内の複数の文字の重複は許可されています 言葉は8つの方向のいずれかに行くことができます 言葉は折り返せない 空の場所には任意の文字を使用できます これらの英語の上位10,000語を含む単語検索を作成する必要があります(Googleによる)。 スコアは、単語検索の文字数に等しくなります(未使用の文字を除く)。同点の場合、または提出が最適であることが証明された場合、最初に投稿された提出が優先されます。

4
圧縮された曜日
曜日のリストの入力が与えられると、リストの最短のソートされた表現を出力します。 入力の形式は、2文字のストリングの一つ以上からなる文字列であるSu(日)、 Mo(月)、 Tu(など)、 、We、Th、 FrおよびSa。入力は必ずしもソートされた順序で与えられるとは限りません。 入力を出力形式に変換するには、 入力を日曜日から始まる曜日で並べ替えます(例ThMoSaSuFrTuWe-> SuMoTuWeThFrSa)。 あいまいさを残さない場合は、略語を1文字に減らします。たとえば、最初のSが土曜日になることができなかったため、にSuMoTuWeなるはずSMTWです。これにより、出力がソートされなくなります(Tと同じ)。しかし、ThFrSaなるはずThFS火曜日と木曜日の両方が金曜日前にそれを減らしてくると、TFSあいまいさを作成します。 出力がnowの場合、代わりMTWTFに出力D(「week day s」を表します)。同様に、SSなるはずE週間のために終了。最後に、 SMTWTFSなるべきAために、すべての日。 入力と出力は両方とも単一の文字列でなければなりません。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース: In Out | In Out -----------------------|-------------------- SuTu STu | SuTuWe STW SuTuSa STuS | SuWeTh SWT TuThSa TTS | TuThSu STT Su Su | Sa Sa WeTh WT | FrTh ThF WeTu TW …

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