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

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

5
マトリックスを畳む!
行列が与えられたら、その値を上/下または左/右に合計してXを形成し、それを畳んでリストを返します。ここでアルゴリズムを説明します。 アルゴリズム 入力は、言語の適切な数値容量内の整数の奇数サイズの正方行列になります。 例として次のマトリックスを見てみましょう。 1 2 3 2 1 0 3 2 3 0 4 2 5 6 3 7 4 7 9 4 0 6 7 2 5 まず、メインの対角線または対角線上にある最も近い数字にすべての数字を追加します。つまり、マトリックスを対角線と対角線に沿って4つのセクションに分割し、各セクションのすべての数値を中央に向かって合計します。 1 2 3 2 1 ↓ ↓ ↓ 0 → 3 2 3 ← 0 ↓ 4 → 2 → …
13 code-golf  matrix 

16
最高の発生回数または最低の発生回数
チャレンジ: 入力: 印刷可能なASCIIを含む文字列(スペース、タブ、改行を除く) ブール値† 出力: 文字列の部分は4つのグループに分けられます。 小文字 大文字 桁 その他 ブール値に基づいて、これらの4つのグループの1つ(または複数)の最高オカレンスを出力するか、他のすべてをスペースで置き換えて最低オカレンスを出力します。 例えば: 入力:"Just_A_Test!" 含まれるもの: -大文字3文字:JAT -小文字6文字:ustest -0桁 -その他3 文字:__! これらは、trueまたはの出力になりますfalse。 true: " ust est " // digits have the lowest occurrence (none), so everything is replaced with a space false: " " (注:末尾のスペースを無視することが許可されているため、出力はそれぞれに" ust est"なり""ます。) チャレンジルール: 入力が空になっていないか、スペースを含む、および範囲のみで印刷可能なASCIIで構成されますん33-126や'!'て'~'。 必要に応じて、入力や出力を文字配列またはリストとして使用できます。 †ブール値には、2つの一貫した異なる値を使用できます:true/ false; …
13 code-golf  string 

7
丘の中腹の小さな箱
もともとマルヴィーナ・レイノルズによるリトル・ボックスという風刺的な歌があり、次のような歌詞があります。 丘の中腹にある 小さな箱、カチカチの粘着性のある 小さな箱、丘の中腹にある 小さな箱、小さな箱はすべて同じ。 緑のものとピンクのもの、 そして青のものと黄色のものがあり、 それらはすべて、ベトベトした粘着性で作られており 、すべて同じように見えます。 ここでの仕事は、n>1家のサイズを表す整数入力が与えられ、次の色を使用して4つの「小さな箱」を出力することです(0xRRGGBB表記)。 Green -- 0x00FF00 Pink --- 0xFF00FF (technically magenta) Blue --- 0x0000FF Yellow - 0xFFFF00 特定のコンソールにこれらの正確な色がない場合は、最も近いものを使用できます(たとえば、ANSIエスケープコード)。 家はn _、床と屋根を表すように構築されています。それらは、壁を表すn/2(端数切り上げ)|文字で囲まれています。屋根は常に2高く/、左端に2つ\、右端に2つありn-2 -、屋根の頂点を表しています。家が大きくなると、屋根の比較サイズは小さくなります。これは意図されたものです。 これがサイズの家です2: /\ /__\ |__| サイズは3次のとおりです。 /-\ /___\ | | |___| サイズは7次のとおりです。 /-----\ /_______\ | | | | | | |_______| したがって、入力が与えられると、上記7のサイズの4つの家を出力します。7最初の家は緑、2番目はピンク(マゼンタ)、3番目は青、4番目は黄色です。その順序で色を出力することが重要です。 サイズの写真例3: …

4
配列を伸ばす
先ほど、配列を粉砕するプロセスを定義しました クラッシュでは、配列を左から右に読み取ります。ある時点で2つの同じ要素が連続して出現した場合、最初の要素を削除し、2番目の要素を2倍にします。 例は、次の配列を粉砕するプロセスです [5,2,2,4] ^ [5,2,2,4] ^ [5,2,2,4] ^ [5,4,4] ^ [5,4,4] ^ [5,8] ^ 同じ要素を複数回折りたたむことができることに注意してください。この例で2,2,4は8、1回のパスで折りたたまれました。 配列の粉砕は簡単になりましたが、難しいのは配列を粉砕することです。あなたの仕事は、正の整数の配列を入力として受け取り、繰り返し押しつぶされたときに入力を形成できる最大の配列を出力することです。たとえば、配列[4]は粉砕によって形成され、粉砕[2,2]は粉砕によって形成され[1,1,1,1]ます。非整数値を持つ[1,1,1,1]ことはできないため、これ以上クラッシュさせることはできず、それが答えです。 この0ような配列は無期限に拡張できるため、入力配列でa を受け取ることはありません。また、同じ奇数の番号が2つ並んでいるケースを受け取ることはありません。そのようなケースは、粉砕の結果ではありません。 これはコードゴルフであるため、回答はバイト単位で測定されたソースのサイズでスコアリングされ、バイト数は少ない方が良いです。 答えを始める前に、この挑戦​​は見かけよりもはるかに難しいと言いたいだけです。進むにつれて直観を確認し、答えがすべてのテストケースに合格することを確認します。 テストケース [] -> [] [5] -> [5] [6] -> [3,3] [8] -> [1,1,1,1,1,1,1,1] [4,8] -> [1,1,1,1,1,1,1,1,1,1,2] [2,8] -> [1, 1, 1, 1, 2, 1, 1, 1, 1] [4,4] -> …

17
10行の棒グラフ
これは、APL CodeGolfのThe Autumn Tournamentの Hole-1 です。私はそこで問題の原作者であるため、ここに再投稿することができます。 数字のリストが与えられたら、#10個の同じサイズのグループのそれぞれに適合する数字の数を示す横棒グラフを作成します。たとえば、データの範囲が0〜100の場合、範囲は0〜9.9、10〜19.9、…、90〜100です。(正式には、[0,10)、[10,20)、…、[90,100]。)。少なくとも2つの数字があり、すべての数字が同じであるとは限りません。 例: [1,0,0,0,0,0,0,0,0,0] 与える: ######### # [0,1,2,3,4,5,6,7,8,9] 与える: # # # # # # # # # # [0,1,2,3,4,5,6,7,8,9,10] 与える: # # # # # # # # # ## [0,1,2,3,4,5,6,7,8,9,10,11] 与える: ## # # # # # # # # ## [0,-0.5,-1,-1.5,-2,-2.5,-3,-3.5,-4,-4.5,0.5,0,-0.5,-1,-1.5,-2,-2.5,-3,-3.5,-4,1,0.5,0,-0.5,-1,-1.5,-2,-2.5,-3,-3.5,1.5,1,0.5,0,-0.5,-1,-1.5,-2,-2.5,-3,2,1.5,1,0.5,0,-0.5,-1,-1.5,-2,-2.5,2.5,2,1.5,1,0.5,0,-0.5,-1,-1.5,-2,3,2.5,2,1.5,1,0.5,0,-0.5,-1,-1.5,3.5,3,2.5,2,1.5,1,0.5,0,-0.5,-1,4,3.5,3,2.5,2,1.5,1,0.5,0,-0.5,4.5,4,3.5,3,2.5,2,1.5,1,0.5,0] 与える: …

16
べき乗シーケンス
ボフニア * にあるポーランド最古の塩鉱山は 1248年に開始されました。これは魔法の数字と考えることができます。べき乗のシーケンスから4桁に等しいことがわかります。 日付は実際にはシーケンスから4桁なので、もっと長くすることができます。無限に達するまでこのプロセスを繰り返すことができます。数に制限すると、シーケンスは次のようになります2048 124816326412825651210242048 見た目を少し良くするために、数字を分けることができます。 1|2|4|8|16|32|64|128|256|512|1024|2048 日付よりも長いカスタムのシーケンスを試してみましょう。たとえば、5桁にする必要があります。複数の可能性があります。 24816 81632 64128 または3桁のもの: 124 248 816 これに3桁の数字を追加することもできますが、シーケンスには少なくとも2つの数字が必要であるとしましょう。 *英語版ウィキペディアにはこれに関する情報はありません。ポーランド語版を入力すると-があります。あなたが鉱山を訪れると、労働者はあなたに、それが1248年に始まったと伝えます。 チャレンジ 上記の例のように、2を基数とする累乗シーケンスを作成します。 2〜27の範囲の数値を指定して、入力と等しい桁数でシーケンスのすべての可能な部分(必要に応じて1つ以上の2048)を出力します。48116は半分にカットされるため、数値を切り取ることができないため、次のような出力は無効です。 ルール: 標準的な抜け穴は禁止されています。 入力は範囲内の数値であると想定できます。 プログラムは、範囲(28+)よりも大きい入力を受け入れることができますが、スコアは増減しません。 出力のスペースは無視されます。like 124またはlike を出力できます4 8 16。 異なる可能性は、リストの任意の文字,./|または改行で区切る必要があります。 配列として出力できます。 すべての可能性は少なくとも2つの異なる数字を含むべきです。 シーケンスの一部を出力する必要があります14。次のように、隣り合っていない数字を混在させることはできません。 ハードコーディングされた出力は許可されませんが、完全なシーケンスを含む文字列/数値/配列をハードコーディングできます。 入力27は、2048シーケンス全体を返す必要があります。 既に述べたように、数字をカットしないでください。例 16滞在する16必要があります481- 使用できません-を使用する必要があります4816。 編集:私はそこに間違ったことを言ったかもしれません。2048はプログラムがサポートする最後の番号です。より大きな整数のサポートを追加できます。 テストケース 入力: 2 12, 24, 48 入力: 3 124, 248, …

2
トーナメントブラケットを構築する
空でない文字列の入力リストが与えられた場合、次の描画ルールに基づいて、トーナメントのASCIIアート表現を出力します。 文字列の数は、量が保証されています 2,4,8,16,etc. 最初の2つのストリングは互いに演奏し、次の2つのストリングは互いに演奏します。これは最初のラウンドです。 ゲームごとに、同じ確率で勝者をランダムに選択します。 次のラウンドでは、最初のゲームの勝者が2番目のゲームの勝者、3番目のゲームの勝者が4番目のゲームの勝者、というように続きます。後続のラウンドはパターンに従います。 最終的には全体で1つの勝者がいます。 きれいに出力するには(必須)、すべての文字列の前にアンダースコアを付加する必要があります_。 ブラケットを適切に整列させるために、各エントリは_そのラウンドですべて同じ長さになるようにパディングする必要があります。 一貫性がある限り、パディングを追加するか追加するかを選択できます。 代わりに、ラウンドごとではなく、すべての文字列を同じ長さになるように事前に追加することを選択できます。どちらがあなたのコードにとってゴルファーです。 さらなるルール 文字自体が正しく並んでいる限り、先頭または末尾の改行または空白はすべてオプションです。 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 可能であれば、他の人があなたのコードを試すことができるように、オンラインテスト環境へのリンクを含めてください! 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。 例 都市の例['Boston', 'New York', 'Charlotte', 'Atlanta', 'St. Paul', 'Chicago', 'Los Angeles', 'Phoenix']: _Boston______ \_New York____ _New York____/ \ \_New York_ _Charlotte___ / \ \_Charlotte___/ \ _Atlanta_____/ \ \_St. Paul_ _St. Paul____ / \_St. …

11
立方体のキューブの面を合計する
Cubicallyキューブの面を手動で合計するのは退屈で時間がかかり、Cubically自体でコードを書くようなものです。 で最も効率的なcubifier、私は、立体的ソースにASCIIを変換することができ尋ねました。そこでの回答の1つは、キューブの初期化シーケンスを使用し、事前に初期化されたキューブの合計に基づいて結果のキューブを変更します。それ以来、このメソッドは多くのキュービック関連プログラムで使用されています。新しい初期化シーケンスをテストするとき、すべての面のすべての値を加算する必要があります。これには通常2〜3分かかります。 あなたの仕事は、このプロセスを自動化することです! 整数nと文字列の2つの入力を受け取りますc。これらは、コマンドライン引数、関数引数、標準入力、ファイル、またはそれらの任意の組み合わせから読み取ることができます。cなり立体的メモリキューブサイズのnインタプリタによってかなりプリントとして。 Cubicallyインタープリターは、プログラムの終了時にキューブをSTDERRにダンプし、見やすいように適切にフォーマットします。Cubicallyインタープリターで空のプログラムを実行し、デバッグセクションを開いて、初期化されたキューブのキューブダンプを確認します。引数4を追加して、4x4x4 5を表示したり、5x5x5などを表示したりします。 n3の場合、cこの形式に従います(整数は可変です)。 000 000 000 111222333444 111222333444 111222333444 555 555 555 スペース、改行、すべて。nが4の場合、次のcようになります(変数整数も使用): 0000 0000 0000 0000 1111222233334444 1111222233334444 1111222233334444 1111222233334444 5555 5555 5555 5555 など。 プログラムは6つの整数を出力します。最初の整数は、上面のすべての数値の合計になります。 000 000 top face 000 111222333444 left, front, right, and back faces, respectively 111222333444 111222333444 555 555 bottom face …

4
ヒドラスレイヤーの帰還
あなたがそのヒドラを殺してからしばらく経ちましたが、あなたは長年栄光を浴びていましたが、今では人々はあなたを洗い流していると呼んでいます。さて、あなたは彼らが間違っていることを証明する時、あなたは別のヒドラの行方を聞いたことがあります。単にそれを殺すと、あなたはあなたが値するすべての栄光を授与されます。 あなたは剣を受け取るために武器庫に到着しますが、それらはすべて通常の剣ではなく、残っているのはセクターだけです。nセクターはHydraの頭の数をnで除算しますが、頭の数がnで割り切れる場合にのみ使用できます。 もう一度、あなたはヒドラを殺すのを助けるためにいくつかのコードを書くつもりです。コードは、ヒドラの頭の数を入力として受け取り、戦いを開始し、ヒドラが毎ターン成長する頭の数、および使用できるnセクターのリストを入力します。あなたのコードは、可能な限り迅速にヒドラを殺すための動きの最適なパターンを出力します 戦いの各ターンでは、1つのスライスを選択して、スライスの後にヒドラの頭が1つだけの場合は勝ち、そうでない場合は頭を成長させます。あなたは決して動きをすることはできませんし、可能な動きがなければ損失します。 解決策が不可能な場合は、解決策以外の何か、たとえば空のリスト、何もない、数字のゼロなどを出力できます。 これはコードゴルフであるため、回答はバイト数として記録され、少ない方が良い結果が得られます。 テストケース ここにいくつかの超基本的なテストケースがありますが、リクエストに応じてさらにテストケースが追加されます。 24 heads, 1 heads per turn, [2,3] -> [3,3,2,3] 25 heads, 2 heads per turn, [2,3] -> No solutions 4 heads, 2 heads per turn, [2] -> No solutions 4 heads, 3 heads per turn, [2,5] -> [2,5] 10 heads, 17 heads …
13 code-golf  math  number  game 

28
配列分解
正の整数の配列が与えられた場合、これらの整数の異なる素因数の安定した配列を出力します。言い換えると、入力の整数ごとに、その素因数を取得し、並べ替え、出力にまだない素数を出力に追加します。 テストケース [1,2,3,4,5,6,7,8,9,10] -> [2,3,5,7] [10,9,8,7,6,5,4,3,2,1] -> [2,5,3,7] [100,99,98,1,2,3,4,5] -> [2,5,3,11,7] [541,60,19,17,22] -> [541,2,3,5,19,17,11] [1,1,2,3,5,8,13,21,34,45] -> [2,3,5,13,7,17] [6,7,6,7,6,7,6,5] -> [2,3,7,5] [1] -> [] [8] -> [2] [] -> [] 出力は、整数または文字列の配列またはリスト、区切られた出力、または番号の順序付きリストを出力するその他の標準手段として使用できます。 これはcode-golfであるため、バイト単位の最短回答が優先されます。

1
ハイドラスレイヤーになる
あなたはこの地域の最高で最も有名なヒーローです。最近、ヒドラが近くの渓谷でぶらぶらしているという噂がありました。あなたがあなたであるという勇敢で高潔なヒーローであることは、あなたが今日いつかそれをチェックアウトすることになると考えています。 ヒドラエの問題は、頭を切り落とそうとするたびに、新しい頭が成長することです。幸いなことに、あなたは一度に複数の頭を切り落とすことができる剣を持っています。しかし、ヒドラがあなたの剣のカットよりも少ない頭を持っている場合、あなたはヒドラを攻撃することはできませんキャッチがあります。ヒドラの頭が正確にゼロになったら、あなたはそれを殺しました。 呼ばれる特殊な剣もあり等分ハイドラの頭の半分を切ったが、ヘッドの数が偶数である場合にのみします。ヘッドの数が奇数の場合、Bisector はまったく使用できません。これは、ゼロヘッドの切断とは異なります。 あなたはヒドラを殺すための最良の方法を見つけるためにコンピュータープログラムを書くことに決めました。 仕事 入力として与えられます Hydraが始まる頭の数 Hydraが毎ターン再生する頭の数 それぞれが使用可能な剣のリスト(それぞれが二等分線であるか、各ターンで一定数の頭を切る) 可能な限り少ないターンでヒドラを殺す動きのリストを出力する必要があります。ヒドラを殺す方法がない場合は、そのことを示す他の値を出力する必要があります(言語が強く入力されている場合は空のリストでも構いません)。ヒドラを殺すための最適な方法が複数ある場合、それらのいずれかまたはすべてを出力できます。 これはコードゴルフの質問なので、回答はバイト単位で記録され、バイト数は少ない方が良いでしょう。 テストケース リクエストにより利用可能 5 heads, 9 each turn, [-1,-2,-5] -> [-5] 12 heads, 1 each turn, [/2,-1] -> No solution 8 heads, 2 each turn, [-9, -1] -> [-1,-9] 3 heads, 23 each turn, [/2,-1,-26] -> [-1,-1,-26,-26,-26,-26,-26,-26,-26,-26] 16 heads, …
13 code-golf  math  game 

5
ランク相関係数
通常の相関係数(2d)は、点の集合が線でどれだけうまく記述できるかを測定し、はいの場合、その符号は正または負の相関があるかどうかを示します。ただし、これは、ポイントの座標が実際に、たとえば測定値として定量的に解釈できることを前提としています。 あなたはしかし、あなたはまだできることを行うことができない場合はご注文の座標を、そこにあるの順位相関係数:それはポイントがによって記述することができますどれだけ測定単調機能。 チャレンジ 2dポイントのリストが与えられたら、それらのランク相関係数を決定します。 詳細 入力は正の整数(ただし、そうする必要はありません)、またはその他の「ソート可能な」値であると想定できます。 ポイントは、ポイントのリスト、またはx座標とy座標の2つのリスト、マトリックスまたは2D配列などとして取得できます。 出力は、0〜1の実数を表す必要があるため、浮動小数点または有理数型である必要があります。 定義 ランク:番号のリストをX=[x(1),...,x(n)]指定するrx(i)と、各エントリにrankと呼ばれる正の数を割り当てることができx(i)ます。そのためには、リストをソートx(i)し、ソートされたリスト内のインデックスを割り当てますrx(i)。2つ以上のx(i)値が同じ場合、対応するすべてのインデックスの算術平均をランクとして使用します。例: List: [21, 10, 10, 25, 3] Indices sorted: [4, 2, 3, 5, 1] 番号10はここに2回表示されます。ソートされたリストでは、インデックス2とを占有します3。それらの算術平均は2.5、ランクが Ranks: [4, 2.5, 2.5, 5, 1] 順位相関係数は:レッツは、[(x(1),y(1)),(x(2),y(2)),...,(x(n),y(n))]与えられたポイントになるところそれぞれx(i)とy(i)実数でそれぞれについて(WLOGは、あなたはそれが整数であると仮定することができます。)i=1,...,n我々は計算のランクを rx(i)とry(i)のx(i)とy(i)それぞれ。 してみましょうd(i) = rx(i)-ry(i)ことがランク差とlet S合計でS = d(1)^2 + d(2)^2 + ... + d(n)^2。そして、順位相関係数は rhoで与えられます rho = 1 - 6 …

5
フォールアウトターミナルハッキング
誰もが頑固なベセスダファンですか?おそらく黒曜石のエンターテイメントを好むでしょうか?さて、あなたがそれらのいずれかであるなら、次の図はあなたに比較的馴染みがあるはずです。 私はかなりユニークなASCII-Artチャレンジを準備する自由を取りましたので、ここで私があなたに何をさせるつもりかについての最初の手がかりがあります: _____________________________________________________ / \ | _____________________________________________ | | | | | | | Welcome to ROBCO Industries (TM) Termlink | | | | Password Required | | | | Attempts Remaining: | | | | | | | | 0x01 | 0x0D | | | | 0x02 | 0x0E …

8
最小タクシー距離マップ
チャレンジの説明 タクシーメトリック、2点間の距離は次のように定義されます。 ゼロと1のみの行列を考えてみましょう: 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 マトリックス内で1最も近い異なる 距離にそれぞれをマッピングしてみましょう1(もちろん、2つの隣接する行/列間の距離が1に等しいと仮定します): 0 0 0 3 0 2 0 0 0 0 0 0 0 0 0 1 0 0 3 0 …

4
この数はフェルマーですか?
フェルマー数は正の整数で、整数xで2 2 x +1 として表現できます。 「Fermat-ness」と呼ばれる番号の属性を定義しましょう。 数のフェルマーネスは、基数から始まり、フェルマーネスを最大化するために2のべき乗が拡張された2のべき乗の長さよりも1つ小さくなります。 フェルマー数ではない数のフェルマーネスはゼロです。 したがって、17(= 2 2 2 2 0 +1)にはフェルマーネス3があります。 チャレンジ 入力として正の非ゼロ整数を与え、数値のフェルマーネスを出力します。 ルール 入力を2進数、10進数、16進数、bignum、またはゴルフに最適な形式で入力できます。 ソリューションは、使用する表現が64を超えるビット長の数値を処理できる必要があります。 非負の整数のべき乗のみ。 もちろん、標準的な抜け穴は禁止されています。 これはcode-golfなので、最短の回答が勝ちます。 テストケース これらはフォーマットですinput->output。入力はスペースを節約するために16進数です。 10000000000000000000000000000000000000000000000000000000000000001 -> 2 1000000000000BC00000000000000000000000000000000001000000000000001 ->0 1234567890ABCDEF -> 0 100000000000000000000000000000001 -> 1 5 -> 2 11 -> 3 10001 -> 4 101 -> 1 10進数で同じ: 115792089237316195423570985008687907853269984665640564039457584007913129639937 …

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