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

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

6
ConwayのGame of Lifeでテトリスの実用的なゲームを構築する
ここに理論的な質問があります-どんな場合でも簡単な答えを与える余裕はなく、些細な質問でさえありません。 ConwayのGame of Lifeには、Game of Lifeが他のGame-of-Lifeルールシステムをシミュレートできるようにするメタピクセルなどの構造が存在します。さらに、Game of Lifeはチューリング完全であることが知られています。 あなたのタスクは、テトリスのゲームのプレイを可能にするConwayのライフゲームのルールを使用してセルラーオートマトンを構築することです。 プログラムは、割り込みを表すために特定の世代でオートマトンの状態を手動で変更することにより入力を受け取ります(例えば、ピースを左右に移動、ドロップ、回転、またはグリッドに配置する新しいピースをランダムに生成)。待機時間として特定の世代数を生成し、オートマトンのどこかに結果を表示します。表示される結果は、実際のテトリスグリッドに視覚的に似ている必要があります。 プログラムは、次の項目で順番にスコアが付けられます(低い基準が高い基準のタイブレーカーとして機能します)。 境界ボックスサイズ—与えられたソリューションを完全に含む最小の領域を持つ長方形のボックスが優先されます。 入力への小さな変更—割り込みに勝つために手動で調整する必要のある最小のセル(オートマトンの最悪の場合)。 最速の実行—シミュレーションで1ティック進む最小の世代が勝ちます。 初期の生細胞数—小さい数が勝ちます。 最初に投稿—早い投稿が優先されます。

1
ConwayのGame of Lifeでデジタル時計を作成する
あなたの仕事は、デジタル時計を表すGame of Lifeシミュレーションを構築することです。これは次の特性を満たします。 クロックは、(例えば小数で時間と分を表示し12:00、3:59、7:24一日の1440分ごとに異なる状態で) -のいずれかの時間は、PMインジケータを0から23まで、または1から12に行きます。 パターンは周期的であり、状態は外部との対話なしでループします。 分は定期的に更新されます。1分の変化から次の変化まで、同じ世代数がかかります。 匿名の傍観者は、ディスプレイがデジタル時計であることを一目で知ることができます。特に、これには以下が伴います。 数字が表示され、はっきりと区別できます。どの時間が表示されているかを一目で確実に確認できる必要があります。 数字が所定の位置に更新されます。新しい番号はそれぞれ前の番号と同じ場所に表示され、数字の境界ボックスの動きはほとんどありません。(特に、数字は、数字が変更されるたびに明らかになるさまざまな場所に10の異なる数字を含んでいません。) 数字は隣り合って表示され、それらの間に余分なスペースはありません。 プログラムは、次の項目で順番にスコアが付けられます(低い基準が高い基準のタイブレーカーとして機能します)。 境界ボックスサイズ—与えられたソリューションを完全に含む最小の領域を持つ長方形のボックスが優先されます。 最速の実行-1分間進むのが最も少ない世代が勝ちます。 初期の生細胞数—小さい数が勝ちます。 最初に投稿—早い投稿が優先されます。

17
コンパイラボムをビルドする
前書き zip爆弾、XML爆弾などはおなじみでしょう。簡単に言えば、それらは(比較的)ナイーブソフトウェアによって解釈されたときに膨大な出力を生成する小さなファイルです。ここでの課題は、同じ方法でコンパイラを悪用することです。 チャレンジ 512バイト以下を占有し、可能な限りスペースを占有するファイルにコンパイルするソースコードを記述します。最大の出力ファイルが勝ちます! ルール わかりましたので、いくつかの重要な説明、定義、制限があります。 コンパイルの出力は、ELFファイル、Windows Portable Executable(.exe)、またはJVMまたは.NetのCLRの仮想バイトコードである必要があります(要求された場合、他のタイプの仮想バイトコードでも大丈夫です)。更新:Pythonの.pyc / .pyo出力もカウントされます。 選択した言語をこれらの形式のいずれかに直接コンパイルできない場合は、コンパイルとそれに続くコンパイルも許可されます(更新:同じ言語を複数回使用しない限り、複数回トランスコンパイルできます)。 ソースコードは複数のファイル、さらにはリソースファイルで構成できますが、これらすべてのファイルの合計サイズは512バイトを超えてはなりません。 ソースファイルと選択言語の標準ライブラリ以外の入力は使用できません。静的リンク標準ライブラリは、サポートされていれば問題ありません。具体的には、サードパーティのライブラリやOSライブラリはありません。 コマンドまたは一連のコマンドを使用してコンパイルを呼び出すことが可能でなければなりません。コンパイル時に特定のフラグが必要な場合、これらはバイト制限にカウントされます(たとえば、コンパイル行がのgcc bomb.c -o bomb -O3 -lm場合、-O3 -lmパート(7バイト)がカウントされます(最初の先行スペースはカウントされないことに注意してください)。 プリプロセッサは、言語の標準コンパイルオプションである場合にのみ許可されます。 環境はあなた次第ですが、これを検証可能にするために、最新の(つまり、利用可能な)コンパイラーのバージョンとオペレーティングシステムに固執してください(そして明らかに使用しているものを指定してください)。 エラーなしでコンパイルする必要があり(警告は問題ありません)、コンパイラのクラッシュは何もカウントしません。 あなたのプログラムが実際に行うことは無関係ですが、悪意のあることはできません。開始する必要さえありません。 例1 Cプログラム main(){return 1;} Apple LLVM version 7.0.2 (clang-700.1.81)OS X 10.11(64ビット)でコンパイル: clang bomb.c -o bomb -pg 9228バイトのファイルを作成します。ソースの合計サイズは17 + 3(の場合-pg)= 20バイトで、サイズ制限内に容易に収まります。 例2 Brainfuckプログラム: ++++++[->++++++++++++<]>.----[--<+++>]<-.+++++++..+++.[--->+<]>-----.-- -[-<+++>]<.---[--->++++<]>-.+++.------.--------.-[---<+>]<.[--->+<]>-. awibを使用してcに変換: …

8
UpgoatまたはDowngoat?
ヤギの画像が与えられた場合、プログラムはヤギが逆さまになっているかどうかを特定するのが最善です。 例 これらは入力が何であるかの例です。実際の入力ではありません 入力: 出力: Downgoat スペック プログラムは最大30,000バイトである必要があります 入力には完全なヤギが含まれます 写真には常にヤギが含まれます ヤギが逆さまの場合、output Downgoat、そうでない場合Upgoat ただし、入力は画像として入力できます(ファイル名、画像のbase64など)。 「Upgoat」または「Downgoat」を含む画像名またはその他のメタデータに依存しないでください。要点のファイル名は参照用です。 ハードコードしないでください。それは退屈だ、私はそれを完全に強制することはできませんが、私はうまく尋ねることができます。 テストケース 画像の要点。で始まる画像にdowngoatはDowngoat出力があり、で始まる画像にupgoatはUpgoat出力があります。 テストケースの2番目のバッチ すべてのテストケースで画像をテストしてください。これらの画像はjpgsです。画像サイズは異なりますが、それほど大きくはありません。 注:回答を受け入れる前にいくつかのテストケースを追加して、ハードコードする回答を回避し、プログラムの一般的なパフォーマンスを確認することができます。 アバターを正しく取得するためのボーナスポイント:P 得点 スコアは次の方法で計算できるパーセントです: (number_correct / total) * 100

23
Moby Dickを書きます
これは、ハーマンメルビルのMoby-Dickのテキストを含む1.2Mb ASCIIテキストファイルです。または、クジラ。あなたの仕事は、このファイルに一度に1文字ずつ与えられるプログラムまたは関数(またはクラスなど-以下を参照)を書くことであり、各ステップで次の文字を推測する必要があります。 これはコードチャレンジです。あなたのスコアは 2*L + E ここLで、送信のサイズはバイト単位で、E誤って推測した文字数です。最も低いスコアが勝ちます。 さらなる詳細 送信するのは、複数回呼び出されるか、呼び出されるか、データを送信するプログラムまたは関数(など)です。(正確には1215235回。)n 番目に呼び出されると、orのn 番目の文字が与えられ、(n + 1)番目の文字に対する推測を出力する必要があります。スコアの構成要素は、誤って推測した文字の総数です。whale.txtwhale2.txtE ほとんどの送信では、呼び出しと呼び出しの間に状態を保存する必要があります。これにより、呼び出し回数と以前の入力が何であったかを追跡できます。これを行うには、外部ファイルに書き込むstaticか、グローバル変数を使用するか、関数ではなくクラスを送信するか、状態モナドを使用するか、その他の言語で機能するものを使用します。送信には、最初の呼び出しの前に状態を初期化するために必要なコードを含める必要があります。 プログラムは決定的に実行する必要があるため、同じ入力が与えられると常に同じ推測が行われます(したがって、常に同じスコアが取得されます)。 回答には、提出物だけでなくE、スコアの一部を計算するために使用したコードも含める必要があります。これは提出物と同じ言語で書かれている必要はなく、そのバイト数にカウントされません。読みやすくすることをお勧めします。 提出物とこのスコア計算プログラムの間のインターフェースに関しては、プログラムが常に次の入力バイトを受け取る前に1バイトの出力を与える限り、何でも問題ありません。(たとえば、すべての入力を含む文字列を渡すだけで、すべての出力を含む文字列を取得することはできません。) 実際にテストプログラムを実行し、エントリを提出する前にスコアを計算/検証する必要があります。提出物のスコアが検証するには遅すぎる場合、原則としてそのスコアが何であるかを知っていても、競争する資格がありません。 Lスコアの構成要素は、コードゴルフチャレンジの通常のルールに従って計算されます。提出物に複数のファイルが含まれる場合は、その場合のスコアリングとディレクトリ構造に関する規則に注意してください。コードで使用するデータはすべてLスコアに含める必要があります。 あなたは、既存のライブラリをインポートすることがありますが、他の外部ファイルをロードしないかもしれない、とあなたのコードがアクセスすることはできませんwhale.txtかをwhale2.txt上記以外の方法でファイルします。事前学習済みのニューラルネットワークやその他の統計データのソースをロードすることはできません。(ニューラルネットワークを使用しても構いませんが、提出物に体重データを含めて、バイトカウントにカウントする必要があります。)何らかの理由で、言語またはライブラリにMoby Dickのテキストの一部またはすべてを提供する機能が含まれている場合、その機能を使用することはできません。それ以外に、言語またはその標準ライブラリの一部である限り、テキスト処理、予測、または圧縮に関連する機能を含む、他の任意の組み込み機能またはライブラリ機能を使用できます。統計データのソースを含む、よりエキゾチックで特殊なルーチンの場合、それらを自分で実装し、バイトカウントに含める必要があります。 一部の提出物には、それ自体がコードによって生成されるコンポーネントが含まれる可能性があります。その場合は、それらを生成するために使用されたコードを回答に含めて、その仕組みを説明してください。(このコードが送信を実行するために必要でない限り、バイトカウントには含まれません。) 歴史的な理由から、ファイルには2つのバージョンがあり、いずれかを回答に使用できます。ではwhale2.txt改行は段落の最後にのみ表示されますので(上記のリンク)テキストは、ラップされていません。オリジナルでwhale.txtは、テキストは74文字の幅に折り返されているため、各行の終わりとテキストを予測する必要があります。これは挑戦をより厄介にしますのでwhale2.txt、新しい答えのために推奨されます。両方のファイルは同じサイズで、1215236バイトです。 要約すると、すべての回答には次の事項を含める必要があります。 あなたの提出自体。(コードと、それが使用するデータファイル-大きい場合、これらはリンクになります。) コードの仕組みの説明。I / Oメソッドと、次の文字を予測する方法を説明してください。あなたのアルゴリズムの説明は重要であり、良い説明は私から賞金を得るでしょう。 スコアの評価に使用したコード。(これが以前の回答と同じ場合は、リンクするだけです。) 提出物の生成に使用したコードとそのコードの説明。これには、パラメーターの最適化、データファイルの生成などに使用したコードが含まれます(これはバイトカウントにはカウントされませんが、回答に含める必要があります)。 リーダーボード コードスニペットを表示 var QUESTION_ID=152856,OVERRIDE_USER=21034;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var …

30
ユーザーがdoubleの配列を入力し、プログラムがソートされた配列を出力するプログラムが必要です
注:この質問は、最初にここに投稿してから厳しく編集されました。ルールはここに移動されました。回答を投稿する前に読んで、この目的を理解してください。これは、コードトローリングカテゴリで作成された最初の質問でした。 Stack Overflowの怠zyなユーザーが次の質問をすると想像してください。 ユーザーがdoubleの配列を入力し、プログラムがソートされた配列を出力するプログラムが必要です。コードを教えていただけますか? このユーザーをトロールするコードをどのように作成できますか?経験の浅いプログラマには便利に見えるが、実際にはまったく役に立たないコードを作成します。 勝者が最も投票された回答です。ただし、回答が何らかの理由で適格でない場合を除きます(適格要件については、タグwikiのコードトローリングの説明を確認してください)。以前に最も投票数が多かった回答が受理された後、今後、投票数で打たれた場合、新しい最良の回答が受理され、以前の回答は受理されません。同点の場合は、同点の勝者の中から勝者を自由に選択するか、もう少し待ちます。 コードのない回答は対象外です。彼らは面白くて賛成票をもらうかもしれませんが、受け入れられません。 ルールはタグの説明にあります。 注:これはコードトローリングの質問です。質問や回答を真剣に受け取らないでください。詳細はこちら。

30
Starry Nightを客観的に1 KBのコードでペイントする
注:Anders Kaseorgは、彼の素晴らしい答えに注意を引くために、今のところ受け入れられていますが、挑戦は決して終わっていません!組み込みの圧縮を使用せずにトップスコアを獲得したユーザーには、400ポイントの特典が引き続き提供されます。 以下は、386x320ゴッホの星空のPNG表現です。 目標は、このイメージを1024バイト以下のコードで可能な限り厳密に再現することです。この課題のために、画像の近さは、以下で説明するように、RGBピクセル値の差の2乗によって測定されます。 これはコードチャレンジです。スコアは、以下の検証スクリプトを使用して計算されます。最も低いスコアが勝ちます。 コードは次の制限に従う必要があります。 完全なプログラムでなければなりません 私のマシンで実行されている以下の検証スクリプトで読み取れる形式で画像を出力する必要があります。このスクリプトはPythonのPILライブラリを使用します。このライブラリは、png、jpg、bmpなど、さまざまなファイル形式をロードできます。 完全に自己完結型で、入力を受け付けず、ファイルをロードしない必要があります(ライブラリのインポートは許可されます) 言語またはライブラリにStarry Nightを出力する関数が含まれている場合、その関数を使用することはできません。 毎回同じ出力を生成し、確定的に実行する必要があります。 出力画像の寸法は 386x320 誤解を避けるために、有効な回答では、通常のPPCG規則に従ってプログラミング言語を使用する必要があります。画像ファイルだけでなく、画像を出力するプログラムでなければなりません。 一部の提出物自体がコードによって生成される可能性があります。その場合は、提出物の作成に使用したコードを回答に含めて、その仕組みを説明してください。上記の制限は、送信する1kBの画像生成プログラムにのみ適用されます。生成に使用されるコードには適用されません。 得点 スコアを計算するには、出力画像と上記のオリジナルを取得し、RGBピクセル値を0〜1の範囲の浮動小数点数に変換します。ピクセルのスコアはです(orig_r-img_r)^2 +(orig_g-img_g)^2 + (orig_b-img_b)^2。つまり、2つの画像間のRGB空間での二乗距離です。画像のスコアは、ピクセルのスコアの合計です。 以下は、この計算を実行するPythonスクリプトです。矛盾やあいまいさがある場合、最終的なスコアは、私のマシンで実行されているスクリプトによって計算されたものです。 スコアは出力画像に基づいて計算されるため、スコアに影響する非可逆形式を使用する場合に注意してください。 スコアが低いほど良い。元の星空の画像のスコアは0になります。同点という天文学的に考えられないイベントでは、最も投票数の多い答えが勝者を決定します。 ボーナスの目的 答えは組み込みの圧縮を使用したソリューションに支配されていたため、他の手法を使用した答えに一連の賞金を授与しました。次のポイントは、組み込みの圧縮を使用しない回答が全体的に上位になった場合に授与される、400ポイントの賞金になります。 以前に授与されたボーナス報奨金は次のとおりです。 nneonneoの回答には、その時点で組み込みの圧縮を使用しなかった最高得点の回答であるため、100ポイントの賞金が授与されました。授与された時点では4852.87ポイントでした。佳作は、使用してnneonneoビートに果敢な試み作ら2012rcampionに行く言及ボロノイテッセレーションに基づいたアプローチを、得点5076ポイント、およびそのSleafarに答えに同様の方法を用いて、5052ポイントで、終わり近くまでリードしていましたねねねね。 Strawdogのエントリーに対して200ポイントの賞金が授与されました。これは、非圧縮の回答の中で主導権を握り、1週間保持した最適化ベースの戦略であると評価されました。印象的な巧妙な方法を使用して、4749.88ポイントを獲得しました。 スコアリング/検証スクリプト 次のPythonスクリプトは、上記の画像(名前が付けられている必要がORIGINAL.pngあります)と同じフォルダーに配置し、のコマンドを使用して実行する必要がありますpython validate.py myImage.png。 from PIL import Image import sys orig = Image.open("ORIGINAL.png") img = Image.open(sys.argv[1]) if img.size != orig.size: print("NOT …

30
数字を使わずに、できる限り最高の給料をもらいましょう。しかし、誇張しないでください!
求人広告に給与が記載されていない求人に応募する際、候補者が自分の給与を「ゴルフ」で決める可能性を与える、特に邪悪なインタビュアーを想像しました。 したがって、次のようになります。 数字を使用せずに、提供する年salを出力するコードを記述します。 ただし、簡潔なコードを記述できることは、この会社の基礎です。そこで彼らは非常にタイトな年功序列を実装しました bバイトの長さのコードを書く雇用者は、最大($ 1'000'000)・b -0.75を稼ぐことができます。 私たちは見ています(これらは整数部であり、表示上の理由のためです): 1 byte → $1'000'000 15 bytes → $131'199 2 bytes → $594'603 20 bytes → $105'737 3 bytes → $438'691 30 bytes → $78'011 4 bytes → $353'553 40 bytes → $62'871 10 bytes → $177'827 50 bytes → $53'182 挑戦 入力を受け取らず、ドル記号($、U …

30
それ自体よりも短い(文字数で)プログラムで印刷できる最小の正の10進整数は何ですか?
上記の質問は明確だと思いますが、念のため: 正の10進整数を印刷する完全なプログラム(関数だけでなく)を作成し、オプションで単一の改行を続けます。 適格なプログラムは、出力がバイト単位で測定されるプログラムのソースコードよりも長い(バイト単位で)プログラムです(プログラムソースコードのASCIIまたはUTF-8エンコーディングを想定)。 つまり、コードは結果の数値の桁数よりも短くなければなりません。 先行ゼロは、すべての状況下で許可されていません。先行ゼロをカウントすると、問題がトリビアライズされます。先行ゼロを無視すると、質問が不必要に複雑になります。 勝者プログラムは、最小の大きさで整数を出力する資格プログラムです。 リーダーボードスニペット コードスニペットを表示 var QUESTION_ID = 67921; var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe"; var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk"; var answers = [], answers_hash, answer_ids, answer_page = 1, more_answers = true, comment_page; function answersUrl(index) { return "https://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=creation&site=codegolf&filter=" + ANSWER_FILTER; } function …

30
どれくらい高く数えられますか?
チャレンジ: あなたの仕事は、できる限り多くのプログラム/関数/スニペットを書くことです。それぞれが整数を出力/印刷/返します。最初のプログラムはinteger 1、2番目のプログラムなどを出力する必要があります2。 プログラム間で文字を再利用することはできません。したがって、最初のプログラムが:の場合、x==xその文字xを=他のプログラムで再び使用することはできません。注:1つのプログラムで同じ文字を何度も使用できます。 得点: 勝者は最高の数を数える提出物になります。同点の場合、勝者は合計で最も少ないバイト数を使用した提出物になります。 ルール: すべての整数に単一の言語のみを使用できます スニペットは許可されています! 公平に保つには、選択した言語の1バイトを使用してすべての文字をエンコードする必要があります。 出力は10進数でなければなりません。科学表記または他の形式で出力することはできません。小数点の後ろに表示されるすべての数字がである限り、フロートの出力は問題ありません0。だから、4.000受け入れられます。出力に表示されない限り、FPAによる不正確さは受け入れられます。 ans =、先頭と末尾のスペース、改行などが許可されます。 正しい出力がSTDOUTに返される限り、STDERRは無視できます。 STDOUTが空の場合のみ、整数をSTDERRに出力することを選択できます。 シンボルに依存しない言語(Lenguageなど)は許可されません 大文字と小文字は区別されa != Aます。 プログラムは独立している必要があります 空白は再利用できません 出力にはASCII数字を使用する必要があります 説明をお勧めします!

16
Game of Lifeを通常のグリッド以外に実装する
ConwayのGame of Lifeは(ほぼ)常に通常の正方形グリッドでプレイされますが、そうである必要はありません。 ConwayのGame of Lifeの標準セル隣接ルールを、正方形、三角形、六角形の規則的なタイルではないユークリッド平面の2次元タイルで実装するプログラムを作成します。 具体的には、選択したタイル... 少なくとも2つ(ただし、有限数)の異なる形状のプロトタイプが含まれている必要があります。 異なる形状は、互いの縮尺または回転バージョンであり得る。 穴を残さずに平面全体をタイル化できる必要があります。 それらは、境界が有限の単純なポリゴンでなければなりません。(それらは単純に単純ではないかもしれません。) 正方形、三角形、六角形のグリッドと同形に区別する必要があります。 通常の正方形、三角形、または六角形のグリッドに簡単に沸騰するタイルは許可されません。(他のタイルでも正方形/三角形/六角形を使用できます。) 2つのプロトタイル間の境界には、複数のエッジと頂点が含まれる場合がありますが、連続している必要があります。 タイルは周期的または非周期的かもしれませんが、平面全体をカバーするように拡張された場合、各プロトタイプは無限に何度も現れなければなりません。(したがって、タイルの特定の部分を「ハードコーディング」して、以下の追加のポイントを達成することはできません。) 各プロトタイプは、他のセルに隣接する1つのGame of Lifeセルを表します。 エッジまたは頂点を共有するセルは、隣接セルと見なされます。 複数のエッジまたは頂点を共有するセルは、隣同士で1回だけカウントされます。 セルは隣接できません。 タイリングのインスピレーションリンク: http://en.wikipedia.org/wiki/Tiling_by_regular_polygons http://en.wikipedia.org/wiki/List_of_uniform_tilings http://en.wikipedia.org/wiki/Aperiodic_tiling http://en.wikipedia.org/wiki/Penrose_tiling 出力 あなたのプログラムは、ゲーム内でプレイされているGame of Lifeでのタイルのグラフィック表現を出力する必要があります。もちろん、それをimage / gif / jsfiddle形式で投稿する必要があります。 タイルの端の線を描き、死んだ細胞には明るい色を、生きた細胞には暗い色を使用してください。 得点 提出スコアは、アップ投票の数からダウン投票を引いたものに、タイルで一般的なGame of Lifeパターンを発見するための追加ポイントを加えたものです。 静物 -世代から世代へと変化しないパターンを見つけます。(+2) 周期2〜29の発振器を見つけます(合計5周期まで、または最大+15ポイントまで、周期ごとに+3)。 周期が30以上の発振器を見つけます。(+7) 宇宙船を見つけてください-残骸を残さずに出発地から任意に遠く離れることができるもの。(必ずしも可動オシレーターではないかもしれません。)(+10) 明らかに異なる方法で移動する別の宇宙船を見つけます(最初の宇宙船のミラーバージョンではありません)。たとえば、グライダーとLWSSを参照してください。(+10) 無限の成長のパターンを見つけます。成長が無限であることを証明する必要はありません。実際に確実なパターンの十分な証拠を示してください。(+25) 銃を見つける-宇宙船を永遠に生成するもの(これは無限の成長としてもカウントされます)。(+50) 無限の成長パターンは有限数の生細胞で始まり、他のパターンは常に有界の数の生細胞を含んでいる必要があります(たとえば、宇宙船は時間とともに勝手に大きくなってはいけません)。 非周期的タイルの性質により、これらのパターンの多くはそれらに実装することは不可能であると思われます。そのため、検証可能な非周期的タイルは自動的に+40ポイントを獲得します。非周期的タイルのある場所で機能するパターンは、他の場所で機能する必要はありません。 各ボーナスは1回のみ適用できます。当然、出力を確認して確認する必要があります。最高のスコアが勝ちます。 …

30
印刷可能な最大数
あなたの目標は、数字を印刷するプログラムを書くことです。数値が大きいほど、より多くのポイントを獲得できます。しかし、注意してください!スコアリング機能では、コードの長さが制限されており、かなりの重みがあります。印刷された数値は、ソリューションに使用したバイト数のキューブで除算されます。 したがって、印刷10000000したコードが100バイト長であるとします。最終スコアはになります10000000 / 100^3 = 10。 この挑戦を少し難しくするために、従うべき他のルールがあります。 コードで数字を使用することはできません(0123456789)。 あなたはできるなど/物理/数学を使用します。定数、しかし、彼らはしている場合にのみ、10未満(あなたが使用することができます例えばパイ〜= 3.14が、あなたが使用することはできませんアボガドロ定数 = 6e23) 再帰は許可されますが、生成された数は有限である必要があります(そのため、無限は解として受け入れられません。プログラムは、時間とメモリの制限なしで正しく終了し、要求された出力を生成する必要があります); 操作*(乗算)、/(除算)、^(電力)、またはそれらを示す他の方法を使用すること2 div 2はできません(たとえば、許可されていません)。 プログラムは、必要に応じて複数の数値を出力できます。最高のものだけが得点にカウントされます。 ただし、文字列を連結することはできます。つまり、隣接する数字のシーケンスはすべて単一の数字と見なされます。 コードはそのまま実行されます。これは、エンドユーザーがコードの行を編集することも、数字やその他のものを入力することもできないことを意味します。 最大コード長は100バイトです。 リーダーボード スティーブンH.、Pyth ≈Fの φ(1,0,0)+7(256 26)/ 1000000 [1] 単に美しいアート、ルビー ≈F φ 121(ω)(126) [1] ピーター・テイラー、GolfScript ≈F ε 0 +ω+ 1(17)/ 1000 [1] RES、GolfScript ≈F ε 0(F ε 0(F ε 0(F ε 0(F …

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色は壁で、動きを妨げます。壁のセルに移動しようとすると、移動が静止したままになります。壁細胞自体は致命的です。 …

30
チューリング完全性のための最少(明確な)文字
概要: どんな言語でも、あなたの言語がチューリング完全であるための一意の文字の最小量は何ですか? チャレンジ: 任意の言語で、言語をチューリング完全にすることができる最小の文字のサブセットを見つけます。キャラクターのセットを何度でも再利用できます。 例: JavaScript:+!()[](http://www.jsfuck.com) Brainfuck:(+<>[]ラッピングセルサイズを想定) Python 2:(()+1cehrxなどのスクリプトから作成exec(chr(1+1+1)+chr(1))) 得点: このチャレンジは、バイトではなく文字でスコアリングされます。たとえば、例のスコアは6、5、および9です。 ノート: この課題は、あなたの言語だけがチューリング完全であるという意味で他と異なります(必ずしも言語のすべての機能を使用できるわけではありません)。 可能ですが、使用するキャラクターを減らすことなく回答を投稿しないでください。例:8文字のBrainfuck(他のすべての文字はデフォルトでコメントであるため) サブセットがチューリング完全である理由について、少なくとも簡単な説明を提供する必要があります。

30
ソースコードのエコロジカルフットプリント
ドイツの自動車製造会社に雇われたばかりです。エンジニアとしての最初のタスクは、ASCII文字列のエコロジカルフットプリントを計算するプログラムを作成することです。 キャラクターのエコロジカルフットプリントは次のように計算されます。 文字のASCIIコードをバイナリで記述し、1の数をカウントします。 たとえばA、フットプリントは2ですがO、フットプリントが5で汚れています。 文字列のグローバルフットプリントは、文字のフットプリントの合計です。空の文字列のフットプリントはゼロです。 プログラムは、パラメーターとしてASCIIコマンドを受け入れ(コマンドラインまたは入力を介して)、エコロジカルフットプリントを計算し、出力する必要があります。プログラム自体はASCIIエンコードされている必要があります。 ただし、しゃっくりがあります。会社がより厳しい環境ルールで新しい市場に参入することを望む場合、「テストモード」で異なる動作をするようにプログラムを調整する必要があります。副<文>この[前述の事実の]結果として、それ故に、従って、だから◆【同】consequently; therefore <文>このような方法で、このようにして、こんなふうに、上に述べたように◆【同】in this manner <文>そのような程度まで<文> AひいてはB◆【用法】A and thus B <文>例えば◆【同】for example; as an example: testパラメータとして文字列を受け取ると、プログラムは0を出力するはずです。 得点 エコロジカルフットプリントが最小のソースコードが優先されます(そして、はい、答えtestは禁止されています!)

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