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

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

1
たたみばりソルバー
バックグラウンド タタミバリはニコリが設計した論理パズルです。 :Tatamibariパズルは、その中のシンボルの三つの異なる種類の長方形のグリッド上で再生され+、-。と|。ソルバーは、次の規則に従ってグリッドを長方形または正方形の領域に分割する必要があります。 すべてのパーティションには、シンボルが1つだけ含まれている必要があります。 +シンボルは、正方形の中に含まれている必要があります。 |シンボルは、幅よりも大きい高さを有する矩形に含まれなければなりません。 -シンボルは、高さよりも大きな幅を有する長方形に含まれなければなりません。 4つのピースが同じコーナーを共有することはありません。(これが通常の畳の置き方です。) 以下は、解決策を含むパズルの例です。 仕事 与えられたタタミバリパズルを解きます。 入出力 入力は、指定されたタタミバリパズルを表す2Dグリッドです。各セルは、4つの文字のいずれかが含まれています+、-、|、、お好みのキャラクターは非手掛かり細胞を表現するために。テストケースでは、アスタリスク*が使用されています。 タタミバリパズルの有効なソリューションを明確に表すことができる適切な出力形式を選択できます。これには以下が含まれますが、これらに限定されません(不明な場合は、コメントで質問してください)。 4タプルのリスト。各タプルには、長方形の上部インデックス、左インデックス、幅と高さ(または同等の表現)が含まれます。 入力と同じ形状の数値グリッド。各数値は長方形を表します 座標セットのリスト。各セットには、長方形内のセルのすべての座標が含まれます パズルに複数のソリューションがある場合、有効なソリューションをいくつでも(1つ以上)出力できます。入力には少なくとも1つのソリューションがあることが保証されています。 テストケース Puzzle: |-* *+| *-* Solution: 122 134 554 ===== Puzzle: +*** **|* *+** ***- Solution: 1122 1122 3322 3344 ====== Puzzle: |*+*+ ***** ****- ***+| +**** Solution: 12233 12233 44444 55667 …

1
放射線硬化環状キンポリグロット
チャレンジ 次の2つのプログラムを作成します。 2つの異なるプログラミング言語で実行します。 これらは、1つの言語の2つのバージョンではない場合があります。 1つのプログラムを実行すると、2番目のプログラムが出力され、その逆も同様です。 2つのプログラムは異なる必要があります(ポリグロットなし)。 しかし、ここにキャッチがあります: プログラムは放射線耐性を強化する必要があります。 つまり、んんn(以下で定義)の文字のセットが2つのプログラムのいずれかから削除されても、その機能には影響しません。 んんnは、プログラムの機能に影響を与えずに省略できる文字数として定義されます。 んんnは少なくとも111でなければなりません。 ルール 標準の抜け穴は許可されていません。 プログラムは適切な循環クインでなければなりません。彼らは彼ら自身のソースコードを読むことはできません。 スコアリングは次のように実行されます。 S1+ S2んS1+S2ん\frac{S_1+S_2}n S1S1S_1S2S2S_2 んんn これはコードチャレンジであり、最も低いスコアが勝ちます。 褒賞 このチャレンジは答えるのが難しいので、最初に答えた人に賞金を差し上げます。

5
それはクインだけではなく、アナグラムクインです!
タスク この課題の課題は、入力を取らないプログラムを作成し、できるだけ多くのアナグラムを使ってアナグラムを作成することです。 スコアは、プログラムのソースコードの有効なクインであるアナグラムの数を可能なアナグラムの総数で割った値、つまり有効なクインであるアナグラムのパーセンテージになります。 標準抜け穴と標準クインの規則が適用されます。 注:プログラムには少なくとも3 文字(3バイトではない)が必要です。 入力 それ自体のクインであるプログラムの各アナグラム(または順列)(つまり、スコアに含めているアナグラム)は、何も入力してはなりません。言語で入力が必要な場合は、小文字のAで構成される文字列がプログラムに与えられると想定できます。ただし、入力をいかなる方法でも使用してはなりません。 出力 nプログラムのソースコードの異なるアナグラムの数は有効なクインでなければなりません。ここnで、スコアに含めているアナグラムの数を表します。 これらのquine-anagaramは、変数に出力を書き込む以外の方法で出力できます。ファイル、コンソール、画面などへの書き込みが許可されます。関数returnも許可されます。 採点例 プログラムのソースコードがであるとしますcode。そして、 code出力code。 coed出力coed。 cdoe出力cdoe。 cdeo出力cdeo。 cedo出力cedo。 ceod出力ceod。 ocde出力ocde。 oced出力oced。 odce出力odce。 odec出力しないodecか、エラーを生成します。 oedc出力しないoedcか、エラーを生成します。 oecd出力しないoecdか、エラーを生成します。 doce出力しないdoceか、エラーを生成します。 doec出力しないdoecか、エラーを生成します。 dcoe出力しないdcoeか、エラーを生成します。 dceo出力しないdecoか、エラーを生成します。 deco出力しないdecoか、エラーを生成します。 deoc出力しないdeocか、エラーを生成します。 eodc出力しないeodcか、エラーを生成します。 eocd出力しないeocdか、エラーを生成します。 edoc出力しないedocか、エラーを生成します。 edco出力しないedcoか、エラーを生成します。 ecdo出力しないecdoか、エラーを生成します。 ecod出力しないecodか、エラーを生成します。 このソリューションのスコアは 受賞基準 最も高いスコアのソリューションが勝ちます!引き分けの場合は、char-count(byte-countではない)が高い方が勝ちます(つまり、コードボウリング)。それでも同点が続く場合は、以前に投稿されたソリューションが優先されます。

6
N基底の回文である数
負でない整数が指定された場合n >= 0、x_i >= 3完全にn異なるb基数の回文である整数のシーケンスを永久に出力します2 <= b <= x_i-2。 これは基本的にOEIS A126071の逆で、そのシーケンスのどのインデックスが値を持つかを出力しますn。b = x_i-1, x_i, x_i+1これらのベースの結果は常に同じであるため(値は常にパリンドロームであるか、常にそうでないか)、ベースを無視するように変更したため、少し異なります。また、オフセットが異なります。 x_i>= 3それぞれの結果の最初の項nがA037183になるように、数値に制限されています。 出力形式は柔軟ですが、数値は適切な方法で区切る必要があります。 例: n seq 0 3 4 6 11 19 47 53 79 103 137 139 149 163 167 ... 1 5 7 8 9 12 13 14 22 23 25 29 35 …
10 code-golf  sequence  base-conversion  palindrome  code-golf  array-manipulation  matrix  code-golf  string  ascii-art  code-golf  ascii-art  physics  code-golf  number  sequence  fibonacci  code-golf  ascii-art  packing  code-golf  string  hexadecimal  code-challenge  restricted-source  decision-problem  binary  code-golf  code-golf  code-golf  stack-exchange-api  code-golf  string  parsing  generation  data-structures  code-golf  kolmogorov-complexity  graphical-output  code-golf  array-manipulation  integer  generation  data-structures  code-golf  number  random  probability-theory  king-of-the-hill  java  minesweeper  code-golf  string  kolmogorov-complexity  animation  code-golf  string  code-golf  code-golf  quine  code-golf  internet  code-golf  arithmetic  base-conversion 

1
配列とプログラムを半分に分割
前書き (何らかの理由で)長方形の整数配列を半分に均等に分割するプログラムを作成する必要があります。このタスクは計算集約型ですが、幸いにも計算を実行するデュアルコアマシンがあります。並列処理の利点を最大限に活用するには、プログラムを半分に均等に分割し、各コアが部分から独立して実行できるようにします。 入出力 入力は、少なくとも1×1のサイズの非負整数の長方形の2D配列であり、適切な形式で取得されます。このような配列の分割は、各水平行を接頭辞と接尾辞(どちらも空の場合があります)に分割することで得られます。分割を有効にするには、2つの隣接する行を同じインデックスまたは隣接するインデックスで分割する必要があります。たとえば、配列を考えてみましょう 2 4 5 5 6 3 9 7 1 7 7 0 0 0 3 6 7 8 1 2 4 7 6 1 6 6 8 2 0 0 これは有効な分割です: 2;4 5 5 6 3 ;9 7 1 7 7 0 ;0 0 3 6 …

7
ヤコビ行列を作成する
未知数のベクトルを取り、いくつかの一般的な微分可能関数を適用します。ヤコビアンは、次いで行列によって与えられるように。 たとえば、と仮定m=3しn=2ます。次に(0ベースのインデックスを使用) のヤコビアンfは この課題の目標は、このヤコビ行列を出力することです。 入力 プログラム/関数は、2つの正の整数mとを入力として受け取る必要nがfありuます。これらはそれぞれとのコンポーネントの数を表します。入力は、任意のソース(stdio、関数パラメーターなど)から取得できます。あなたはこれらが受け取られる順序を指示することができ、これはあなたの答えへのどんな入力でも一貫していなければなりません(あなたの答えで指定してください)。 出力 ヤコビ行列を表すもの。この表現は、ヤコビ行列のすべての要素を明示的に記述する必要がありますが、各項の正確な形式は、何が区別され、何が明確であり、すべてのエントリが論理的な順序で出力される限り、実装で定義されます。マトリックスを表すための受け入れ可能なフォームの例: 外部リストの各エントリがヤコビアンの行に対応し、内部リストの各エントリがヤコビアンの列に対応するリストのリスト。 各行がヤコビアンの行であり、行の各区切り文字で区切られたエントリがヤコビアンの列に対応する文字列またはテキスト出力。 マトリックスのグラフィック/ビジュアル表現。例:MatrixFormコマンドを使用したときにMathematicaによって表示されるもの 他のいくつかの密行列オブジェクト。すべてのエントリは既にメモリに格納されており、クエリできます(つまり、ジェネレータオブジェクトを使用できません)。例としては、Mathematicaが内部的にMatrixオブジェクトをどのように表すかが挙げられます エントリ形式の例: 形式の文字列。d f_i/d u_jここでi、およびjは整数です。例:d f_1/d u_2。dとf_1またx_2はの間のこれらのスペースはオプションであることに注意してください。また、アンダースコアもオプションです。 d f_i(u_1,...,u_n)/d u_jまたはの形式の文字列d f_i(u)/d u_j。つまり、関数コンポーネントの入力パラメーターf_iはオプションであり、明示的に指定するか、コンパクトな形式で残すことができます。 フォーマットされたグラフィック出力。例:式を評価したときにMathematicaが出力するものD[f_1[u_,u_2,...,u_n],u_1] 開始インデックスとその目的uを選択できますf(回答で指定してください)。出力は、必要なシンク(stdio、戻り値、出力パラメーターなど)への出力です。 テストケース 次のテストケースでは、この規則を使用していm,nます。インデックスは0ベースで表示されます。 1,1 [[d f0/d u0]] 2,1 [[d f0/d u0], [d f1/d u0]] 2 2 [[d f0/d u0, d f0/d u1], [d f1/d u0, d …

4
カウンターを特定の数に進める最短の方法を見つける
カウンターがあります。これは次のような小さなデバイスです。 表示がから0000に変わり9999ます。上部に小さなプッシュボタンがあり、カウントを1増やします。右側に小さなノブがあり、その目的はカウンターを0にリセットすることです。 さて、小さなつまみの重要な点は、後ろに回すと、もう一度前に回すと、必要な桁を増やすことができるということです。カウンターボタンを10回押してカウンターが表示されたら0010、小さなクリック音が聞こえるまでノブを後ろに回してから、もう一度前に回してまっすぐにし0090ます。 ただし、つまみは、数字を進めるたびに、常に同じ数字のすべての出現を1ずつ増やします。カウンタが示すのであれば6060、あなたはそれがに増加させることができ7070ないように、6070または7060。また、ノブはキャリーせずに9s にロールオーバーする0ため、またはの代わりに0990進みます。000010001100 カウンターを特定の数に設定する最も効率的な方法を知りたいです。あなたの仕事は、そうするために必要なボタン押しとノブ前進の最短シーケンスを決定するプログラムまたは関数を書くことです。 プログラムは、入力としてから0000までの4桁の数値を受け取り9999、一連のステップを次の形式で返します。 > 0001 C > 0093 C12345678C12345678CCC > 1000 C12345678C12345678C12345678C12345678C12345678C12345678C12345678C > 9999 012345678 ここでC、「カウンターボタンを押す」をD表し、0から9までの数字は、「ノブを使用してすべての発生をD1つ進める」ことを表します。 プログラムは、考えられるすべての4桁の組み合わせに対して有効なステップのシーケンスを生成する必要があり、10,000ケースすべてに必要なステップの合計数によってスコアが付けられます。引き分けの場合(最適なアルゴリズムが見つかる可能性が高い)、短いコードが優先されます。

5
亡命マップの組み合わせのパス
この質問には、このゲームのゲーム「Path Of Exile」のメカニックが登場します。MAPSと呼ばれるものがあります。これらは、高レベルのエリアを開くために使用できるアイテムです。それらの3つを組み合わせて、アップグレードされたものを取得することもできます。この挑戦の課題。アップグレードの組み合わせは次のとおりです。 A Crypt Map 68 -> Sewer Map E Dungeon Map 68 -> Channel Map I Grotto Map 68 -> Thicket Map O Dunes Map 68 -> Mountain Ledge Map U Pit Map 68 -> Cemetery Map T Tropical Island Map 68 -> Arcade Map N Desert Map …

2
各漂流トラッカーをご覧ください
あなたの仕事は、多くの浮遊魚追跡装置のバッテリーパックを最短時間で交換することです。基地を基地ヘリコプターに残し、各トラッカーを1度訪問して、基地に戻る必要があります。 最適なルートを見つけることは難しいことが知られていますが、さらに困難があります!各トラッカーにはドリフト速度があります(これはその日の定数であると想定されます)。 これは、ノードの移動という課題が追加された、巡回セールスマンの標準的な問題です。有効なツアーを簡単に見つけられるはずです。主な課題は、最適に近いツアーを見つけるアルゴリズムを開発することです。私は現在のN = 300で完璧なツアーを見つけることは不可能だと予測しています(しかし、私は間違っていると証明されたいです)。 ルール プログラムには、STDINまたはコマンドライン引数を介して、一連のトラッカーデータが提供されます。各トラッカーを1回だけ訪れてベースに戻るルートを見つける必要があります。出力は、空白で区切られたトラッカーID:時間のペアのリストである必要があります。 位置はセンチメートル(cm)で表示されます。 時間は、t = 0から始まる秒単位で測定されます。 速度はcm /秒で与えられます。 各トラッカーIDは、1から8文字の大文字です。 IDが「BASE」のベースはにあり(0,0)ます。 入力と出力のすべての数値は、符号付き整数を使用します。 入力は、1つ以上の空白またはスラッシュで区切られたトラッカーです。 各トラッカーは持っていますID:x,y,vx,vy(例:フォーマットをA:566,-344,-5,11) 時間tでは、トラッカーはにあります(x+vx*t, y+vy*t)。 ヘリコプターは速度5000 cm /秒(時速180 km)を超えてはなりません。 出力は、時間順にホワイトスペースで区切られた訪問である必要があります。 各訪問はIDにする必要があります:時刻の形式(例:A:5723) (例:あなたの出力の最後の訪問は、ベースにする必要がありますBASE:6120) 複数のトラッカーが同じ位置にある場合、それらの間を移動するのにかかる時間はゼロです。 標準の抜け穴は禁止されています。 データセットの例 A:77000,88000,-120,80 B:52000,-12000,0,-230 C:-140000,-23000,-270,110 非最適なソリューションの例: A:30 B:60 C:120 BASE:160 A:30 B:60 C:120 BASE:130ヘリコプターは10秒でベースに戻るために17268 cm /秒で飛行する必要があるため、無効になることに注意してください。 テストデータセット AA:-164247,-378265,182,113 AB:-1494514,-385520,-25,80 AC:-744551,832058,-13,-123 AD:-930133,1598806,97,177 AE:-280777,-904936,-48,305 …

4
あなたが狂ったコードに行を入れて、それをすべて振ります
1つのプログラミング言語を使用して、5つの単一行プログラムを記述します。各プログラムは、個別に実行すると、ハリーニルソンの1972曲「Coconut」に最初の詩の異なる行を出力します。 兄はココナッツを買った、彼はそれを10セントで買った 彼の妹はもう1つ持っていた、彼女はライムにそれを払った 彼女はココナッツにライムを入れた、彼女は両方を飲んだ 彼女はココナッツにライムを置いた、彼女は両方を飲んだ 彼女ライムをココナッツに入れ、彼女はそれらを両方飲みました (歌詞全体) 最後の3行は歌詞が同じなので、最後の3つのプログラムも同じかもしれません。 これらの5つの単一行プログラムを単一の5行プログラムで行ごとに1つ配置できる5つの階乗または120の方法があります。これらの120の組み合わせのできるだけ多くに対して、5行プログラムが詩全体を適切な順序で出力するように、1行プログラムを最適化する必要があります。 例 最も単純な答えは、5つの単一行の印刷ステートメントで、最後の3つは同一です。 print('Brother bought a coconut, he bought it for a dime') print('His sister had another one, she paid it for a lime') print('She put the lime in the coconut, she drank them both up') print('She put the lime in the …

3
mathpack数値リテラル
序文 非常に白熱した状況では、ゴルフをさらに進める必要があります。 (例えば、あなたの答えが100文字で、それを99にすることができなかったことが恥ずかしいチャレンジの 場合)その場合、これからはこのチャレンジの勝者のアルゴリズムを使用します:) ゴール uint32を取り、最も圧縮された形式を返すプログラムを作成する必要があります。 $ mathpack 147456 9<<14 数に対して複数のソリューションがあります。一番短いものを選んでください 圧縮されたフォームが元の数以上の場合、元の数を返します ルール 任意の言語で記述-任意の言語で出力 私はCのそれを知ってる'abc'で6382179、あなたは、この変換でかなり良い結果を得ることができます。しかし、この課題では言語が分離されているので、失望しないでください 外部変数の使用は禁止されています。演算子とリテラルと数学関連の関数のみ! 得点 テストケースは次のとおりです。pastebin.com / 0bYPzUhXスコア(パーセント)は、byte_size_of_your_output / byte_size_of_the_list 改行なしの比率になります。 (万が一に備えて最高のコードを確認するので、自分でこれを行う必要があります) 勝者はスコアと出力の言語によって選択されます! 例: $ mathpack 147456 | mathpack 97787584 | mathpack 387420489 9<<14 | 9e7^9e6 | pow(9,9)

1
数独パズルはいくつありますか?
これは数独ソルバーでも数独チェッカーでもありません。 あなたの課題は、(3次元である数独パズルの「ブロック」サイズの入力として与えられ、その関数またはスクリプトを書くことである古典的な9x9のボードのために、4を16×16ボード、等)数の近似値を計算しますそのサイズで存在する明確なパズル(ソリューション)の。 たとえば、入力3が与えられた場合、プログラムは、6,670,903,752,021,072,936,960という異なる精度の9x9数独パズルの既知の数、またはさまざまな対称性を考慮に入れると5,472,730,538 の望ましい精度の近似値を出力する必要があります。ソリューションでは、対称性をカウントするか無視するかを指定する必要があります。 「必要な精度」は未定義のままです。プログラムは一定時間実行され、その結果を出力したり、指定された有効桁数まで計算したり、永久に実行されたりして、ますます適切な近似を出力します。重要なのは、有限の時間で、必要な精度で結果を計算できるようにする必要があるということです。(したがって、「42」は許容される回答ではありません。)結果の精度を使用可能なマシンのフロートに制限することは許容されます。 オンラインリソースにアクセスしたり、ソースコードをファイル名に保存したりすることはできません。 PS:私はこれが難しい問題であることを知っています(私が間違っていなければNP完全です)。しかし、この質問は、おおよその統計的解決策を求めているだけです。たとえば、1つ(または2つ以上)の制約を満たすランダムな構成を試して、それらの数を計算し、3つの制約すべてを満たすパズルを取得する頻度を確認できます。これは小さいサイズではまともな時間で動作しますが(確かにsize = 3、場合によっては4の場合)、アルゴリズムは任意のサイズで動作するように十分に汎用的である必要があります。 最良のアルゴリズムが優先されます。 PS2:私は、コードゴルフからコードチャレンジに変更して、問題の難易度をより適切に反映し、馬鹿でよくゴルフされたものよりもスマートなソリューションを奨励しました。しかし、明らかに「最適なアルゴリズム」は不明確なので、適切に定義してみましょう。 十分な時間を与え、一定の要素(CPUとインタプリタの速度を含む)を無視するか、または同等に、それらの漸近的な動作を考慮すると、どのソリューションが正確な結果に最も速く収束するでしょうか?

16
交換なしのランダムサンプリング
範囲から引き出された一連の個別の乱数を出力する関数を作成します。セット内の要素の順序は重要ではありません(ソートすることもできます)が、関数が呼び出されるたびにセットの内容が異なる可能性がある必要があります。 この関数は、3つのパラメーターを任意の順序で受け取ります。 出力セットの数のカウント 下限(両端を含む) 上限(両端を含む) すべての数値が0(両端を含む)から2 31(両端を含まない)の範囲の整数であると想定します。出力は任意の方法で返すことができます(コンソールに書き込む、配列としてなど)。 審査 基準には3つのRが含まれます ランタイム -クワッドコアWindows 7マシンでテストされ、自由にまたは簡単に利用できるコンパイラーを使用します(必要に応じてリンクを提供します) 堅牢性 -関数はコーナーケースを処理しますか、それとも無限ループに陥るか、無効な結果を生成しますか-無効な入力の例外またはエラーは有効です ランダム性 -ランダムな分布では容易に予測できないランダムな結果を生成するはずです。組み込みの乱数ジェネレータを使用しても問題ありません。しかし、明白なバイアスや明白な予測可能なパターンがあってはなりません。ディルバートの経理部門が使用する乱数ジェネレーターよりも優れている必要がある 堅牢でランダムな場合は、実行時になります。頑健またはランダムでないと、その立場は大きく損なわれます。

9
任意のベース変換[終了]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、 Code Golf Stack Exchangeのトピックとなるようにします。 5年前休業。 1つの数値ベースシステムのブロックの配列を取り、それらを別の数値ベースシステムのブロックの配列に変換するルーチンを作成します。fromシステムとtoシステムはどちらも任意であり、パラメーターとして受け入れる必要があります。入力配列は任意の長さにすることができます(Cなど、配列の長さが配列に格納されていない言語を使用している場合は、長さパラメーターを関数に渡す必要があります)。 以下にその仕組みを示します。 fromArray = [1, 1] fromBase = 256 toBase = 16 result = convertBase(fromArray, fromBase, toBase); どちらが返される[0, 1, 0, 1]か、または返される可能性があります[1, 0, 1](先頭0のは、回答の値を変更しないため、オプションです)。 ここにいくつかのテストベクトルがあります: アイデンティティテストベクトル fromArray = [1, 2, 3, 4] fromBase = 16 toBase = 16 result = [1, 2, 3, …

7
テキストのサークル
コンソールの文字を使用して、特定の半径の円を作成する方法を見つけます。フォント名とサイズを指定してください。また、出力の例を少なくとも1つ提供してください。 例えば: 入力: 3 出力: ****** ** ** ** ** * * ** ** ** ** ****** ...まあ、半径3の「手描き」「円」よりも見栄えが良いもの。 ボーナス質問:楕円。:)

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