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

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

14
バイナリバイナリ拡張
通常、係数を2のべき乗で割り当てることにより、数値を2進数に分解します。 01します。各項のまたはです。 25 = 1*16 + 1*8 + 0*4 + 0*2 + 1*1 選択0とは1非常にバイナリではない...です。2の累乗で拡張することにより真のバイナリ拡張を実行しますが、係数は1か、-1代わりに: 25 = 1*16 + 1*8 + 1*4 - 1*2 - 1*1 今、これはバイナリになります。 正の数が与えられた場合、次のことを確認することは簡単です。 すべての奇数には、無限に多くの真のバイナリ展開があります すべての偶数には真のバイナリ展開はありません したがって、真のバイナリ展開を明確に定義するには、展開を最小にする、つまり最短にする必要があります。 正の奇数の整数を指定するnと、最上位の桁から最下位の桁まで(または逆の順序で)、その真のバイナリ展開を返します。 ルール: これはcode-golfであるため、可能な限り短いバイト数でこれを行うことを目指す必要があります。ビルトインは許可されています。 係数を表してリストできる出力であればどれでも許容されます:配列、セパレータ付きの係数の文字列など... 標準のゴルフ抜け穴が適用されます。 プログラムは、言語の標準整数サイズ内の値で動作するはずです。 テストケース 25 -> [1,1,1,-1,-1] 47 -> [1,1,-1,1,1,1] 1 -> [1] 3 -> [1,1] 1234567 …

3
古いコードレス電話
友達に電話する必要がありますが、コードレス電話のボタンが正しく機能しません。押すことができるボタンは、[上へ]、[下へ]、[通話]のみです。[上へ]および[下へ]を使用して最近の通話をナビゲートし、[通話]を使用して選択した名前を呼び出すことができます。私の電話にはN最近の通話を保持するリストがあり、私が呼び出す必要があるすべての友達がこのリストに含まれていることを知っています。 仕事: 番号Nと名前のリストが表示されますL。 N 私の電話が覚えている最近の通話の数です。 L 私が呼ぶ必要がある順序で名前を持っています 最近の通話リストを最適に配置するために必要なボタンを押す回数を出力する必要があります。 例: ->入力: アンナ、ボブ、そしてアンナを再び呼び出します。サイズ5の最近の通話リスト。 5 Anna Bob Anna ->出力: 可能な最適配置: Anna, Foo, Bar, Foobar, Bob 5 # Key presses: [Call] Anna, [Up] + [Call] Bob, [Down] + [Call] Anna その他のテストケース: Input: 5, Anna, Bob, Carl Output: 5 Input: 5, Anna, Bob, Carl, Anna …

30
コードの長さと同じ桁数のpiを持つ出力
あなたの課題は、あなたのコードの長さxであるpiの桁を印刷xすることです。 例: Source code (length) -> output foo! (4) 3.141 foobar (6) 3.14159 kinda long (10) 3.141592653 +++++ (5) 3.1415 123456789 (9) 3.14159265 を使用して、印刷する必要がある桁数を決定できます。小数点はpiの桁として数えられないことに注意してください。したがって、長さ3のコードは長さ4の出力を持っている必要があります。floor(π/10 * 10code_length) / 10code_length - 13.14 ルール: コードの長さは3文字より長くなければなりません。 標準の抜け穴は使用できません。 標準で許可されている出力方法を使用できます。 コード長を決定するためにソースを読み取ることはできません。 組み込みのpi定数は使用できません。 Piは完全に正確で、近似されていない必要があります。 出力には小数点が必要です。戻り値による出力を選択した場合は、浮動小数点整数を返す必要があります。 この課題の目標は、ソリューションの最短の言語ではなく、各言語で最短のソリューションを見つけることです。ソリューションが別の方法を使用している限り、短いソリューションが同じ言語で投稿されている場合でも、ソリューションを言語で投稿することを恐れないでください。

2
ワードチェーンリローデッド
これは、「単語の連鎖を再生する」と「単語の長い連鎖を構築する」の変形です。 入力は、[az]の文字で構成された2文字以上の一意の単語の空でないリストです。可能な限り長いチェーンの長さを出力する必要があります。後続の各単語は、前の単語の最後の文字で始まります。リストの任意の単語から始めることができます。 別のひねりは、あなたがリスト上の任意の単一の単語を繰り返すことを許可されていることです。ただし、2ワードブロックを繰り返すことはできません。たとえば、2ワードのブロック()を繰り返したため、 cat->tac->catは許可されていますが、許可されていcat->tac->cat->tacませんcat->tac。また、同じ単語を2回続けて使用することはできません(例:)eye->eye。 例: cat dog tree egg => 3(猫->木->卵) new men ten whim => 5(ten-> new-> whim-> men-> new) truth fret heart his => 5(フレット->真実->ハート->真実->彼) we were stew early yew easy => 9(シチュー->あった->早い->イチ->いた->イージー->ユー->ウィー>>イージー) tac cat tac cot tac can => 6(tac-> cat-> tac-> cot-> tac-> can) (私がこれらの例のいずれかで間違いを犯したかどうか、またはあなたがもっと思いついた場合はお知らせください。)

4
ボックスを切り替えます!
ボックス化される可能性のある文字列を指定して、ボックスを切り替えます。これは、テストケースと説明で明らかになります。 入出力 入力フォーマット 入力は、CR、LF、またはCRLFで区切られた単一の文字列、または文字列のリストです。入力フォーマットはあなた次第です。 出力フォーマット 出力形式は入力と同じ形式でなければなりません。 説明+例 例としてボックス化された文字列を見てみましょう: +-------------+ |Hello, World!| +-------------+ ボックスを切り替えるには、最初と最後の行と最初と最後の列を削除します。(最後の行の終わりにオプションの末尾の改行がある)最後の行の後に末尾の空白がなく、どの行にも末尾の空白がなく、改行を数えないと想定することができます。 これは次のようになります。 Hello, World! 反対に 文字列がボックスにない場合は、ボックスを追加します。これはかなり簡単です。プリペンド+---...---+を持つ独自のライン上のkダッシュkライン毎に、次に最も長い直線の長さであり、そして、最も長い直線の長さと一致した後プリペンドとパイプ文字を追加する空白末尾とパッドを("|")。最後に、+---...---+最初の行と同じ設定を含む行を追加します。 例えば: Hello, World! になる: +-------------+ |Hello, World!| +-------------+ 入力のどの行にも末尾の空白がないと想定するかもしれません。 ボックスを囲む文字列の別の例: Hello, World! なる +----------+ |Hello, | | World!| +----------+ まだボックス化する必要があるものの例: +--------+ | | --------+ になる: +----------+ |+--------+| || || | --------+| +----------+ …

22
シーケンスを入れ替える
あなたの仕事は、OEISシーケンスを出力し、シーケンス名をコードに含むコードを記述することです(A______)。簡単でしょう?これが問題です。コード内のシーケンスの名前が2番目のシーケンスの名前に変更された場合、コードは2番目の別個のシーケンスも出力する必要があります。 入出力 コードは、標準入力メソッドを介してnを取り、OEISページで提供されたインデックスによってインデックス付けされたシーケンスのn番目の項を出力する関数または完全なプログラムにすることができます。 そのシーケンスのOEIS bファイルで提供されるすべての値をサポートする必要があります。bファイルにない数値はサポートする必要はありません。 得点 これはコードゴルフです。スコアはコードのバイト数で、バイト数が少ないほど優れています。 例 これは、A000217とA000290で機能するHaskellの例です。 f x|last"A000217"=='0'=x^2|1>0=sum[1..x] オンラインでお試しください!

4
異なる部分文字列の最大数
説明文 長さnとアルファベットサイズを指定するk>0と、プログラムは、最大数の一意の部分文字列を持つパラメーターを持つ文字列の数を決定する必要があります。の場合k=2、これはOEIS A134457を生成します。 例 例えば、2210部分文字列を持っている 、2、22、221、2210、2、21、210、1、10、と0、しかし11の合計のために、2それが唯一の10個のユニークな部分文字列を持っているので、二回表示されます。 これは、3つの異なるシンボルを含む長さ4文字列のできるだけ多くが、それには36 tieing列の合計35個の他の文字列との連携0012、2101および0121。したがって、n=4およびのk=3場合、プログラムは36を出力するはずです。 テストケース n k output 0 5 1 1 3 3 5 1 1 9 2 40 2 3 6 5 5 120

5
ASCII 2Dゲームマップ
問題 入力所与のa任意の入力形式で文字のグリッドであれば出力の各「ブロック」1つだけの要素を有するものです。 そして入力bbは入力と同じサイズの数値のグリッドですa。 道路には2つのタイプがあります。1はでマークされた石の道路を@表し、2はでマークされた未舗装の道路を表します# @道路は、ブロックの中心と道路側はグリッドセルの境界に拡張されることが、隣接している場合、サイズ6x6のです #道路は、ブロックの中央に道路側はグリッドセルの境界に拡張されることが、隣接している場合、サイズ4×4であります 出力グリッドは、入力中にASCII文字の8×8の行数でオフセットaし、入力から「道路」オーバーレイbなどを 入力 a=[[a,b,a],[b,a,b],[a,b,a]] b=[[1,1,1],[2,0,1],[2,0,0]] 出力: ステップ1:グリッド(入力の8x8表現a) aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa ステップ2:で表される道路でオーバーレイするb: aaaaaaaabbbbbbbbaaaaaaaa a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@abbbbbbbba@@@@@@a bb####bbaaaaaaaab@@@@@@b bb####bbaaaaaaaab@@@@@@b bb####bbaaaaaaaab@@@@@@b bb####bbaaaaaaaab@@@@@@b bb####bbaaaaaaaab@@@@@@b …

5
Goldbachパーティションの増加
ゴールドバッハの予想は次のように述べている。 2より大きいすべての偶数は、2つの素数の合計です。 私たちは、数のゴールドバッハのパーティションを検討するn個に追加する2つの素数のペアであることを、N。ゴールドバッハのパーティションが増加していることを懸念しています。数値のゴールドバッハパーティションのサイズは、その数値のすべてのパーティションの最小素数のサイズで測定します。このサイズがすべての小さい偶数のサイズよりも大きい場合、数値はパーティションの増加です。 仕事 n> 2の偶数の整数を指定して、nがGoldbachパーティションの増加であるかどうかを判別し、2つの一意の値を出力します。 これはcode-golfなので、ソースコードのバイト数を最小限に抑えることを目指してください。 OEIS A025018

3
すべての整数mod qを生成する数を見つける
整数を法を検討qどこqジェネレータは任意の整数であり、素数である1 < x < qようにx^1, x^2, ..., x^(q-1)、すべてのカバーq-1の間の整数の1とq-1。たとえば、7を法とする整数(これをと表記Z_7)について考えてみます。次に3, 3^2 mod 7 = 2, 3^3 = 27 mod 7 = 6, 3^4 = 81 mod 7 = 4, 3^5 = 243 mod 7 = 5, 3^6 = 729 mod 7 = 1、すべての値を3, 2, 6, 4, 5, 1カバーし、1..6必要に応じてすべての整数をカバーします。 タスクは、入力nを受け取り、のジェネレータを出力するコードを記述することですZ_n。もちろん、これを行う組み込み関数やライブラリは使用できません。 コードのパフォーマンスに対する唯一の制限は、で完全にテストする必要があることですn = 4257452468389。 …

15
私の名前は何ですか?
PPCGユーザーIDを指定して、そのユーザーの現在のユーザー名を出力します。 例 Input -> Output 61563 -> MD XF 2 -> Geoff Dalgas 12012 -> Dennis foo -> -3 -> ルール 入力/出力は、許可されている任意の方法で取得できます。 出力は、適切な大文字とスペースを含む完全なユーザー名でなければなりません。 入力が有効なUserIDではない場合、またはユーザーが存在しない場合、プログラムは何も出力しないか、エラー出力を出力します。 プログラムは、このチャレンジ後に作成されたユーザーを含め、有効なユーザーであれば誰でも機能する必要があります。 プログラムはコミュニティユーザーのために機能する必要はありません。 プログラムは、削除されたユーザーに対して機能する必要はありません。 URL短縮文字は許可されていません。 得点 各言語で最短のコードが優先されます。

11
順列子を作成する
この課題では、リストを入力として受け取り、そのリストの順列を返す関数(関数は完全なプログラムである場合があります)を作成します。関数は次の要件に従う必要があります。 それは決定論的でなければなりません。 関数自体を可変回数で構成すると、任意の順列のリストを取得できるはずです。 これはコードゴルフの質問なので、回答はバイト単位でスコアリングされ、バイト数が少ないほど優れています。 さらなるルール あなたは、リストの任意のタイプ、(かかる場合があります[Integer]、[String]、[[Integer]]それ限り)を 空でないことができます 少なくとも16の可能な値を持つ個別のオブジェクトを含めることができます。(Haskellは使用できず[()]、関数はであると主張できませんid) 重複オブジェクトを含めることができます(セットなし) プログラムや関数を書くことはできますが、標準入出力に準拠する必要があります。

6
2つの弦の十字形の印刷
同じ長さであることが保証された2つの文字列のセットが与えられた場合、それらの十字を印刷します。 十字クロス次のように2つの文字列が得られます。 2番目の文字列の2番目の文字を生成し、次に最初の文字列の最初の文字を生成します。 2番目の文字列の最初の文字を生成し、次に最初の文字列の2番目の文字を生成します。 各文字列の最初の文字を破棄します。 文字列に複数の文字が含まれている場合は、手順1に戻ります。 たとえば、2つの文字列が Truck Tower クリスクロスはあります oTTrwroueuwcrcek 次の図に示すように。 各色は十字交差の異なる反復を表します。数字は、対応する文字のインデックスを出力に示します。

18
リストを最後の数に減らします
入力 数値のリスト(配列)、またはそれが簡単になる場合は数値文字列。リストには常に少なくとも2つの要素があり、すべての要素は自然数(ゼロより大きい整数)であると想定できます。 アウトプット 単一の数値、または数値ストリング。 問題 アイデアは、リストのその現在の段階で最大数の最後の桁を削除することによって数のリストを減らし、最終的に1つの数で終わることです(複数のインスタンスがある場合でも、1つの数のみが返されます) 例 [123,343,121,76,465,786] -- The last digit in 786 is dropped, so it becomes 78 [123,343,121,76,465,78] -- New largest number is 465, so the 5 is dropped, making it 46 [123,343,121,76,46,78] -- Repeat until left with one number [123,34,121,76,46,78] [12,34,121,76,46,78] [12,34,12,76,46,78] [12,34,12,76,46,7] [12,34,12,7,46,7] [12,34,12,7,4,7] [12,3,12,7,4,7] …

5
1と0の正しい組み合わせにテキストを送信します
私は最近、運転中にテキストメッセージを送信するTextpertである曲にリストしました。この曲の特定の1行がこの課題に影響を与えました。 私は写真にテキストを送るほど低く身をかがめることはありません/その代わりに私は1と0の正しい組み合わせにテキストを送ります これは明らかに、これを頭の中で行うことはほとんど不可能であるため、同じことを行うようにプログラムをコーディングすることにより、世界中のtextpertを支援する必要があります。 あなたの仕事は、500x500ピクセルサイズの画像ファイルの名前を取り、ファイルをバイナリとして出力することです。言語がサポートしている場合は、入力として画像を使用することもできます。 拡張子付きの画像ファイルを使用できます .jpg .png .gif .bmp .svg 私の意味が理解できない人のために、画像をバイナリに変換する方法を示すことができます。 ステップ1 ファイルの最初のピクセルを取り、RGB値をR、G、Bの3つの10進数として取得します。たとえば、最初のピクセルが255,0,0(赤)であるとします。 ステップ2 各数値を8ビットのバイナリ表現に変換し、単一の24ビットの数値に連結します。例では、これは111111110000000000000000 ステップ3 この24ビットの数値を最終出力に追加します。したがって、最終的な出力があるべき6000000長い数字と完全で構成すべきである1と0 これはコードゴルフなので、最短のコードが勝ちます!

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