プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

3
4kデータURIで何ができますか?[閉まっている]
バウンティは終わり、phpdeveloperはConwayのGame of Lifeで勝利します 今日のWebプラットフォームは急速に進歩しています。以下のような特長CSS3アニメーション、変換、ドロップシャドウやグラデーション、<canvas>、<audio>および<video>タグ、SVG、WebGLの、そして多くはより多くのあなたがこれまで以上に、ブラウザで、そしてはるかに少ないコードではるかに行うことができますことを意味します。もちろん、多くの開発者はこれらの新機能を使用できません。なぜなら、彼らが作業するサイトやアプリケーションは、IE6のような古くから使われているブラウザとの後方互換性が必要だからです。 それで、ハーネスを外すとどうなりますか?好きな新機能をすべて使用できるようにしますか?少し生きて、夢中になり、ユーザーのたった1%しか利用できない奇妙な最先端の機能を使用しますか? もちろん、無制限のリソースとサーバーとの対話機能を使用すると、あらゆる種類の処理(メガバイトのコードやライブラリ、ビデオの読み込みなど)を実行できますが、課題は制約なしではあまり興味深いものではありません。このコンテストの主な制約は次のとおりです。単一の自己完結型の4k data:URIでできること?自己完結型とは、外部リソースを参照したり、WebSocketやXHRなどを使用してサーバーに接続したりしてはならないことを意味します。PNGやMP3などのリソースを埋め込みたい場合は、データURIにデータURIを含めるか、サブリソースを埋め込む他の巧妙な方法を考えてください。4kは、適切にURIエンコードされた4096バイトのASCIIテキストを意味します(URIエンコードを回避するために、選択した場合はbase64エンコードデータURIを使用できますが、通常、プレーンテキストのURIエンコードテキストはbase64より小さくなります)。 インスピレーションを提供するために、コンテストのテーマはStackOverflow memesです。ユニコーン馬上槍試合ゲーム、ジョンスキートファクトジェネレーター、フリーハンドサークルベースの描画プログラムなど、人気のStackOverflowとmeta.soミームのいずれかを使用して何かを作成します。 何らかの形でインタラクティブなエントリを奨励します。単純なアニメーションや静止画像だけでなく、イベント、CSSホバー、スクロール、ブラウザーウィンドウのサイズ変更など、ユーザーが考えられる方法を問わず、ユーザー入力に応答する必要があります。ただし、これは難しい要件ではありません。インタラクティブではない優れたデモが検討されますが、インタラクティブが好まれます。 エントリは、5つの主要なブラウザ(IE、Firefox、Chrome、Safari、Opera)の少なくとも1つの少なくとも1つのパブリックリリースで実行する必要があります。メインラインリリース(ブランチからのビルドまたはパッチを必要とするビルドではない)のみが許可され、特別な構成設定、プラグイン、またはストックブラウザーに付属していないその他のものは許可されません。ナイトリービルド、ベータ版、およびリリース候補版は問題ありません。エントリでテストしたブラウザをエントリで指定してください。これらの制約内で使用できるテクノロジーに制限はありません。純粋なSVGアニメーション、純粋なCSSアニメーション、WebGLを使用したJavaScriptでの処理、またはXMLやXSLTを使用した処理を行うことができます。外部依存関係のない有効なデータURIに詰め込み、ブラウザで実行できるようになれば、それは公平なゲームです。 3月21日(月)にこのコンテストに追加するために、この質問に対して賞金を用意します。担当者が101人しかいない場合、どうすれば報奨金を支払うことができますか?さて、今から月曜日までにこの質問に対する賛成票から得たすべての担当者は、報奨金になります(1回の報奨金に対して500の制限まで許可されます。キャップ)。エントリーはその後6日間受け入れられます。すべてのエントリは、賞金の有効期限が切れる前に少なくとも24時間以内でなければなりません。すべてのエントリをチェックアウトして評価する時間を与えてくれます。その時点で、私は最高の投票の回答を受け入れ、私のお気に入りの回答に賞金を与えます(最高の投票と同じ場合もそうでない場合もあります)。賞金を授与するための私の基準には、美しさ、楽しさ、巧妙なテクニック、新機能の興味深い使用、双方向性、サイズが含まれます。 始めるためのインスピレーションのソースは次のとおりです。 Chrome Experiments、最新のウェブプラットフォームのデモ集 Mozilla Hacks、Firefox 4の新機能の多くのデモを含む最新のWebプラットフォームに関するブログ JS1k、1k JavaScriptデモのコンテスト 10k Apart、10kコンテストのwebアプリ gl64k、現在64k WebGLデモ用に実行されているデモコンテスト Shader Toy、WebGLシェーダーでできることのデモセット エントリーの形式: エントリー名 data:text / html、Your%20data%20URI Firefox 4 RC、Chrome 10、Opera 11で動作します エントリーの説明。それが何をするのか、なぜそれがきちんとしているのか、どんな巧妙なテクニックを使ったのか。 <script> // code in expanded form to more easily see how it works …

30
ボウリング隊形を描く
あなたの目標は、一部のピンだけが残っている10ピンボウリングでフォーメーションのASCIIアートを表示することです。最少バイトが勝ちます。 10個のピンは三角形の形をしています。 O O O O O O O O O O ピンには1〜10のラベルが付いています。 7 8 9 10 4 5 6 2 3 1 ピンをとして描画し、ピンをとして描画Oしない.場合、フォーメーション1 3 5 6 9 10は次のとおりです。 . . O O . O O . O O 入力: 1から10までの数字の空でないサブセットを順番にリストするスペース区切りの文字列。 出力: 対応するフォーメーションを印刷するか、改行付きの文字列として出力します。 フォーメーションは画面の左側と同じ高さになるはずです。可視画像が正しい限り、空白は問題ありません。前後の空の行も問題ありません。 テストケース: >> 1 2 3 4 …

30
ソースコードを解読する[クラッキング試行のための強盗スレッド]
これは、メインのUnscramble the Source Codeチャレンジのコンパニオンスレッドです。 警官の回答の1つを解読できたと思われる場合は、このスレッドへの回答としてソリューションを投稿してください。 念のため、各サブミッションをクラックする試みが1回あります。クラッキングの試みは、ソースコードのスクランブルされていないバージョンになります。推測が説明(同じ文字、出力、そしてもちろん言語)と一致し、あなたが最初の正しい推測である場合、あなたはポイントを獲得します。プログラムがオリジナルと完全に一致する必要はなく、単に同じ文字を使用し、同じ機能を持っていることに注意することが重要です。これは、複数の正解がある可能性があることを意味します。 最も多くのポイント(成功したクラック)を持つ強盗が勝ちます。 リーダーボード 解法が多すぎる MartinBüttner:(Python 3、16、matsjoyce)、(CJam、15、Ypnypn)、(Mathematica、29、Fox Wilson)、(JavaScript、15、Caridorc)、(CJam、52、user23013)、(Pyth、11、 isaacg)、(PHP、22、kenorb)、(PHP、13、kenorb)、(Ruby、17、Doorknob)、(PHP、49、bwoebi)、(Mathematica、35、Tally)、(GolfScript、13、Peter Taylor )、(JavaScript、25、Cris)、(JavaScript、29、Cris)、(JavaScript、26、Cris)、(Bash、33、Debasis)、(JavaScript、10、Cris)、(Lua、28、ChipperNickel)、(Mathematica、18、Arcinde)、(JavaScript、30、Qwertiy)、(CJam、13、user23013)、(JavaScript、41、Ismael Miguel)、(Ruby、38、Doorknob)、(Marbelous、36、es1024)、(PHP、33、Ismael Miguel)、(JavaScript、29、Joe)、(JavaScript、28、Shawn Holzworth)、(Ruby、35、historcrat)、(CJam、19、Ypnypn)、(Ruby、17、Stephen Touset)、(JavaScript、36、MegaTom)、(JavaScript、24、fogcityben)、(Python 3、21、Reticality)、(JavaScript、10、Jamie Barker)、(JavaScript、15、Jamie Barker) 20ソルブ feersum:(Python 3、44 、Sp3000)、(C、70、es1024)、(MATLAB、41、COTO)、(Brainfuck、118、Sp3000)、(C、30、Ethiraric)、(C、28、Mig)、(Python 3、46、hosch250)、(Java、70、Rodolvertice)、(C、29、imallett)、(Java、226、nhahtdh)、(Little Man Computer、63、The Wolf)、(Python 2、89 、ベータ崩壊)、(Python 2、41、muddyfish)、(C、63、es1024)、(C ++、192、Arcinde)、(Java、108、durron597)、(C#、604、eshansingh1)、(C、44、アート)、(Java、134、Olavi Mustanoja)、(Bash、47、Vi。) 15解く user23013:(CJam、18、Ypnypn)、(JavaScript、26、hsl)、(CJam、12、COTO)、(PHP、23、bwoebi)、(PHP、54、Steve Robbins)、(CJam、32、Dennis)、(CJam、19、MartinBüttner)、(Bash、23、The Wolf)、(Ruby、33、Doorknob )、(CJam、34、Dennis)、(JavaScript、82、Ismael Miguel)、(PHP、80、Ismaelミゲル)、(QBasic、43、DLosc)、(QBasic、42、DLosc)、(ECMAScript、90、Cris) 10ソルブ squeamish ossifrage:(Python、44、Caridorc)、(PHP、52、PleaseStand)、(Befunge-93、17、user23013)、(BBC BASIC、187、Beta Decay)、(C、43、Allbeert)、(Ruby、 58、Rodolvertice)、(JavaScript、32、hsl)、(PHP、33、kenorb)、(Python 2、16、imallett)、(PHP、53、PleaseStand) Sp3000:(Python、154、Fox Wilson)、(Python、48、kgull)、(Python、68、horns)、(Python …

26
お気に入りのコンパイラをクラッシュさせる[終了]
適切な言語で完全に合法なコードを作成し、そのコンパイルによりコンパイラがクラッシュするか、無限ループ(無限コンパイル時間)になります。 制限事項: 現実の世界で使用されている標準言語を使用します。 標準のよく開発されたコンパイラを使用します(「すべてでクラッシュするCコンパイラを作成した」などの回答はありません)。 コードはその言語で合法でなければなりません(そのため、ほとんどの場合、コンパイラーまたは言語のバグを悪用する必要があります)。 使用するコンパイラのバージョンとオプションを指定して、他の人が複製できるようにします。 可能であれば、コンパイラがクラッシュした理由を説明してください。 楽しんで :)

12
プライムパリティペレグリネーション
この課題の目的は、各ステップの方向平面上の歩行グラフィカルに描写することであるの素数によって決定されたとそのバイナリ膨張のパリティ。具体的には、kkkkkk 最初の方向は固定されています、たとえば北です。 すべてのステップの長さは同じです。 ステップの方向は、北、西、南、または東で、次のように決定されます。 kkk が素数でない場合、方向は変わりません。kkk 場合素数であるとのバイナリ拡張ものの数が偶数の、右折。kkkkkk 場合素数であるとのバイナリ拡張ものの数が奇数を持って、左折。kkkkkk 実際の例として、最初の方向が北であると仮定します。最初の手順は次のとおりです。 k = 1k=1k=1は素数ではありません。そこで、現在の方向、つまり北に1ステップ移動します。 k = 2k=2k=2は素数であり、そのバイナリ展開10、は1の奇数を持っています。だから私たちは左に曲がり、今西に面しています。その方向に一歩進みます。 k = 3k=3k=3は素数であり、そのバイナリ展開、、11および偶数の1です。私たちは右に曲がり、今では北に面しています。その方向に一歩進みます。 k = 4k=4k=4は素数ではありません。そこで、現在の方向、つまり北に1ステップ移動します。 挑戦 入力:正の整数。NNN 出力:上記で定義されたウォークのプロット。NNN 追加のルール 初期方向は自由に(必ずしも北)選択することができるが、すべてに対して同じであるべきである。NNN 旋回ルールは、である、上述したものとは反対である奇数パリティに右折、さらに放置することができます。ただし、すべての同じである必要があります。NNN 出力は、歩行のグラフィカルな描写である必要があります。例えば: 歩行は線分で描くことができます。 訪問したポイントは、ドットなどのマーカーで表示できます。接続線セグメントの有無にかかわらず。 2色のラスターイメージを提供できます。1つの色は訪問したポイントに対応し、別の色は訪問していないポイントに対応します。 水平軸と垂直軸のスケールは同じである必要はありません。また、軸ラベルと同様の要素はオプションです。歩行がはっきりと見える限り、プロットは有効です。 一部のポイントは複数回アクセスされることに注意してください。プロットはこれに敏感ではありません。たとえば、ラインセグメントがプロットに表示される場合、各ユニットセグメントは、何度走査されても同じように表示されます。 コードは、任意のN無制限のリソースに対して機能するはずです。N時間、メモリ、またはデータ型の制限のために実際に大規模に失敗する場合は許容できます。 入出力は通常どおり柔軟です。特に、画像を出力するための標準的な手段のいずれかを使用できます。 バイト単位の最短コードが優先されます。 テストケース 次のプロットは、初期方向として北を使用しています。偶数パリティも右折します。歩行は線分で表されます。 N = 7: N = 3000: N = 20000: N = 159000: …

30
この文字列は正方形ですか?
次の条件が満たされる場合、文字列は正方形と見なされます。 各行の文字数は同じです 各行の文字数は、行数と同じです。 あなたの仕事は、与えられた入力文字列が正方形かどうかを決定するプログラムまたは関数を書くことです。 LF、CR、またはCRLFの選択により、入力を区切る必要がある場合があります。 改行文字は、行の長さの一部とは見なされません。 入力に末尾の改行があるかどうかを要求する場合がありますが、これは追加行としてカウントされません。 入力は文字列または1D文字配列です。文字列のリストではありません。 入力は空ではなく、スペースを含む印刷可能なASCIIのみを含むと想定できます。 正方形の文字列には真理値を、他の文字列には偽の値を出力する必要があります。 真実のテストケース: foo バー バズ 。 .s。 .ss .s。 (sはスペースを表します) ss ss (sはスペースを表します) ああああ ああああ ああああ ああああ ああああ 偽のテストケース: .. 。 。 。 .... .... 4444 333 22 333 333 abc.def.ghi いくつかの偽のケースで余分な空白行に注意してください。 これはコードゴルフです -最少バイトが勝ちます!

3
助けて、シェルピンスキーの三角形に閉じ込められている!
シェルピンスキーの三角形を 描くことは死ぬまで行われ た。ただし、他にも面白いことがあります。三角形をよく見ると、逆さまの三角形をフラクタルグラフのノードとして見ることができます。そのグラフの周りの方法を見つけましょう! まず、各ノードに番号を割り当てましょう。最大の上下逆三角形はノード0になり、レイヤーごとに(幅が最初に)下降し、連続した番号を左上から右の順に割り当てます。 小さい数字が少しぼやけていない大きなバージョンをクリックします。 ナンバリングを定義する別の方法は、センタノードがインデックスを有することである(もちろん、このパターンは、青色三角形内部無限に継続)0、およびノードの子i(次のより小さなスケールの隣接する三角形)がインデックスを有する3i+1、3i+2および3i+3。 このグラフをどのように移動しますか?任意の三角形から実行できる最大6つの自然なステップがあります。 常に、エッジの1つの中点を通って、現在のノードの3つの子の1つに移動できます。これらの動きをN、SWおよびとして指定しますSE。例えば、我々はノード上で現在している場合2、これらのノードにつながる7、8、9それぞれ。エッジを介した(間接的な子孫への)他の移動は許可されません。 また、三角形のエッジに触れない限り、3つの角のいずれかを介して、直接の親または2つの間接的な祖先のいずれかに移動できます。これらの動きをS、NEおよびとして指定しますNW。例えば、我々はノード上で現在している場合31、Sにつながる10、NE無効になりますとNWにつながります0。 挑戦 2つの負でない整数xとが与えられた場合、上記の6つの動きのみを使用yしxてy、からまでの最短経路を見つけます。最短経路が複数ある場合は、いずれかを出力します。 コードは、上の図に示されている5つのレベル以外にも機能するはずです。あなたはそれを仮定するかもしれませんx, y < 1743392200。これにより、32ビット符号付き整数内に収まることが保証されます。これは、ツリーの20レベルに対応することに注意してください。 コードは有効な入力を5秒未満で処理する必要があります。これはブルートフォース幅優先検索を除外しますが、かなり緩やかな制約である必要があります。私の参照実装は、深さ1000の任意の入力を0.5秒で処理します(ノードの場合は480桁の数値です)。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 出力は、フラット、文字列の明確なリストでなければならないN、S、NE、NW、SE、SW、任意の合理的なセパレータを使用して(スペース、改行、コンマ、","...)。 標準のコードゴルフ規則が適用されます。 テストケース 最初のいくつかのテストケースは、上の図を使用して手動で作成できます。その他は、回答が十分に効率的であることを保証します。それらについては、リストされていない同じ長さの他のソリューションがあるかもしれません。 0 40 => N N N N 66 67 => S SW N N N 30 2 => NW NW -or- NE SW 93 2 => NE SW 120 …

10
ファルコンヘビーステージ
次の4つのセットのいずれかから、置換なしの4バイトのセットを選択します(つまり、バイトが繰り返されません)。必ずしも特定の順序である必要はありません。 任意の1バイトエンコーディングの文字 00からFFの範囲のUnicode文字 -128〜127の範囲の符号付き10進整数 0〜255の範囲の符号なし10進整数 選択した4つの値(状態を入力してください)が有効な入力になります。各値を以下のASCIIアートワークのいずれかとペアにする必要があります。 4つの有効な入力のうちの1つを(何らかの方法で)与えられ、対応するASCIIアートで(何らかの方法で、文字列のリストでさえ)応答します。画像が1つの連続する2D領域にある限り、余白はすべての側面で許可されます。 最初のバイト: /\ / \ | | | | | | |____| \__/ | | | | | | | | /\ | | /\ / \| |/ \ | || || | | || || | | || || | | || || …

23
スカイラインをブラシストロークで覆う
負でない整数のスカイラインの高さリストが与えられた場合、それをカバーするために必要な連続した1ユニットの高さの水平ブラシストロークの数を答えます。 [1,3,2,1,2,1,5,3,3,4,2]として視覚化: 5 5 4 3 5334 32 2 53342 13212153342 9つのブラシストロークが必要です。 1 2 3 4 5555 66 7 88888 99999999999 例 [1,3,2,1,2,1,5,3,3,4,2] → 9 [5,8] → 8 [1,1,1,1] → 1 [] → 0 [0,0] → 0 [2] → 2 [2,0,2] → 4 [10,9,8,9] → 11

30
モードゴルフのプログラミングパズル
あなたの仕事はテキストを印刷することですGood morning, Green orb!。すべての文字がソース(モード)で最も頻繁に使用されるバイトと同じ回数だけ繰り返されます。末尾の改行は許可され、繰り返す必要はありません。 たとえば、ソースが print p p2回表示され、印刷が必要になると1バイトおきに表示されるため GGoooodd mmoorrnniinngg,, GGrreeeenn oorrbb!! 回答は、バイトカウントと出力が繰り返された回数の積によってスコア付けされます。たとえば、上記のコード(機能する場合)は7 * 2 = 14をスコアします。目標は、スコアを最小化することです。 コードには少なくとも1バイトが含まれている必要があります。 このプログラムを使用して、コードと出力が一致することを確認します

30
ゴールドバトルKoTH
この挑戦は終わりました。競合他社の最終スコアを見るには、ここをクリックしてください この課題では、各サブミッションは1つのボットです。各ボットはJavaScript関数でなければなりません。ボットは、金で最高の合計価値を獲得するために戦います。金は養殖するか、他のボットを殺すことで獲得することができ、治癒、攻撃、シールド、および養殖のアップグレードに使用されます。 目的: 最大1000ターン(ボットが1つだけ残った時点で終了)を含む多くのラウンドで、合計の価値が最も高いボット(取得したすべての金の合計)が勝者です。 ターン: 各ターンで、生きているすべてのボット(> 0 HP)が1回実行されます。次のいずれかの動きを返すことができます。 回復:HPを回復する 攻撃:別のボットからHPを削除します シールド:後の攻撃から守ります スタン:別のボットの次のターンをスキップします 農場:HPのコストでゴールドを獲得 アップグレード:特定の動きを改善する すべてのボットは、実行される前に移動を戻すため、スタン、ヒール、攻撃、シールドなどは、そのターンの後半に移動するボットには影響しません。たとえば、ボットAがボットBをスタンし、ボットBがターン順でボットAの後にある場合、ボットBは同じターンの後半に移動し、スタンは次のターンに発生します。 戦闘、農業、およびアップグレード: 各ボットの最大HPは100で、割り当てられたUIDは0〜99です。このUIDはラウンドごとに変化し、ボットがお互いを追跡する方法です。 ヒーリングは最も単純な動きの1つであり、レベルによって決まるHPの量を追加します(5 HPから開始)。ボットは100 HPを超えて回復することはできません。 UIDでボットを攻撃することもできます。レベル0で5 HPの基本ダメージがあります。ボットは、UIDを使用する次のターンをスキップしてスタンすることもできます。 ボットには追加のシールドHPがあり、制限はありません。このシールドHPは、他のボットからの直接攻撃によるダメージを吸収し、シールドによって追加されます。レベル0では、シールドは5シールドHPを追加します。 ファーミングでは、レベル0で5 HPのコストで5ゴールドを獲得します。この2 HPはシールドできません。ゴールドの唯一の用途は(勝ちを超えて)移動をアップグレードすることです。回復、攻撃、およびシールドの基本値は5 HPであり、農業は5ゴールドから始まります。これらの動きのそれぞれには、0から始まる個別のレベルがあります。これらの式は、HPまたは動きのゴールドの値を決定します(Lはレベルです)。 癒し: L + 5 攻撃: 1.25L + 5 シールド: 1.5L + 5 農業: 2L + 5 移動のアップグレードのコストは特定のレベルで同じであり、によって決定され2.5L² + 2.5L + 10ます。ここで、Lは現在のレベルです。ボットは、cost(currentLevel)これを決定するショートカットとして関数を使用できます。 ボットは25ゴールドから始まり、2移動をレベル1に、または1移動をレベル2にすばやくアップグレードできます。この開始ゴールドは、ボットの合計価値にはカウントされません。ボットを殺すと、その合計価値の半分が金になり、切り上げられます。2つのボットが同じターンに別のボットを殺すと、両方が報酬を受け取ります。 入出力: …

30
手紙のスピード
入力として文字列を指定すると、各文字がそれぞれのアルファベットインデックスによって右にプッシュされた新しい文字列が出力されます。 Aは遅い文字で、Zは速い文字であることは誰もが知っています。つまり、Zは25スペース分右にシフトされ、Aはまったくシフトされず、Bは1スペース分シフトされます。 プログラムはAZの大文字のみを処理する必要があり、他の文字、空白、句読点は処理できません。 シフト後に2つ以上の文字が同じスペースにある場合、最新の文字が使用されることに注意してください。(例:BA-> A) 例 "AZ" -> "A Z" "ABC" -> "A B C" "ACE" -> "A C E" "CBA" -> " A" "HELLOWORLD" -> " E H DLL OLO R W" ルール これはcode-golfであるため、どの言語バイトでも最短のコードが優先されます。 標準的な抜け穴は禁止されています。 入力は文字列として受け取る必要があります。 結果をstdout文字列に出力するか、文字列を返すことができます。 単一の末尾の空白および/または改行が許可されています。 入力または出力として小文字を使用することもできますが、使用できるのはどちらかのみです。
43 code-golf  string 

30
iOS 11計算機を実装する
iOS 11には、1 + 2 + 3の結果が24になるバグがあります。これはアニメーションの速度に関連していますが、とにかく: タスクは作成すること1 + 2 + 3 == 24です。しかし、それだけ。したがって、ほとんどのシーケンスを正しく合計するが24、引数が1で2あり3、任意の順序で返される関数を提供する必要があります。 入力例: 1 2 => 3 3 4 => 7 1 2 3 4 5 6 7 8 9 => 45 3 2 1 => 24 2 1 3 => 24 1 1 => 2 1 2 3 …
43 code-golf  math  number 

24
カオスはASCIIラダーです
あなたは何も知らない 私は物事 「カオスは梯子では、」テレビシリーズから記憶に残るラインでゲーム・オブ・スローンズ。 この課題の目的は、ASCIIアートでカオスからはしごを構築することです。 挑戦 入力 ラダー幅W >= 3(整数) ステップの高さH >= 2(整数) ラングの数N >= 2(整数)。 出力 横桟と縦レールを備えたはしご、すべて1文字幅。ラダー幅(W)には2つのレールが含まれ、ステップ高さ(H)には対応するラングが含まれます。 最上部と最下部を含むすべての横木には、上下の長さの垂直レールがH-1あります。この例では、これをより明確にします。 ラダーについて説明する印刷可能な、非空白文字のASCII文字の包含範囲であること、!(コードポイント33)に~(コードポイント126選択図実際の文字が選択される)ランダム。入力が与えられると、文字のランダムな選択のそれぞれは、非ゼロの確率を持たなければなりません。それ以外は、確率分布は任意です。 水平または垂直の先頭または末尾の空白が許可されます。 例 与えられたW=5, H=3, N=2、1つの可能な出力は次のとおりです。 x : g h q$UO{ t T 6 < bUZXP 8 T 5 g ラングと垂直セクションがあるためH*(N+1)-1、合計の高さはであることに注意してください。NN+1 追加規則 入力手段と形式は通常どおり柔軟です。たとえば、3つの数値を任意の順序で入力したり、それらを含む配列を入力したりできます。 出力は、STDOUTまたは関数から返される引数を介して行われます。この場合、改行を含む文字列、2D文字配列、または文字列の配列です。 プログラムまたは機能を提供できます。 標準的な抜け穴は禁止されています。 バイト単位の最短コードが優先されます。 テストケース それぞれについてW, H, N、可能な出力が表示されます。 W=5, …

6
アイランドゴルフ#1:周航
これは、一連のアイランドゴルフチャレンジの最初のものです。次の挑戦 ASCII-artでアイランドを指定すると、それを迂回する最適なパスを出力します。 入力 入力は、土地と水を表す2つの文字で構成される長方形のグリッドになります。以下の例では、土地はで#あり、水はです.。ただし、任意の2つの異なる文字を使用できます。 ........... ...##...... ..#####.... ..#######.. .#########. ...#######. ...#####.#. ....####... ........... 常に少なくとも1つの土地タイルがあります。土地のタイルはすべて連続しています(つまり、島は1つだけです)。水タイルも連続しています(つまり、湖はありません)。グリッドの外側の境界線はすべて水タイルになります。ランドタイルは斜めに接続されません。つまり、次のようなものは表示されません。 .... .#.. ..#. .... 出力 コードは、最短のナビゲーションが描画された同じグリッドを出力する必要があります。以下の例では、周航経路はで描画されてoいますが、陸地や水域のキャラクターと区別できる限り、任意のキャラクターに置き換えることができます。 周航は完全にグリッド上のすべての土地タイルを取り囲む水タイルの上に完全に描かれた単純閉曲線、、です。斜めの接続が許可されています。たとえば、これは上記の島の周航です(ただし、最短ではありません)。 .ooooo..... o..##.oo... o.#####.o.. o.#######o. o#########o ooo#######o ..o#####.#o ..oo####..o ....oooooo. 周回ナビゲーションの長さは次のように計算されます。パス上の隣接するタイルのペアごとに、水平または垂直に接続されている場合、1を追加します。斜めに接続されている場合は、√2を追加します。上記のパスの長さは22 +7√2(≈31.9)です。 最短一周は、最短長さの一周です。プログラムは、この条件を満たすパスを1つ出力する必要があります。ほとんどの島では、複数の可能な解決策があります。長さ10 +13√2(≈28.4)の上記の島に対する1つのソリューションを次に示します。 ...oo...... ..o##oo.... .o#####oo.. .o#######o. o#########o .o.#######o ..o#####.#o ...o####.o. ....ooooo.. 詳細 あなたの解決策は、完全なプログラムまたは機能かもしれません。いずれかのデフォルトの入力と出力の方法が許容されています。 入力と出力は、複数行の文字列または文字列のリストです。言語に単一文字の文字列とは異なる文字タイプがある場合、前の文の「文字列」を「文字のリスト」に置き換えることができます。言語でグリッドの高さや幅を入力する必要がある場合は、入力してください。出力には、(オプションで)単一の末尾改行が含まれる場合があります。上記のように、代わりに3つの異なる文字#.oを使用できます(使用する文字を提出時に指定してください)。 テストケース A.固有の最短航路を持つ島: ... .#. …

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