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

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

7
コミュニティが人だったら
まあ、コミュニティは単なるボットです。しかし、もしそれが人だったらどうだろう? あなたの仕事は、コミュニティが行った編集に対して評判が与えられていた場合、コミュニティの評判がどうだったのかを見つけることです(単純に2 * edits)。 これはどのサイトでも機能するはずですが、この質問ではPP&CGを検討します。 data.stackexchangeでも機能する任意の言語を使用します。 それはコードゴルフであるため、最小のコードが私が得る+15ほどの評判に勝ちます(賞金によって、私は自分のために101を残します:P)。 編集:評判を高めるあらゆる種類の編集を検討してください。
17 code-golf 

1
最小バイトを使用して2048の確定的バージョンを解きます
ゲーム2048の決定論的なバリアントへの移動の勝利シーケンスを生成するプログラムを記述します。シーケンスは、0〜3の数字のストリングの形式で、0:上、1:右、2:下、3である必要があります。左。たとえば、文字列「1132」は、右下左下を意味します。受賞プログラムは、2048に達する最短のソースコードです! 決定論的2048のルール:ゲームは、左上隅に最初に1タイルを含む4x4グリッドでプレイされます。各移動は、コマンド「左」、「右」、「上」または「下」で構成されます。左のコマンドは、グリッド上のすべてのタイルを左にスライドし、左から始まるタイルのように結合して合計します。同様に、コマンドrightは、タイルを右にスライドし、右から開始して結合します。 各タイルは、移動ごとに1つの組み合わせにのみ参加できます。 移動後、左から1番目の列に使用可能なスペースがある新しい2タイルが作成され、その列の上部から最初に使用可能なスペースが作成されます。 たとえば、「right right left down」というシーケンスは状態につながります 2___ ____ ____ ____ 2__2 ____ ____ ____ 2__4 ____ ____ ____ 24__ 2___ ____ ____ 2___ ____ ____ 44__ 行_ 2 2 2に適用されるコマンド権は_ _ 2 4になります行2 2 2 2に適用されるコマンド権は_ _ 4 4になります http://jmfork.github.io/2048/に触発されたこの質問

4
ピタゴラスの木が好き
...だからこれは私を木にする挑戦です。 単一の整数引数Nを取り、Nレベルのピタゴラスツリーを描画するtreeと呼ばれるプログラムまたは関数を作成します。レベル0はトランクのみです。 ツリーの各ジャンクションは、周囲のランダムなポイントに三角形の頂点を配置する必要があります(このポイントは、少なくとも5つの等間隔のポイント、または半円全体に均等に分散する必要があります)。 必要に応じて、時刻に応じてツリーを3Dにしたり、カラフルにしたり、点灯させたりできます。ただし、これはコードゴルフなので、最小のファイルが優先されます。 編集:コンテストを終了し、1週間経過したら最小の回答を受け入れます

3
人生のゲームを3Dで実装する
課題は、人生のゲームの3Dでの最短の実装を見つけることです(例)。これらは規則です: 隣接するセルが1つ以下のセル(この場合はキューブ)は、まるで孤独であるかのように死にます。 空のセルを正確に5つのセルが囲む場合、それらは繁殖してそれを埋めます。 セルに8個以上の近隣がある場合、過密状態で死にます。 少なくとも10x10x10にします。レイヤーは次のように個別に出力されます。 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X 0 0 X 0 0 0 0 0 0 0 X X X …

17
部分文字列から最小の素数を見つける
1946年、エルドスとコープランドは、特定の数が通常の数であることを証明しました。 ユーザーは一連の数字を入力し、その文字列を10進数で含む最小の素数を見つけます。 例: input -> output "10" -> 101 "03" -> 103 "222" -> 2221 "98765" -> 987659 バイト単位の最短コードが優先されます。一部の言語(mathematica、sage、pari-gp ...)には、素数に関連する組み込み関数が付属していることを知っています。プログラムがそのような関数に依存していない場合は-50バイト。あなたの言語がすでに大きな利点を持っているなら、これをだまそうとしないでください、ボーナスを請求しないでください。 編集 以下のいくつかのコメントによると、「03」を含む最小の素数は3です。これは本当に違いがありますか?私が考えることができる唯一のことは、おそらく文字列よりも数字の方が扱いやすいということです。 「03」などの場合、優先出力は103になります。ただし、プログラムの基本的な部分とは考えていません。したがって、バイトカウントを低くする場合は、先行ゼロを無視してもかまいません。
17 code-golf  primes 

30
Pi計算コードゴルフ[終了]
閉じた。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 2年前に閉店しました。 チャレンジ 可能な限り短い長さでpiを計算する必要があります。どの言語でも参加できます。また、円周率の計算には任意の式を使用できます。少なくとも小数点以下5桁までのpiを計算できる必要があります。最短、文字で測定されます。競争は48時間続きます。ベギン。 注:この同様の質問は、PIはシリーズ4 *(1 – 1/3 + 1/5 – 1/7 +…)を使用して計算する必要があることを示しています。この質問にはこの制限はありません。実際、ここでの多くの回答(勝つ可能性が最も高いものを含む)は、他の質問では無効になります。したがって、これは複製ではありません。

19
Brainfuckプログラムを確認する
さらに別のBrainfuck解析問題ですが、今回は...異なります。 あなたはさまざまな興味深い問題を解決するためにBrainfuckプログラムを作っているInfinite Monkeys Incorporatedで働いています(偶然にも、結局のところ、会社はランダムなプログラムを作っています)。ただし、Brainfuckのみを実行する高速チューリングマシンには、構文エラーに関する小さくて高価な問題があるようです。1つを作成すると、コンピューターが爆発します。それはおそらく設計上の欠陥かもしれませんが、それがなぜ起こるのかわからない人はいませんでした。 チューリングマシン(特に高速なマシン)は高価なので(結局、無限のRAMが必要です)、コードを実行する前にプログラムに構文エラーがないことを確認した方が良いでしょう。会社は大量のコードを実行するため、手動検証は機能しません。BrainfuckコードのSTDINを読み取るプログラムを作成し、プログラムに構文エラーがある場合(たとえば、]一致しないため構文エラーである場合)、終了ステータスを0(エラー)以外に設定して終了します[。プログラムが完全に正常であれば、終了ステータスを0に設定して終了します。 プログラムがを含む間違いを正しく認識していることを確認してください[]。別のコンピューターを爆発させたくないでしょうか?ああ、それができる限り短いことを確認してください-あなたのボスは短いプログラムの代金を払っています(彼は彼らが速いか何かを考えているからです)。ああ、Brainfuckでコーディングする必要はありません(実際、Brainfuckは終了コードをサポートしていないため、できません)-コードは通常のコンピューターで実行されます。 したがって、ご覧のとおり、あなたの仕事はBrainfuckプログラムが「有効」である(ペアの[]シンボルがある)かどうかを確認することです。Brainfuckプログラムには以外の文字を使用できる[]ため、他のコマンドがあるという理由だけでプログラムを拒否しないでください。最小のコードが勝ちますが、おそらくあなたはとにかくupvotesにもっと関心があるでしょう。

10
水流のマップを分割する
これは、Parantir Technologiesがインタビューで尋ねたインターネット上の課題です。 ある農民グループには標高データがあり、降雨が農地をどのように流れるかを理解できるようにします。土地を2次元の高度の配列として表し、水が下り坂を流れるという考えに基づいて、次のモデルを使用します。 セルの隣接する4つのセルすべての高度が高い場合、このセルをシンクと呼びます。水は流しにたまります。それ以外の場合、水は最低高度の隣接セルに流れます。セルがシンクではない場合、一意の最下位ノードがあり、この近隣ノードはセルよりも低いと想定できます。 同じ流しに直接または間接的に流出する細胞は、同じ流域の一部であると言われています。 あなたの課題は、マップを盆地に分割することです。特に、標高のマップを指定すると、コードはマップを盆地に分割し、盆地のサイズを降順に出力する必要があります。 標高マップが正方形であると仮定します。入力は、マップの高さ(および幅)である1つの整数Sを持つ行で始まります。次のS行にはそれぞれマップの行が含まれ、それぞれにS整数(行のSセルの標高)が含まれます。下の例のような小さな土地区画を持つ農家もあれば、大きな区画を持つ農家もいます。ただし、農家がS = 5000を超える土地の区画を所有することはありません。 コードは、流域サイズのスペース区切りリストを降順で出力する必要があります。(末尾のスペースは無視されます。) いくつかの例を以下に示します。 入力: 3 1 5 2 2 4 7 3 6 9 出力: 7 2 AおよびBのラベルが付いた盆地は次のとおりです。 A A B A A B A A A 入力: 1 10 出力: 1 この場合、盆地は1つだけです。 入力: 5 1 0 2 5 8 2 3 …

3
Unicode UTFコンバーター
目標は、UTF FAQに記載されている公式のUnicodeエンコーディング間で完全に準拠したコンバーターを作成することです。これがユニコードに集中していることを考えると、関連するエンコーディング(おそらく、APLでプログラムしない限りUTF-8になる)の可能な限り最高のバイトカウントで回答を受け入れます。長い投稿をおa びしますが、その多くは公式仕様(pdf、セクション3.9 D90-D92)、またはWikipediaでもアクセスできるエンコードについて説明しています。 仕様書 選択した言語がいつでも要件を完全に満たせない場合は、指定されたルールの精神を維持するものに置き換えてください。例えば。すべての言語に組み込みの配列、関数などがあるわけではありません。 文字列ライブラリ/関数の使用、またはライブラリ/関数のエンコードはありません。このコードの目的は、ビット/バイト操作を使用してコンバーターを実装することです。ただし、文字列自体を文字またはバイト配列として使用することは許可されています。ああ、また、変換を実行するOS呼び出しもありません。 コンバーターは、エンコードされた入力文字列を表すバイト配列、および数値として表される「入力」および「出力」エンコーディングの3つのパラメーターを受け取る関数です。UTF-8, UTF-16, UTF-16BE, UTF-16LE, UTF-32, UTF-32BE, and UTF32LE0から6までの番号をこの順序で任意に割り当てます。数があるかどうかをチェックする必要はありません< 0か> 6、私たちはこれらのパラメータが正しいと仮定しますが。コンバーターは、目的の出力エンコーディングで有効なバイト配列を返します。 ヌル文字(U+0000)をストリングターミネーターとして使用します。この後は何でも構いません。入力配列のどこかにヌル文字があると想定しますので、境界チェックを行う必要はありません。 FAQのとおり、入力バイト配列が宣言されたエンコーディングに対して無効な場合、エラーを通知する必要があります。次のいずれかの方法でこれを行います:プログラムをクラッシュさせる、例外をスローする、nullを返す、または最初の4バイトがすべて0である配列を返す(U+0000すべてのエンコードで認識できるように)。 エンコーディング 公式の仕様に従う必要がありますが、ウィキペディアはエンコーディングの適切な(そして正しいと思う限り)説明を提供します。完全を期すためにここで要約します。UTF-16およびUTF-32には、エンディアンのバリエーションがあることに注意してください。 UTF-32、UTF-32LE、UTF-32BE 最も単純なエンコード、各コードポイントは、その数値に等しい4バイトでエンコードされます。LE / BEは、エンディアン(リトルエンディアン/ビッグエンディアン)を表します。 UTF-16、UTF-16LE、UTF-16BE からのコードポイントU+0000 - U+FFFFは、その数値に等しい2バイトでエンコードされます。より大きな値は、から予約された値であるサロゲートのペアを使用してエンコードされますU+D800 - U+DFFF。したがって、より大きいポイントをエンコードするにU+FFFFは、次のアルゴリズムを使用できます(Wikipediaから恥知らずにコピーされます)。 0x010000がコードポイントから差し引かれ、0..0x0FFFFFの範囲の20ビット数が残ります。 上位10ビット(0..0x03FFの範囲の数値)が0xD800に追加され、最初のコードユニットまたはリードサロゲートが与えられます。これは0xD800..0xDBFF [...]の範囲になります。 下位10ビット(0..0x03FFの範囲内)が0xDC00に追加され、2番目のコードユニットまたはトレイルサロゲートが与えられます。これは0xDC00..0xDFFF [...]の範囲になります。 UTF-8 からのコードポイントU+0000 - U+007Fは、その数値に等しい1バイトとしてエンコードされます。U+0080 - U+07FF彼らは次のようにエンコードされている110xxxxx 10xxxxxx、U+0800 - U+FFFFである1110xxxx 10xxxxxx 10xxxxxx、高い値です11110xxx 10xxxxxx 10xxxxxx 10xxxxxx。xさんは、コードポイントの数値からのビットです。 …

7
「BizzFuzz」プログラムを作成する
従来のFizzBu​​zzでは、1から100までの数字を印刷するように求められますが、3の倍数をすべて「Fizz」に、5の倍数を「Buzz」に、3と5の倍数(つまり15)を「 FizzBu​​zz」。 しかし、邪悪なインタビュアーとして、私は独自のツイストバージョンのFizzBu​​zzを発明しました。これをBizzFuzzと名付け、コーディングインタビューで提供することにしました。 ゲームのルールは次のとおりです。 番号が以下の条件のいずれかを満たす場合を除き、1から100までの各番号を印刷します。 数値が4で割り切れる場合は、「Fizz」と印刷します。 数値が5で割り切れる場合は、「バズ」を印刷します。 数が4で割り切れる場合は、その数のすぐ後にそれが5で割り切れる、代わりに「フィズ」の「FizzBu​​zz」を印刷し、定期的に次の番号を印刷します。 数が5で割り切れる場合は、その数のすぐ後にそれが4で割り切れる、代わりに「バズ」の「BuzzFizz」を印刷し、定期的に次の番号を印刷します。 数字が4と5で割り切れる数字の直前にある場合は、「Bizz」と印刷します。 数値が4と5の両方で割り切れる数値の直後にある場合は、「ファズ」と印刷します。 数値が4と5の両方で割り切れる場合、「BizzFuzz」を印刷します。 これらのすべてのルールを任意の言語で実装する最短のコードが優先されます。

3
あなたの機能の時間を計りますが、週末は仕事をしていません
私の上司は、2つの整数を加算するのにかかる時間を知る必要があります。しかし、私は週末に仕事をするのは好きではありませんし、私のコードもそうではないと思います。問題は、上司は要求の厳しい男であり、時間がかかることを確認するために時間をかけて投入する必要があると考えていることです。 次の短いプログラムを書いてもらえますか? 2つの整数を受け入れ、加算の正しい結果と、加算の実行にかかる時間を返します-この時間は妥当であり、コードの実行時間に基づいている必要があります。ただし、時間制限のあるコード間でいくつかの操作をこっそり実行する必要がある場合は、許可されているはずのコードよりも少し長く実行します。ただし、偽の時間を出力することはできません。 週末のローカル時間のコードでは機能しません(間違った結果を返すだけでなく、コードが壊れたり、エラーが発生したり、実行に失敗したりする必要があります) 週末に機能しない理由がすぐにはわからない 私は必ずいくつかのスマートな民族なので、ありますよ、私は最初の基準は一種奇妙なのですけど、私はしかし、基準3について疑いを上げることなく、必要であれば必ず人は、日付/時刻のライブラリをインポート可能性が作りたかった-10文字標準日付ライブラリのカレンダー機能を使用せずにこれを実行できる人 「標準の日付/時刻ライブラリ」について 標準日時ライブラリの例には、pythons datetime、javascript dateオブジェクトライブラリjava.util.Dateなどが含まれます。pythons timeitモジュールなどの実行の時間差を計算する関数は、ボスがコードのタイミングを期待しているため、この基準に違反しません。いくつかのケースでは、これらのライブラリは、アクセスにインポートする必要があります任意のそのリターンが別々与えることができる日時オブジェクトを構造化することを整数として、現在のエポックの開始からの時間を返すコール機能しますが、カレンダー機能を許可して、時間の関数を時間、日などは許可されません。 編集:Dan04の質問に関して、コードは、いつ機能するか、または機能しないかの4つの基準を満たしている必要があります。また、コードが時間をチェックする方法を説明する必要があります。月曜日の朝/金曜日の夜のたるみは、コードを短縮するための創造的な方法の機会を与えるはずです。 土曜日の朝00:00:00から日曜日の夜23:59:59までは動作しません。 月曜日の朝06:00:00から金曜日の夕方19:59:59まで常に動作する必要があります 月曜日の朝00:00:00から月曜日の朝5:59:59まで働くか、または働かないかのどちらか 金曜日の夜20:00:00から金曜日の夜23:59:59までは仕事ができる、または仕事ができない edit2:すぐにわかるように、次の3つの基準を満たす必要があります。 関数DayOfWeekの時間を計算するために使用せずに、呼び出した(または類似した)関数を呼び出してはなりません。 土曜日または日曜日またはそれらの略語を英語で使用してはなりません。 曜日を決定するために、またはコードを実行するかどうかを決定するために使用されない同じ名前の変数がない場合、SatまたはSunを使用しないでください。

3
ポリゴンプレフィックス
ポリゴンは、その辺の数に基づいて名前が付けられます。五角形には5つの辺があり、八角形には8つの辺があります。しかし、彼らはどのように命名されていますか?248辺のポリゴンの名前は何ですか? すべてのポリゴンの末尾にが付き-gonます。辺の数に応じて、各ポリゴンに特定のプレフィックスがあります。小さい番号のプレフィックスは次のとおりです。 3 - tri 4 - tetra 5 - penta 6 - hexa 7 - hepta 8 - octa 9 - nona 10 - deca 11 - undeca 12 - dodeca 13 - triskaideca 14 - tetradeca 15 - pentadeca 16 - hexadeca 17 - heptadeca 18 - octadeca …

22
N個の除数を持つ最小数を与える
関数は自然数を取り、それ自体を含む正確にその数の除数を持つ最小の自然数を返します。 例: f(1) = 1 [1] f(2) = 2 [1, 2] f(3) = 4 [1, 2, 4] f(4) = 6 [1, 2, 3, 6] f(5) = 16 [1, 2, 4, 8, 16] f(6) = 12 [1, 2, 3, 4, 6, 12] ... この関数は除数のリストを返す必要はありません。それらは例のためだけにあります。

30
この乗算表を印刷する
最短のコードを記述して、次の乗算テーブルを印刷します。 1×1=1 1×2=2 2×2=4 1×3=3 2×3=6 3×3=9 1×4=4 2×4=8 3×4=12 4×4=16 1×5=5 2×5=10 3×5=15 4×5=20 5×5=25 1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36 1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49 1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64 1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81

26
三角形のエリアサイドサイドサイド
三角形の3辺を与え、この三角形の領域を印刷します。 テストケース: で: 2,3,4 アウト: 2.90473750965556 で: 3,4,5 アウト: 6 三辺a、b、cは常にa> 0、b> 0、c> 0、a + b> c、b + c> a、c + a> bであると仮定します。
17 code-golf  math 

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