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

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

1
すべての光すべての光すべての光!
このチャレンジはされて完全に食い物に大きく触発され た全ての光 Soulgitゲームによって開発されました、。 チャレンジ あなたは電気技師であり、すべてのライトをバッテリーに接続するのはあなたの仕事です。 ライトとバッテリーは格子状に配置されています。 ライトまたはバッテリーを、その北、南、東、および西の最も近いライトまたはバッテリーに接続できます。 バッテリーにはいくつでも接続できます。 各ライトは、必要な接続数を指定します。そのライトと正確に同じ数の接続を行う必要があります。 2つのライト(またはライトとバッテリー)間の単一接続または二重接続を作成できます。 ワイヤーは交差できません。 各ライトからバッテリーへのパスが必要です。 少なくとも1つの有効なソリューションが存在することが保証されています。 バッテリーと各ライトの位置、および各ライトに必要な接続の数が与えられたら、これらのプロパティを認めるそれらの間の接続を出力します。 勝利条件 これはcode-golfであるため、各言語で最も短いコードが優先されます。 テストケース I / Oは通常どおり柔軟です。 入力には、ライト用の正の整数、空白用のゼロ、およびバッテリー用の-1を格納するグリッドのサイズの2D配列を使用します。別の良い選択としては、ライトのリストがあります。ライトは、ライトの位置と必要な接続の数を含むタプルです。 出力には、接続のリストを使用します。接続は、開始位置と終了位置を含むタプルです。接続が2倍になった場合、リストに2つあります(別のオプションは、このパラメーターをタプルに含めることです)。別の良いオプションは、ある種のグリッドレイアウトです。 座標系を使用している場合は、開始インデックスとインデックス元を指定できます。私の例は0からインデックス付けされ、左上隅(行、列)として(0、0)を使用します。(私は{}を単に別のタイプの区切り文字を導入するために使用しているので、セットであるためではなく、読みやすくなっています。) テストケースのグラフィカルビューを次に示します。テスト1〜12 テスト1: [-1 | 0 | 1 ] => [{(0, 0), (0, 2)}] テスト2: [-1 | 0 | 2 ] => [{(0, 0), (0, 2)}, {(0, 0), …
13 code-golf 

30
プライムパワーからプライムを回復する
定義:素数はp nの形式で表現できる自然数です。pは素数で、nは自然数です。 タスク:プライムパワーp n > 1の場合、プライムpを返します。 テストケース: input output 9 3 16 2 343 7 2687 2687 59049 3 得点:これはcode-golfです。バイト単位の最短回答が優先されます。
13 code-golf  arithmetic  primes  king-of-the-hill  python  board-game  code-golf  number  subsequence  code-golf  ascii-art  code-golf  array-manipulation  decision-problem  grid  fastest-algorithm  logic-gates  logic  code-golf  cards  code-golf  rational-numbers  code-golf  math  number  sequence  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  code-golf  number  sequence  decision-problem  code-golf  ascii-art  number  code-challenge  sequence  arithmetic  sorting  code-golf  date  fastest-algorithm  code-golf  string  number  random  combinatorics  code-golf  combinatorics  code-golf  ascii-art  base-conversion  code-golf  array-manipulation  code-golf  string  code-golf  string  number  arithmetic  code-golf  kolmogorov-complexity  code-golf  string  array-manipulation  json  code-golf  puzzle-solver  code-golf  binary  graph-theory  code-golf  arithmetic  haskell  code-golf  string  cipher  code-golf  code-golf  string  parsing  alphabet  code-golf  string  code-golf  ascii-art  code-golf  string  number  code-golf  string  balanced-string 

3
ワード検索ソルバー
昨日、特定の単語検索をくまなく調べて答えを出力するプログラムを書くことができるかどうか疑問に思いました。実際、驚くほど簡単でした。今、私たちはどれだけ小さくできるのだろうか。 ルール 最初の入力は、n行の文字列またはコレクションであり、各行はn文字の長さです 2番目の入力は、パズルで見つけるための任意の形式の単語のリストです 検索リスト内のすべての単語はパズルに含まれていることが保証されています 単語は、4つの基本方向のいずれか、および前方と後方の両方に斜めに向けることができます。 大文字のAZ文字のみがパズルに存在します コードは、検索文字列内のすべての単語を検索し、開始文字の座標位置を出力する必要があります。0,0は左上の文字です。 同じ単語の複数のインスタンスを見つけた場合は、好きなように処理できます。複数回、または一度だけ出力します。それはあなた次第です 例/テストケース 次のボードを考えます: ABCD EFGH IJKL MNOP そして、次の検索文字列: ABCD,CGKO,POMN,NJF,AFKP,CFI,LGB,MJGD プログラムは、次の順序で出力します。 ABCD at 0,0 CGKO at 0,2 PONM at 3,3 NJF at 3,1 AFKP at 0,0 CFI at 0,2 LGB at 2,3 MJGD at 3,0 いつものように、最短回答が勝ちます

6
RGB to Xtermカラーコンバーター
256色のXterm互換端末は、通常の16システム色の上に240色を追加します。色16〜231は、辞書式に並べられた赤、緑、青の6つのレベル(0、95、135、175、215、255)を使用します。色232-255は、単純に24レベルのグレー(8〜238 x 10秒)です。私が話していることをよりよく理解するには、この表を参照してください。 チャレンジ 目標は、入力としてrgb値を取り、そのrgb値に最も近いXterm色に対応する数値を出力するプログラムまたは関数を作成することです。16のシステムカラー(色0〜15)は多くの場合カスタマイズ可能であるため、この変換から除外します。 「最も近い」色を明確に定義するには、赤、緑、青の成分に沿ってマンハッタン距離を使用します。たとえば、rgb(10, 180, 90)から20ユニット離れていますrgb(0, 175, 95)(色35)abs(10 - 0) + abs(180 - 175) + abs(90 - 95) == 20。入力色が2つ以上のXterm色の間で等しい場合、最高のインデックスを持つXterm色を出力します。 例 R G B Xterm 0 0 0 ==> 16 95 135 0 ==> 64 255 255 255 ==> 231 238 238 238 ==> 255 90 133 140 …
13 code-golf  color 

26
シンプルなゴルフ通訳
チャレンジ: あなたの仕事は、単純なゴルフ言語の簡単な通訳を作成することです。 入力: 入力は、スペースで区切られた文字列の形式になります。 スペース区切りを必要なものに置き換えることができます 出力: すべての操作を実行した後に得られた結果(数値または文字列)を出力します。複数の出力がある場合、結合して単一の結果(セパレーターなし)にします。変数の初期値は常にゼロです。すなわち:で始まる0 言語構文: この言語には次の演算子があります。 inc ---> add one to variable dec ---> remove one from variable mult ---> multiply variable by 2 half ---> divide the variable by 2 Pri ---> print the variable to console (or whatever your language has) exit ---> end the …

7
迷路のカットポイント
迷路は、任意の便利な形式で0(壁)と1(歩行可能な空間)のマトリックスとして与えられます。各セルは、4つ(またはそれ以下)の直交隣接ノードに接続されていると見なされます。連結成分は全て過渡互いに接続歩行セルの集合です。あなたの仕事は、カットポイントを特定することです-歩きやすいセルは、壁になった場合、接続されたコンポーネントの数を変更します。それらの位置でのみ1-sのブール行列を出力します。目標は、コードの最小バイトでそれを行うことです。 入力行列は、少なくとも3行3列で構成されます。そのセルの少なくとも1つは壁で、少なくとも1つは歩行可能です。関数またはプログラムは、TIO(または言語がTIOでサポートされていない場合は自分のコンピューター)で1分以内に以下の例を処理できる必要があります。 in: 11101001 11011101 00000001 11101111 11110101 00011111 10110001 11111111 out: 01000000 00001001 00000001 00000101 00110000 00010000 00000000 11100000 in: 1111111111111111 1000000000000001 1111111111111101 0000000000000101 1111111111110101 1000000000010101 1011111111010101 1010000001010101 1010111101010101 1010101111010101 1010100000010101 1010111111110101 1010000000000101 1011111111111101 1000000000000001 1111111111111111 out: 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 0000000000000000 …

13
算術サイクル
入力: 整数nである>=0か、>=1(f(0)任意です) 出力: n以下のシーケンスの'番目の番号、またはn'番目の番号までのシーケンス。 シーケンス: (0),1,-1,-3,0,5,-1,-7,0,9,-1,-11,0,13,-1,-15,0,17,-1,-19,0,21,-1,-23,0,25,-1,-27,0,29,-1,-31,0,33,-1,-35,0,37,-1,-39,0,41,-1,-43,0,45,-1,-47,0,49,-1,-51,0,53,-1,-55,0,57,-1,-59,0,61,-1,-63,0,65,-1,-67,0,69,-1,-71,0,73,-1,-75,0,77,-1,-79,0,81,-1,-83,0,85,-1,-87,0,89,-1,-91,0,93,-1,-95,0,97,-1,-99 このシーケンスはどのように構築されますか? f(n=0) = 0(オプション) f(n=1) = f(0) + nまたはf(n=1) = 1 f(n=2) = f(1) - n f(n=3) = f(2) * n f(n=4) = f(3) / n f(n=5) = f(4) + n など。 または擬似コードで: function f(integer n){ Integer result = 0 Integer i = 1 …

30
アイソグラムチェッカー
チャレンジ: 単語が与えられたら、それがアイソグラムかどうかを確認します。 何 : アイソグラムは、重複のない文字のみで構成される単語です(大文字と小文字は区別されません)。空の文字列はアイソグラムです。 例: "Dermatoglyphics" ---> true "ab" ---> true "aba" ---> false "moOse" ---> false "abc1" ---> false "" ---> true 入力: 合理的な形式の入力を受け入れることができます 入力には文字や数字のみが含まれ、スペースは含まれません([a-zA-Z0-9]) 出力: true または入力がアイソグラムである場合、任意の真実の値 false または偽の値 これはコードゴルフなので、各言語のバイト単位の最短コードが優先されます。

3
Stack Catsプログラムをフラット化する
Stack Catsは、可逆的なスタックベースの言語です。その可逆的な性質により、やや奇妙なループになります。この挑戦は条件付きループについて(...)です。これらのループが特定の方法でネストされると、コードを変換してネストの深さを減らすことができます。ルールは次のとおりです(任意のスニペットの場所Aと略称B): 1つのループが別のループで始まるとき、私たちは前に内部ループを抽出することができます:((A)B)なり(A)(B)。 1つのループが別のループを終了すると、我々は最後まで内部ループを抽出することができます:(B(A))なり(B)(A)。 空のループを()プログラムから完全に削除できます。当然の結果として(他の規則と組み合わせて)、((A))と同等(A)です。 残る唯一のネストされたループは、の形式です(A(B)C)。ここでA、BおよびC空ではありません。 チャレンジ 有効なStack Catsプログラムが与えられ、タスクは、上記の変換を使用して、ループのネストレベルを可能な限り減らし、空のループを残さないことです。 有効なStack Catsプログラム... ...は文字のみで構成され()/\<>[]{}!"*+-:=ITX^_|ます。 ...ミラー対称性\(]{}!{}[)/があります(たとえば、有効なプログラムですが、そうで/|/はありません)。 ...が正しく一致してネストされ()、and {}([]、通常のように一致する必要は<>あり\/ませんが、ミラー対称性の要件によりペアで表示されます)。 入力として文字列または文字のリストを使用できますが、出力は同じ形式で提示する必要があります。 プログラムまたは関数を記述し、入力を受け取って出力を提供する当社の標準的な方法を使用できます。これらの抜け穴はデフォルトでは禁止されていることに注意してください。 これはcode-golfであるため、バイト単位で測定された最短の有効な回答が勝ちます。 テストケース テストケースはそれぞれ2行(入力と出力)で、空の行で区切られています。1つの出力が空であることに注意してください。また、空の入力をサポートする必要があります(結果として空の出力になるはずです)。 (((=+|+=))) (=+|+=) ({(=+|+=)}) ({(=+|+=)}) ((\)/)I(\(/)) (\)(/)I(\)(/) (()()(())()()) ((<|>((X((T)))[_]))\^/(([_](((T))X))<|>)) (<|>)(X)(T)([_])(\^/)([_])(T)(X)(<|>)

1
ビル・ゲイツをアウトゴルフできますか?
パンケーキソーティングは、スパチュラをスタックの任意の位置に挿入して、その上にあるすべてのパンケーキを裏返すことができるときに、サイズの乱れたパンケーキのスタックをソートする数学的問題の口語的な用語です。パンケーキ番号P(n)は、n個のパンケーキに必要なフリップの最小数です。1 1979年、若いBill GatesとChristos Papadimitriouは、P(n)=(5n + 5)/ 3の上限を証明する論文を書きました。2 Gates(および/またはPapadimitriou)が開発したアルゴリズム(おそらく1979年以降)を使用してパンケーキソートを実行するプログラムを作成したと想定するのは安全だと思います。ゲイツは熟練したプログラマーだったので、おそらくこのコードをできる限りゴルフしようとしましたが、ソースコードのサイズは公開されていません(AFAIK)。 チャレンジ: パンケーキのソートを実行する関数/プログラムを作成します。ここで、フリップの最大数は、GatesとPapadimitriouによって検出された境界を超えません。3リストが一貫している限り、リストを昇順または降順で選択できます。 n <50と仮定することができます。したがって、フリップの数を(ランダムに選択されたn値)に制限する必要があります。 n P(n) 38 65 49 83 50 85 出力は、各フリップの前のヘラの位置になります。出力は0または1のインデックスが付けられ、上からカウントするか下からカウントするかを選択できます。 追加のルール: ランタイムは確定的でなければなりません 固定の時間制限はありませんが、50要素のリストの出力を提供できる必要があります テストリスト: 私は最も難しいリストを提供することはできません(もしそうなら、私は挑戦ではなく論文を書きます)、関数/プログラムをテストできる数のランダムなリストを提供します。これらのリストが「簡単」であることが判明した場合、他の人を追加できます。 9, 63, 62, 75, 45, 78, 59, 75, 69, 3, 28, 94, 51, 10, 45, 93, 97, 80, 72, 36, 80, 88, 30, 93, …

2
21文字で「勝つためにtrueを返す」という合計タスクを解決する方法
Javascriptプログラマ向けの興味深いタスクを含む「Return True to Win」というサイトがあります。目標は、強制的にtrueを返す特定の関数の引数を見つけることです。 以下はタスクの1つです。 function total(x) { return (x < x) && (x == x) && (x > x); } ユーザーはx、関数がtrueを返す原因となる値のスニペットを見つける必要があります。スニペットをテストするには、スニペットをパラメーターとして関数を呼び出します(例:)total(<snippet>)。 22文字のソリューションを見つけました。 {valueOf:_=>n++%3},n=0 一部の人々は21文字で解決策を見つけました。私はこの解決策を見つけることができません。21文字の解決策は何ですか?

3
コードゴルフ模擬ゴルフ
穴のヤード、グリーンサイズ、スライス角度、最大距離のリストが与えられたら、ゴルフスコアを計算します。 仮定 地球は平らです すべてのグリーンは円形です スライス角度は-45〜45度で、度単位で指定されます 同じメトリック内のすべての距離(ヤードまたはメートル、重要ではありません) アウトオブバウンズ、障害物、ドッグレッグはありません 穴の最大スコアは8 すべてのショットは、最大距離またはホールまでの距離のうち、ホールへの角度とスライス角度で定義される方向の小さい方を移動します。 距離は、始点と終点の間の直線またはユークリッド距離として測定されます。 最大距離とスライス角度は、すべての穴のすべてのショットで同じです ゴルファーは常にグリーンで2パット(またはグリーンの端)を常に1回パットします。 例 ホール2については、以下のテストケース5のハッカーを見てみましょう。ハッカーはボールを320ヤード打撃できますが、常に30度スライスします。一般性を失うことなく、ティーボックスが{0,0}にあり、グリーンが{497,0}にあると仮定すると、彼は次のポイントまでショットをヒットし、7番目のショットでグリーンに到達します。 {{0.,0.},{277.128,-160.},{547.543,-131.372},{569.457,7.67088},{502.872,37.2564},{479.159,7.92741},{490.646,-7.85868},{500.078,-4.22987}} この時点で、2つのパットが必要なため、彼のスコアは9になります。したがって、彼の最終スコアは、仮定により8に制限されます。 グラフィカルには、次のようになります。 テストケース すべてのテストケースには、標準の18ホールコースがあります Case#1 {MaxDistance->280,SliceAngle->10,HoleDistances->{181,368,161,416,158,526,377,427,509,148,405,443,510,494,396,388,483,172},GreenDiameters->{26,18,17,23,27,23,21,23,25,21,19,24,21,23,25,24,22,22}} Scores: {4,5,4,5,4,5,5,5,5,4,5,5,5,5,5,5,5,4} Output: 85 Case#2 (same course as Test Case #1, shorter more accurate golfer) {MaxDistance->180,SliceAngle->5,HoleDistances->{181,368,161,416,158,526,377,427,509,148,405,443,510,494,396,388,483,172},GreenDiameters->{26,18,17,23,27,23,21,23,25,21,19,24,21,23,25,24,22,22}} Scores: {4,5,4,5,4,6,5,5,6,4,5,5,6,6,5,5,5,4} Output: 89 Case#3 (Same golfer as test case #1, shorter course) …

5
境界線がn未満の整数三角形
定義 「整数三角形」は、整数座標を持つものです。たとえば、次の三角形は整数三角形です。 (0, 0), (0, 1), (1, 2) with perimeter 1 + sqrt(2) + sqrt(5) ≈ 4.650. 仕事 この課題の目標は、境界がn未満のすべての整数三角形(合同まで)をカウントすることです。 入出力 引数は整数として与えられ、出力は厳密に引数よりも小さい周囲を持つ三角形の数でなければなりません。 例 境界線による最小の整数三角形は、 (0, 0), (0, 1), (1, 0) which has perimeter 2 + sqrt(2) ≈ 3.414 次に小さいものは次のとおりです。 (0, 0), (0, 1), (1, 2) with perimeter 1 + sqrt(2) + …

20
最適正方行列の計算
最適なマトリックス(この課題のかなり狭い範囲のための)が正方行列の対応する行と列から要素を「ジッピング」とそれぞれペアの最大値を取得することによって得られます。 たとえば、次のマトリックスが与えられた場合: 4 5 6 1 7 2 7 3 0 これを転置と組み合わせて、以下を取得できます[[[4,5,6],[4,1,7]],[[1,7,2],[5,7,3]],[[7,3,0],[6,2,0]]]。リストの各ペアを圧縮すると、次のものが得られます[[(4,4),(5,1),(6,7)],[(1,5),(7,7),(2,3)],[(7,6),(3,2),(0,0)]]。最後のステップは、各ペアの最大値を取得して最適なマトリックスを取得することです。 4 5 7 5 7 3 7 3 0 あなたの仕事は、入力として与えられた正方行列の最適な行列を出力することです。マトリックスには整数のみが含まれます。I / Oは、合理的な形式で実行できます。バイト単位の最短コード(UTF-8または言語のカスタムエンコーディング)が勝ちます! テスト [[172,29]、[29,0]]-> [[172,29]、[29,0]] [[4,5,6]、[1,7,2]、[7,3,0]]-> [[4,5,7]、[5,7,3]、[7,3,0] ]] [[1,2,3]、[1,2,3]、[1,2,3]]-> [[1,2,3]、[2,2,3]、[3,3,3] ]] [[4,5、-6]、[0,8、-12]、[-2,2,4]]-> [[4,5、-2]、[5,8,2]、[- 2,2,4]]

3
共産的な部分文字列の正規化
長さKのストリングTがストリングSでK回以上現れるなら、それは潜在的に共産的です。例えば、でそれが現れるため、潜在的に共産主義で2回と長さである2。これらの部分文字列は重複できないことに注意してください。1010/10 共産変換は、この文字列かかり一つでTを、各キャラクタが移動するT iは、のTをする私の発生TにおけるS。したがって、前の例では、共産主義の変換は次のようになり1/0ます。10置換の最初の文字が10最初に10検出され、02回目に検出されます。 共産正規化は、全てのそのようなストリングとる関数であるTとK ≥2及び実行共産変換をそれらに。 アルゴリズムの詳細: 最初に最長の有効な文字列Tで 共産主義の変換を実行します。Tの最初の出現を優先します。 次に、次に長い文字列で共産主義的な変換を実行し、次に次に長い文字列で...などを実行します。 そのような文字列が文字列に存在しなくなるまで繰り返します。 テストケースの「Hello、Hello」の例などの一部の文字列は、2つの異なる方法で解釈できることに注意してください。あなたは使用することができるellためにTが、あなたにも使用することができますllo。この場合、コードはいずれかのオプションを選択できます。示されているテストケースではを使用lloしていますが、異なる有効な出力が得られる場合があります。 あなたの仕事は、共産主義の正規化を実装することです。入力は、印刷可能なASCII文字(0x20〜0x7E、ティルドまでのスペース)のみで構成されます。このタスクを解決するプログラムまたは関数を作成できます。入力は、STDINからの行、文字列/文字配列引数、ARGVからの引数などとして取得できます。 テストケース '123' -> '123' '111' -> '111' '1111' -> '11' 'ABAB' -> 'AB' '111111111' -> '111' 'asdasdasd' -> 'asd' '10/10' -> '1/0' '100/100+100' -> '1/0+0' ' + + ' -> ' + ' 'Hello, hello, dear fellow!' -> …
13 code-golf  string 

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