タグ付けされた質問 「path-finding」

制約(障害物)の影響を受ける、最適な(たとえば最短の)パスを見つけることを含む、ジオメトリまたはグラフ理論の問題。

24
Lab Rat Race:遺伝的アルゴリズムの演習
これは、フォートナイトリーチャレンジ#3です。テーマ:遺伝的アルゴリズム この挑戦はちょっとした実験です。私たちは、遺伝的アルゴリズムを使用して、挑戦的に何ができるかを見たかったのです。すべてが最適であるとは限りませんが、アクセスできるように最善を尽くしました。これがうまくいけば、誰が私たちが将来見るかもしれないことを知っています。おそらく遺伝的なキングオブザヒルですか? 仕様は非常に長いです!仕様をThe Basics(フレームワークでプレイを開始し、回答を送信するために知っておく必要のある最低限)と、The Gory Details-コントローラーに関するすべての詳細を含む完全な仕様に分割しようとしました。自分で書くことができます。 ご質問がある場合は、お気軽にチャットに参加してください! あなたは行動心理学の研究者です。金曜日の夕方、あなたと同僚は楽しい時間を過ごし、実験用のネズミを小さなネズミのレースに使用することにしました。実際、私たちが感情的になりすぎる前に、それらを標本と呼びましょう。 標本用の小さなレーストラックを設定しました。さらに面白くするために、トラック全体にいくつかの壁とトラップとテレポーターを配置しました。今、あなたの標本はまだネズミです...彼らはトラップやテレポーターが何であるかを知りません。彼らが見るのは、色の違うものだけです。彼らはまた、どんな種類の記憶も持っていません-彼らができることは、彼らの現在の環境に基づいて決定を下すことだけです。自然選択は、そうでないものからのtrapを避ける方法を知っている標本を選ぶと思います(この種族はしばらく時間がかかります...)。ゲームを始めよう!† †84,465個の標本がこの課題の作成で被害を受けました。 基礎 これはシングルプレイヤーゲームです(あなたと同僚は人口を混同したくないので、それぞれが独自のレーストラックを構築しました)。レーストラックは、高さ15セル、幅50セルの長方形のグリッドです。左端(ここでx = 0)のランダム(必ずしも別個ではない)セルの15個の標本から始めます。あなたの標本は、任意の細胞である目標到達しようとする必要があり、X≥49と14≤Y≤0を(標本が右にトラックをオーバーシュートがあります)。これが起こるたびに、あなたはポイントを獲得します。また、1ポイントでゲームを開始します。10,000ターン後にポイントを最大化するようにしてください。 複数の標本が同じセルを占有する場合があり、相互作用しません。 各ターンで、各標本は周囲の5x5グリッド(中央にある)を見ます。そのグリッドの各セルにはの色が含ま-1れ15ます。-1境界外のセルを表します。標本が範囲外に移動すると、標本は死にます。他の色については、空のセル、トラップ、壁、テレポーターを表します。しかし、あなたの標本はどの色が何を表しているのか分からず、あなたもそうではありません。ただし、いくつかの制約があります。 8色は空のセルを表します。 4色はテレポーターを表します。テレポーターは、9x9エリア内の特定のセルに標本を送ります。このオフセットは、同じ色のすべてのテレポーターで同じです。 2色が壁を表します。壁に移動することは、じっと立っているのと同じです。 2色はトラップを表します。トラップは、すぐ近くにある9 つのセルの1つが致命的であることを示します(トラップセル自体である必要はありません)。このオフセットは、同じ色のすべてのトラップで同じになります。 さて、その自然選択について...各標本にはゲノムがあり、それは100ビットの数字です。新しい標本は、2つの既存の標本を交配し、ゲノムをわずかに変異させることによって作成されます。標本が成功すればするほど、繁殖の可能性が大きくなります。 ここにあなたのタスクがあります:標本が見る色の5x5グリッドとそのゲノムを入力として受け取る単一の関数を書きます。関数は、標本の移動(Δx、Δy)を返し{-1, 0, 1}ます。ここで、ΔxとΔyはそれぞれの1つです。関数呼び出し間でデータを永続化しないでください。これには、独自の乱数ジェネレーターの使用が含まれます。関数にはシードされたRNGが提供され、必要に応じて自由に使用できます。 提出のスコアは、50のランダムトラック全体のポイント数の幾何平均です。このスコアにはかなりのばらつきがあることがわかりました。したがって、これらのスコアは暫定的なものです。この課題が終了すると、締め切りが発表されます。締め切りの終わりに、100のボードがランダムに選ばれ、すべての提出物がこれらの100のボードで採点されます。推定スコアを回答に自由に入力してください。ただし、だれもチートしないように、すべての提出物にスコアを付けます。 コントローラープログラムは少数の言語で提供されています。現在、Python(2または3)、Ruby、C ++、C#またはJavaで提出物を書くことができます。コントローラーはボードを生成し、ゲームを実行し、遺伝的アルゴリズムのフレームワークを提供します。必要なのは、移動機能を提供することだけです。 待って、それではゲノムを使って正確に何をしますか? 課題はそれを理解することです! 標本には記憶がないため、与えられたターンで得られるのは、あなたにとって何の意味もない5x5の色のグリッドだけです。そのため、目標を達成するにはゲノムを使用する必要があります。一般的な考え方は、ゲノムの一部を使用して色またはグリッドレイアウトに関する情報を保存し、ボットはゲノムに保存されている追加情報に基づいて決定を下すというものです。 もちろん、手動で何かを実際に保存することはできません。したがって、そこに保存される実際の情報は、最初は完全にランダムになります。しかし、遺伝的アルゴリズムは間もなく、ゲノムに正しい情報が含まれる標本を選択し、間違った情報を持つ標本を殺します。目標は、ゲノムビットと視野から移動へのマッピングを見つけることです。これにより、目標へのパスを迅速に見つけ、一貫して勝利戦略に進化することができます。 これは、開始するのに十分な情報である必要があります。必要に応じて、次のセクションをスキップして、下部のコントローラーのリストから選択するコントローラーを選択できます(特定のコントローラーの使用方法に関する情報も含まれています)。 すべてが必要な場合は読んでください... ゴーリーの詳細 この仕様は完全です。すべてのコントローラーはこれらのルールを実装する必要があります。 特に明記しない限り、すべてのランダム性は均一な分布を使用します。 トラック生成: トラックは、X = 53セル幅、Y = 15セル高さの長方形のグリッドです。有する細胞のx≥49は、ある目標セル(ここで、xはゼロベースです)。 各セルは単一の色を有し、またはあってもなくてもよい致死 -以下の細胞型のいずれかで指定されない限り、細胞は致死的ではありません。 からまでラベル付けされた16の異なるセルの色があり、その意味はゲームごとに変わります。さらに、境界外のセルを表します-これらは致命的です。015-1 8つのランダムな色を選択します。これらは空のセルになります(効果はありません)。 さらに4つのランダムな色を選択します。これらはテレポーターです。これらの2つの色について、9x9近傍のゼロ以外のオフセットを選択します((-4、-4)から(0,0)を除く(4,4)まで)。他の2色については、それらのオフセットを反転します。標本がテレポーターに乗ると、そのオフセット分だけすぐに移動します。 さらに2つのランダムな色を選択します。これらはトラップです。これらの各色について、3x3近傍のオフセットを選択します((-1、-1)から(1,1)まで)。トラップは、そのオフセットのセルが致命的であることを示します。注:トラップセル自体は必ずしも致命的ではありません。 残りの2色は壁で、動きを妨げます。壁のセルに移動しようとすると、移動が静止したままになります。壁細胞自体は致命的です。 …

5
黒と白の虹
黒と白のピクセルと(x、y)の位置のみが白のピクセルである画像が与えられた場合、他の白のピクセルの走査のみを含むパス内の(x、y)からの最小マンハッタン距離に基づいて白のピクセルに色を付けます。 色付きピクセルの色相は(x、y)からの距離に比例する必要があるため、(x、y)のピクセルは0°(純粋な赤)の色相を持ち、(x、y)から最も遠いピクセルになります。 360°の色相(赤)を持ち、他の色相はシームレスに直線的にブレンドされます。飽和及び値は、両方の100%でなければなりません。 白のピクセルが他の白のピクセルを介して(x、y)に接続されていない場合、白のままにする必要があります。 詳細 入力は、画像または生の画像データのファイル名に加えて、xおよびy整数で構成されます。 出力画像は、一般的な画像ファイル形式でファイルに保存するか、rawでstdoutにパイプするか、単に表示することができます。 x値は左端のピクセルで0で、右に行くほど増加します。y値は最上部のピクセルで0で、下に向かって増加します。(x、y)は常に画像の境界内にあります。 完全なプログラムと機能の両方が許可されます。 バイト単位の最短コードが優先されます。 例 これらの画像はすべて、スペースを節約するために縮小されています。それらをクリックしてフルサイズで表示します。 入力画像: (x,y) = (165,155) そして (x,y) = (0,0) 入力画像と出力(x,y) = (0,0): 入力画像と出力(x,y) = (600,350): 入力画像と出力(x,y) = (0,0): 入力画像と出力(x,y) = (0,0): オプションの-30%ボーナス:ユークリッド距離を使用します。アルゴリズムの提案は次のとおりです(概要): 開始ピクセルがあります。 そのピクセルからの塗りつぶし。 塗りつぶしで到達したすべてのピクセルに対して、 開始ピクセルからそのピクセルまで、半単位のステップで直線で移動します。 各ステップでint()、x座標とy座標に適用します。これらの座標のピクセルが黒の場合、停止します。それ以外の場合は続行します。(これは、見通し方法です。) 白いピクセルおよび/または以前に非常に長い距離(つまり+10)でラベル付けされたピクセルに接する到達ピクセルは、開始ピクセルになります。 よりメタ的な意味では、このアルゴリズムは、開始/既に色付けされたピクセルから直線で到達可能なすべてのピクセルに広がり、エッジの周りに「インチ」になります。「著しく高い距離」ビットは、アルゴリズムを高速化することを目的としています。正直なところ、ユークリッド距離をどのように実装するかは問題ではなく、このように見える必要があります。 これは、上記のアルゴリズムを使用したユークリッド距離での最初の例のようです。 入力画像と (x,y) = (165,155) Calvin'sHobbiesとtrichoplaxに、このチャレンジを書くのを手伝ってくれてありがとう!楽しんで!

9
私の刑務所は安全ですか?
あなたの挑戦には、囚人のいずれかが逃げることができるかどうかを判断するための刑務所レイアウトの入力が与えられます。 入力 入力は、入力が、この場合、3つの文字で構成されますなどのアレイの列、アレイ、アレイのような任意の妥当な形式であってもよく#、Pそしてスペース。入力には3文字すべてが含まれているとは限りません。 #: 壁 P:囚人 スペース:空のスペース 入力例は次のようになります。 ##### # # # P # # # ##### 出力 刑務所が安全かどうかの真偽値。刑務所は、すべての囚人を収容できる場合にのみ安全です。囚人が逃げることができれば、安全ではありません。 囚人は、壁に完全に囲まれていない場合、逃げることができます。対角結合は完全に囲まれています。 テストケース ############# Truthy # P # P# # # # # P # ############# ############# Truthy # P P # # # # P # ############# ############# Falsey # P …

7
ロボットが子猫を見つける
挑戦 ロボットが可能な限り少ないステップで子猫を見つけるのに役立つ文字数による最短コード。 ゴルファー、これは危機の時です-子猫が行方不明になり、それを見つけるのはロボットの仕事です!ロボットは最短距離で子猫に到達する必要があります。しかし、ロボットのやり方には多くの障害があり、彼はあなたに彼のために解決策をプログラムする必要があります。 以前はロボットがプログラムを実行させていましたが、そのプログラムは失われ、ロボットにはバックアップがありません:(。 ロボットのランタイムは最適ではなく、ロボットがソースコードから読み取る必要のある文字数が少なく、処理に費やす時間が最短であるため、子猫がより早く見つかります。 ロボットのメモリには、現在の場所の地図が含まれており、上部は北、下部は南、右は東、左は西を表しています。ロボットは常に、壁に囲まれた未知のサイズの長方形の部屋にあり、#レーダーマップで表されています。ロボットが入ることができる領域は、スペースで表されます。 ロボットのレーダーは、部屋の多くの障害物もスキャンし、さまざまなASCII文字でマークします。ロボットはこれらの障害物を横断できません。レーダーは子猫を特別なASCII文字としてマークし、Kロボットの位置はでマークされRます。 ロボットのナビゲーションシステムはこのように動作します。彼は、移動する方向と移動ユニットの数のデュオを理解できます。たとえば、N 3「北3移動ユニット」を意味します。ロボットのレーダーマップは、移動単位が1つのASCII文字になるように作成されます。ロボットは4方向にのみ移動でき、斜めに移動することはできません。 勇敢な子猫セーバーであるあなたの仕事は、ロボットのレーダーマップを1回読み取り、最小の移動単位移動距離で、最小量の方向を出力することです。ロボットには、子猫へのパスが少なくとも1つあることが保証されています。 ロボットが子猫を見つけるのに役立たない誤動作プログラムを実行する時間を無駄にしないように、勇敢な子猫のセーバー、ロボットの過去のプログラムのこの出力を使用して、子猫を見つけるのに時間を無駄にしないことをお勧めします! テストケース Input: ###################### # d 3 Kj # # # # R # # q # ###################### Output: E 13 N 2 Input: ###################### # d r 3 Kj # # p p # # T X # # …

30
文字列の長さを追加する
チャレンジ: s文字a- z、A- Z、0-の文字列を指定すると9、の長さsをそれ自体に追加し、長さの追加の文字をの全長の一部としてカウントしsます。 入力: 任意の長さの文字列(空にすることもできます)。 出力: 同じ文字列ですが、長さが末尾に追加されます。長さを表す文字も長さの一部としてカウントする必要があります。追加する有効な長さが複数ある場合は、可能な限り短いものを選択してください(例については、テストケースを参照してください)。 テストケース: INPUT -> OUTPUT // Comment aaa -> aaa4 -> 1 // Empty string aaaaaaaa -> aaaaaaaa9 // aaaaaaaa10 would also normally be valid, but violates using the smallest number rule mentioned above aaaaaaaaa -> aaaaaaaaa11 a1 -> a13 // Input can …
51 code-golf  string  code-golf  string  random  code-golf  array-manipulation  code-golf  ascii-art  kolmogorov-complexity  random  code-golf  array-manipulation  code-golf  stateful  code-golf  hello-world  code-golf  string  code-golf  interpreter  lisp  code-golf  restricted-source  quine  palindrome  code-golf  ascii-art  random  generation  challenge-writing  ascii-art  random  polyglot  maze  answer-chaining  string  cops-and-robbers  whitespace  code-golf  string  cops-and-robbers  whitespace  code-golf  number  sequence  code-golf  date  code-golf  ascii-art  decision-problem  code-golf  combinatorics  chemistry  code-golf  kolmogorov-complexity  source-layout  radiation-hardening  code-golf  ascii-art  path-finding  maze  code-golf  string  ascii-art  game  animation  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  restricted-source  new-years 

6
あなたの車は右に曲がるだけです!
前書き 障害物コースで暴走した車に閉じ込められているという不幸があります。車のすべての機能は応答しません。損傷したステアリングシステムを除きます。直進することも、右折することもできます。車を安全に誘導できますか? 力学 あなたの車は8x8マップの左上隅から始まり、右下隅で安全になろうとしています。車の向きは(最初は右)、90度単位で測定されます。車は次の2つのアクションのいずれかを実行できます。 1マス先に進む、または 時計回りに90度回転してから、1マス先に進みます 車は、1つの広場で180度回転するのに十分なほど鋭角に回転できないことに注意してください。 正方形のいくつかは障害です。車が障害物の広場に入ると、クラッシュします。8x8コースの外側はすべて障害物であると想定されているため、コースを離れることはクラッシュに相当します。 右下の四角は安全な四角で、車が障害物コースを脱出できるようにします。開始正方形と安全な正方形は障害物ではないと想定されます。 仕事 障害物コースを表す8x8配列(マトリックス、リストのリストなど)を入力として受け取るプログラムまたは関数を作成する必要があります。プログラムはブール値、または同様の真実を返すか印刷します。車がクラッシュせずに安全な広場に到達できる場合(マップが解ける場合)、出力はになりTrue、そうでない場合はになりFalseます。 得点 標準のゴルフ規則-勝者はバイト数が最も少ないコードです。 ボーナス: 解決可能なマップの場合、コードが有効な一連のドライバー入力を出力して、車を安全な広場に導く場合、スコアから10パーセントポイントを差し引きます。出力形式の例は次のとおりですSRSSR(ストレート、右、ストレート、ストレート、右を示す)。この出力は、標準出力を置き換えTrueます。 解決できないマップの場合、コードの出力が、クラッシュが避けられない状況と、障害物コースを永遠に運転できる状況とを区別する場合、スコアから10パーセントポイントを差し引きます。出力例Crashは、衝突が避けられない場合、またはStuck車が障害物コースに永久にスタックしている場合です。これらの出力はFalse、解決できないマップの標準出力を置き換えます。 例 プログラムに次のような8x8配列が指定されている場合: [[0, 0, 0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0, 1, 0], [1, 1, 0, 0, 0, 0, 0, 0], [0, 1, 0, 1, 0, 0, 0, 0], …

3
コンビネーションバイクロック
シナリオ 長い一日の仕事でオフィスで時間を過ごし、stackexchange.comを閲覧した後、私はようやく16:58にドアを出ました。私はまだインターンであるため、現在の交通手段は自転車です。信頼できるプジョーレイノルズ501に向かいますが、航海する前にロックを解除する必要があります。ロックは、フレームと前輪を通る標準の4桁のコンビネーションロック(0〜9)です。目を覚まそうとするとき、手を組んで組み合わせに入る。 挑戦 私の指はとても疲れているので、最小限の動きで正しい組み合わせにロックを回したいと思います。1つの動きは、1つの位置(36度)による回転として定義されます。たとえば、から5737への1つの動きがあり5738ます。ただし、連続する3つのリングを同時に把握し、1つとして回転させることができます。これは、1つの動きとしてカウントされます。たとえば、からまたはへの移動は1つだけです。桁番号1、2、および4は桁番号3とは無関係に同じ方向に移動したため、からに移動することは1つの動きではありません。57376837562657376838 したがって、特定の組み合わせについては、自転車のロック(4桁の整数)で見ることができ、ロックを解除するためにできる最小の動きは何ですか、そして、はい、いつでもどちらの方向にも回転できます。これにより、ある方向にいくつかの数字を、別の方向に他の数字を回せることを意味します。ロックを解除するたびに、すべての動きが反時計回りまたは時計回りになるわけではありません。 私は怠け者なので、ロック解除コードは0000です。 これはコードゴルフです。多くのコードを書くのは面倒なので、バイト数の最も短いプログラムが勝ちます。 入力は標準入力からであり、コードは、各移動後に各ステップで表示できる組み合わせを出力する必要があります(末尾の0000を含む)。各組み合わせの出力は、スペース/改行/コンマ/ピリオド/アンパサンドで区切る必要があります。 例 Input: 1210 0100 0000 Input: 9871 9870 0980 0090 0000 Input: 5555 4445&3335&2225&1115&0005&0006&0007&0008&0009&0000 Input: 1234 0124 0013 0002 0001 0000 私はこれをhttp://bicycles.stackexchange.comに投稿しようとしましたが、彼らはそれを好きではありませんでした... 免責事項:最初のゴルフですので、壊れている情報や不足している情報はお知らせください!また、すべての例を手作業で行ったので、動きが少ないソリューションがあるかもしれません! 編集:等しい数の動き(実際にはすべて)を持つ複数のソリューションパスがある回答の場合、推奨されるソリューションはありません。

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 …

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.固有の最短航路を持つ島: ... .#. …

30
アイデンティティマトリックスの構築
課題は非常に簡単です。入力が整数のn場合、n x n単位行列を出力します。単位行列は、1sが左上から右下に及ぶものです。作成した単位行列を返すまたは出力するプログラムまたは関数を作成します。出力は、2D配列、またはスペース/タブと改行で区切られた数値です。 入出力の例 1: [[1]] 2: [[1, 0], [0, 1]] 3: [[1, 0, 0], [0, 1, 0], [0, 0, 1]] 4: [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] 5: [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], [0, …

30
この数値は-2の整数乗ですか?
数値が2のべき乗かどうかを判断する賢い方法があります。これはもはや興味深い問題ではないので、与えられた整数が-2の整数のべき乗かどうかを判断しましょう。例えば: -2 => yes: (-2)¹ -1 => no 0 => no 1 => yes: (-2)⁰ 2 => no 3 => no 4 => yes: (-2)² ルール プログラムまたは関数を作成し、入力を受け取って出力を提供する標準的な方法を使用できます。 入力は単一の整数であり、整数が-2の整数乗である場合は出力が真実の値であり、それ以外の場合は偽の値である必要があります。他の出力(警告メッセージなど)は許可されません。 通常の整数オーバーフロールールが適用されます。ソリューションは、すべての整数がデフォルトで制限されていない仮想バージョン(または実際のバージョン)の任意の大きな整数で動作できる必要がありますが、実装によりプログラムが実際に失敗する場合それほど大きな整数をサポートしていなくても、ソリューションは無効になりません。 任意のプログラミング言語を使用できますが、これらの抜け穴はデフォルトでは禁止されています。 勝利条件 これは、コードとゴルフのコンテストです。(選択したエンコーディングで)バイト数が最も少ない答えが勝者です。

22
Natural Pi#0-ロック
ゴール 入力を受け取るプログラム/関数を作成し、整数のランダムなペアが比較的素数であるNかどうかを確認しN、を返しますsqrt(6 * N / #coprime)。 TL; DR これらの課題は、Piを概算するために自然と脳(およびおそらく再利用可能なリソース)のみを必要とするアルゴリズムのシミュレーションです。ゾンビの黙示録中に本当にPiが必要な場合、これらの方法は弾薬を無駄にしません!さらに8つの課題があります。推奨事項を作成するには、サンドボックスの投稿をチェックしてください。 シミュレーション 何をシミュレートしていますか?さて、2つのランダムな整数が比較的素数(すなわち、コプライムまたはgcd == 1)である確率は6/Pi/Piです。それらを数える; gcdが1 かどうかを確認します。繰り返す。これを数回繰り返した後、sqrt(6.0 * total / num_coprimes)に向かう傾向がありPiます。黙示録的な世界で平方根を計算するのが不安になっても心配しないでください!そのためのニュートン法があります。 これをどのようにシミュレートしますか? 入力してください N 次のN時間を実行します。 ランダムな正の整数を均一に生成しi、j と 1 <= i , j <= 10^6 もしgcd(i , j) == 1:result = 1 その他: result = 0 N結果の合計を取り、S 戻る sqrt(6 * N / S) …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

6
Vectoryへ!–ベクターレーシンググランプリ
ユーザーCarpetPython がこの問題に関する新しい見解を投稿しました。検索スペースが増加したため、ヒューリスティックなソリューションにより大きな焦点を当てています。個人的には、この挑戦​​は私の挑戦よりもずっといいと思うので、試してみてください! ベクトルレースは、ペンと四角い紙で遊ぶことができる中毒性のゲームです。紙の上に任意の競馬場を描き、開始と終了を定義してから、ターンベースの方法でポイントサイズの車を操縦します。できるだけ早く終わらせますが、壁につかないように注意してください! トラック マップは2次元のグリッドで、各セルには整数座標があります。 グリッドセル上を移動します。 各グリッドセルは、トラックの一部であるか、壁です。 正確に1つのトラックセルが開始座標です。 少なくとも1つのトラックセルが目標として指定されています。これらのいずれかに着陸すると、レースが完了します。複数の目標セルが接続されているとは限りません。 車の操縦 あなたの車は与えられた座標から速度ベクトルで始まり(0, 0)ます。各ターンで、ベロシティの各コンポーネントを調整する±1か、そのままにすることができます。次に、結果の速度ベクトルが車の位置に追加されます。 写真が役立つ場合があります!赤い丸はあなたの最後のターンの位置でした。青い円は現在の位置です。速度は、赤から青の円へのベクトルです。このターンでは、速度の調整方法に応じて、緑色の円のいずれかに移動できます。 あなたがいる場合土地の壁に、あなたはすぐに失います。 あなたのタスク あなたはそれを推測しました:入力として競馬場を与えられたプログラムを書いて、できるだけ少ないターンでゴールセルの1つに車を操縦します。ソリューションは、任意のトラックを適切に処理でき、提供されたテストケースに対して特に最適化されていない必要があります。 入力 プログラムが呼び出されたら、stdinから読み取ります。 target n m [ASCII representation of an n x m racetrack] time targetは、トラックを完了するために取ることができる最大ターン数であり、トラックのtime合計時間予算(秒単位)(必ずしも整数ではない)です。タイミングの詳細については、以下を参照してください。 改行区切りのトラックには、次の文字が使用されます。 # –壁 S- スタート *- 目標 . –他のすべてのトラックセル(道路) n x m提供されたグリッドの外側のすべてのセルは、壁であると暗示されています。 座標原点は左上隅にあります。 以下に簡単な例を示します。 8 4.0 9 6 ###...*** …

9
レーシングカーをプログラムする
@kuroinekoへのお祝い。ガントレットトラックで優れたスピード(672ムーブ)の賞金を獲得します。 リーダー:* Nimiが軽量2129を獲得。他のエントリーは大きくなりましたが、かなりのスピードを示しています。 *リーダーは後のエントリにより変更される場合があります。 あなたの仕事は、レーシングカーを高速で運転できる小さなプログラムを書くことです。 ルール プログラムはトラックの画像を読み取ります。車は黄色のピクセルで起動できますが、黒のピクセルを通過して終了する必要があります。あなたの車のパスは、灰色((c、c、c)で、30 <= c <= 220)トラック上にのみなければなりません。 あなたの車は、整数vxとvy((0,0)で始まる)で構成される速度vで各ターンごとに直線で移動します。各ターンの開始時に、プログラムはvxとvyを次のように変更できます。 abs(vx2-vx1) + abs(vy2-vy1) <= 15 更新:最大加速度を15に増やしました。 プログラムは、現在の場所から(場所+ v)までの直線を白でプロットし、先頭に青い点を付けます。この線の下のピクセルが黒の場合、レースを終了しています。それ以外の場合、その行の下のすべてのピクセルが灰色または黄色の場合、次のターンに進むことができます。 プログラムは、白と青のパスを追加したトラックイメージを出力する必要があります。 追加の出力(2015-01-15を追加): 勝利またはボーナスを競いたい場合、プログラムはそれぞれシティまたはガントレットのポイントのリスト(青い点)を出力する必要があります。回答にポイントのリストを含めます(検証用)。ポイントは次のようになります(x0,y0), (x1,y1), ... (xn,yn)。'\n'ページ上のデータに合わせて、文字を含む空白を自由に使用できます。 サードパーティの画像の読み取りと書き込み、線の描画、ピクセルアクセスライブラリを使用できます。パス検索ライブラリを使用することはできません。必要に応じて、必要に応じてPNG画像を他のグラフィック形式(GIF、JPG、BMPなど)に変換できます。 運転するいくつかのトラック 開始する簡単なトラック: レーストラック: 障害物コース: 都市: ナイトメアトラック:ガントレット(他の人が簡単すぎる場合) 得点 スコアは、シティトラックでの結果に基づきます。ポイントは、バイト単位でのプログラムの長さに、レーシングカーがフィニッシュするのにかかった各ターンの10ポイントを加えたものに等しくなります。最低スコアが勝ちます。回答にシティトラックランの画像を含めてください-運転スタイルを確認してください。 次の形式で回答のタイトルを使用してください。 <Racing Driver or Team Name> <Language> <Score> 例:Slowpoke Perl 5329 プログラムは、上記の規則に従って、任意のトラックイメージを走行できる必要があります。テストトラックの最適なパスまたはパラメータをハードコードしてはなりません。他の標準的な抜け穴が適用されます。 同様の課題 これは、Martin:To Vectoryによって提起されたものに似たパズルです。–ベクターレーシンググランプリ。このパズルにはいくつかの違いがあります。 …

15
ロックを解除します
3桁のコンビネーションロックで自転車をロックしました。今、あなたは乗車に行きたいので、次のプログラムの助けを借りてそれを解除する必要があります。 入力 第1パラメーター ロック状態のロックの数字の組み合わせ。2番目のパラメーター(= ロック解除状態の組み合わせ)とは異なる必要があります。(または、自転車が盗まれる可能性があります!) 範囲000..999。先行ゼロは省略できません。 2番目のパラメーター ロック解除状態のロックの数字の組み合わせ。この値が目標です。 範囲000..999。先行ゼロは省略できません。 出力 初期状態(常に1番目のパラメーター)と最後のステップ(常に2番目のパラメーター)を含む各「回転」後の組み合わせロックの各状態のリスト。 アルゴリズム ロック解除状態で正しい数字に到達するまで、最初の数字を1つずつ「回転」させます。ただし、ロック解除コード全体を理解しているため、ロック解除状態の数字に到達するために必要な回転量が最小になる方向に数字を回転させます。。同点の場合、好きな方向を選択できます。 正しい最初の桁に達したら、2番目から3番目まで同じ手順を開始します。 数字の順序は、円として理解することです。 ... 9 0 1 2 3 4 5 6 7 8 9 0 1 2 ... つまり、1から9までの最小回転量は 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8 -> 9 = …

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