プログラミングパズルとコードゴルフ

プログラミング愛好家やコードゴルファーのためのQ&A

30
三角形の依存関係
三角形の数の合計である数でありn、1から自然数n。例えば、1 + 2 + 3 + 4 = 10その10三角形の数です。 0 < n <= 10000入力として正の整数()を指定すると(整数または文字列として取得できます)、入力に追加して別の三角数を作成できる最小の三角数を返します。 たとえば、inputが与えられた26場合、10結果はになり36、これも三角数です。別の三角形番号を作成するために10追加できる三角形番号より小さい三角形番号はないため、この場合は正しい結果になります。2610 0 は三角数です。したがって、入力自体が三角数の場合、出力は 0 テストケース ケースは次の形式で提供されます input -> output (resulting triangular number) 0 -> 0 (0) 4 -> 6 (10) 5 -> 1 (6) 7 -> 3 (10) 8 -> 28 (36) 10 -> 0 (10) …

11
HE COMETH NOT-ザルゴの挑戦
文字列が与えられた場合、zalgoがあればそれを取り除くプログラムまたは関数を作成します。 ザルゴ この投稿では、zalgoは次のUnicode範囲の任意の文字として定義されます。 ダイアクリティカルマークの組み合わせ(0300–036F) 拡張された発音区別符号の組み合わせ(1AB0–1AFF) ダイアクリティカルマークの補足の組み合わせ(1DC0–1DFF) 記号の発音区別符号の組み合わせ(20D0〜20FF) ハーフマークの組み合わせ(FE20–FE2F) https://en.wikipedia.org/wiki/Combining_character#Unicode_ranges 入力 コマンドライン引数、STDIN、または言語でサポートされている他の標準入力方法を介して渡すことができます zalgoまたはその他の非ASCII文字を含む場合と含まない場合がある文字列になります 出力 出力は、zalgoを含まない文字列でなければなりません。 テストケース Input -> Output HE̸͚ͦ ̓C͉Õ̗͕M͙͌͆E̋̃ͥT̠͕͌H̤̯͛ -> HE COMETH C͉̊od̓e͔͝ ̆G̀̑ͧo͜l͔̯͊f͉͍ -> Code Golf aaaͧͩa͕̰ȃ̘͕aa̚͢͝aa͗̿͢ -> aaaaaaaaa ññ -> ñn ⚡⃤ -> ⚡ 得点 これはcode-golfであるため、バイト単位の最短回答が優先されます。

30
それはリンチベル番号ですか?
入力として正の整数(決して0を含まない)が与えられます。あなたの仕事は、それがリンチベル番号かどうかをチェックすることです。 すべての数字が一意であり、数字が各数字で割り切れる場合、数字はリンチベルの数字です。 実際、リンチベルの数は実際には548個しかないため、ハードコーディングは可能ですが、ほぼ確実に長くなります。 126はLynch-Bell番号です。これは、その数字がすべて一意であり、126が1、2、および6で割り切れるからです。 真実で偽の値を出力できます。 例: 7 -> truthy 126 -> truthy 54 -> falsy 55 -> falsy 3915 -> truthy これはOEIS A115569です。

30
リスト内のインデックスの数係数のリスト
簡単なもの: 入力として正の整数のリストを取得し、リスト内の1ベースのインデックスを法とする数値を出力します。 入力整数がの{a, b, c, d, e, f, g}場合、出力は{a%1, b%2, c%3, d%4, e%5, f%6, g%7}どこ%にモジュラス演算子があるはずです。 テストケース: 10 9 8 7 6 5 4 3 2 1 0 1 2 3 1 5 4 3 2 1 8 18 6 11 14 3 15 10 6 19 12 3 7 5 …
25 code-golf  math  number 

9
ナンバーロッカー!
正の整数<100(1〜99、1と99を含む)を指定すると、その数のロッカーが出力されます。 ロッカーは次のように定義されます。 +----+ | | | | | | | nn | +----+ ここnnで、10を基数とするロッカー番号です。1桁の数字がある場合、その前に0を付けて表します。たとえば、ロッカー番号2は番号を表示します02。 ロッカーは積み重ねることができますが、最高2つまでです。 +----+ | | | | | | | on | +----+ | | | | | | | en | +----+ onは、奇数、偶数を示しenます。ロッカーは隣同士に置くこともできます。 +----+----+ | | | | | | | | | | 01 | …

11
パーフェクトパリンドローム
あなたの仕事は、文字列がどれだけ完璧な回文であるかを決定することです。あなたの典型的な回文(例12321)は完全な回文です。その完全性は1です。 文字列の完全性を判断するために、各セクションが回文である場所に分割できるセクション数を確認します。withなどのあいまいさが存在する場合、or またはorにaaaa分割できるため、最短セットがオーバーライドされ、最短セットの長さであるスコア1が与えられます。[aa, aa][aaaa][a, aaa][aaa, a]aaaa したがって、空ではない入力を1つ受け取り、それがどれだけ完璧かを設定するプログラムまたは関数を作成する必要があります(これは、セット内の各要素が回文である場所に分割できる最短セットの長さです)。 例: 1111 -> 1 [1111] abcb -> 2 [a, bcb] abcbd -> 3 [a, bcb, d] abcde -> 5 [a, b, c, d, e] 66a -> 2 [66, a] abcba-> 1 [abcba] x -> 1 [x] ababacab -> 2 [aba, bacab] bacababa -> …

30
Transpile;#あなたの言語に
関連する:;#インタープリターを作成し、;#コードを生成する ;# -旋風ガイド これは、2つのコマンドを持つ単純な言語です。その唯一のデータ構造は、0に初期化されるアキュムレーターです。 ; アキュムレーターをインクリメントします #127を法とする累算器の値を計算し、対応するASCII文字を出力します。次に、アキュムレーターを0にリセットします。 ソースコードには追加の文字(印刷可能なASCII +空白)が含まれている場合がありますが、これらはコメントとして扱われ、プログラムの実行には影響しません。 チャレンジ ほとんどのコンピューターには;#プリインストールされていないため、;#コードを別の言語に変換できるツールがあると非常に便利です。この課題では、これを達成するためのプログラムを作成する必要があります。 入力 ;#引数またはSTDINを介して取得されたいくつかのソースコード。このソースコードには、;または以外の(コメント)文字が含まれている場合があります#。 出力 提出と同じ言語の;#コード。実行すると、元のコードと同じ文字列を出力/返します。この結果のコードは、言語にとってより便利な場合、ターゲット文字列の後に末尾の改行を出力する場合があります。 ノート 注意すべきことの1つは、バックスラッシュを出力するコードや引用符を出力するコードなどのエスケープシーケンスです。また;#、言語のキーワードやコマンドのように見えるものを含む可能性のあるコードにも注意してください。 追加の制限 すべてのプログラムを終了する必要があります(通常はこれをデフォルトと見なしますが、誰かがそれについて尋ねたので、ここで説明します)。 例 input: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;# output (python): print(";#") input: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;# output (element): \'`
25 code-golf 

30
カスタムフィボナッチシーケンスのゴルフ
フィボナッチ数列は、この辺りではかなりよく知られています。ちなみに、独自のタグもあります。しかし、そのすべてのために、私たちは私たちのルーツに固執したいのです1, 1, ...(またはそれ0, 1, ...ですか?私たちは決して知らないかもしれません...)。このチャレンジでは、ルールは同じですがn、フィボナッチ数列のth項目を取得する代わりnに、フィボナッチ風シーケンスのth項目を取得しx, y, ...ます。 入力 好きな順番で3つの整数。n出力のシーケンス内の用語のインデックス(0または1インデックス)です。xそしてy、あなたの現在のプログラムの実行のフィボナッチ数列の最初の2つの項目です。 出力 nで始まるフィボナッチ数列では番目の用語x、y。 テストケース (0インデックス) n x y out 5 0 0 0 6 0 1 8 6 1 1 13 2 5 5 10 10 2 2 178 3 3 10 23 13 2308 4261 1325165 0 0 1 0 1 …

12
パリンドローム残留物
今日、これを書いているように、3月31日です。米国では、これは3/31です。私は331挑戦を思いつくための数字として遊んでいて、その残基(モジュロの小さな数字)は回文的であることがわかりました。331%2=1, 331%3=1, 331%4=3, 331%5=1, 331%6=1(11311)。 ここでの課題は、整数を指定したときに、モジュロをとったときにパリンドロームの残差を持つn > 2最初のn正の数を出力すること[2,n]です。 たとえば、入力の7場合、出力はである必要があります1, 42, 43, 140, 182, 420, 421。その理由を説明するチャートは次のとおりです。 mod num | 2 3 4 5 6 7 ----------------- 1 | 1 1 1 1 1 1 42 | 0 0 2 2 0 0 43 | 1 1 3 3 1 1 140 …

21
ASCIIの宝石をいくつか彫ってください!
3月13日は、このチャレンジのテーマであるナショナルジュエルデーとして認められています。だから、整数与えられた0よりも大きい場合、ASCIIの宝石を作成します。例えば:nn n = 1 n = 2 n = 3 ______ ____ / \ __ / \ \ / / \ \ / \ / \ / \ / \ / \/ \/ \/ 底は宝石の一番下のものとして定義され\/ます。残りはトップです。上記の例の場合n = 1: Bottom: \ / Top: __ \/ / \ ご覧のように、底は、宝石の底から最大の線が入った、間にスペースがあるn + 1層で構成され\/てい(1 * lines …

16
おおよそのブラン定数
ブルンの定数は、の逆数の和に値である双子プライムペア(1/pと1/(p+2)場所pとp+2の両方プライムある)収束。およそ1.902160583104です。 正の整数を指定するとN、ペアの両方の素数が未満である双子素数ペアの逆数を合計することによりブルン定数を近似し、近似Nを出力します。 ルール N 言語の表現可能な範囲内の正の整数になります。 出力は、浮動小数点演算の不正確さによる潜在的な問題を無視して、言語の浮動小数点実装の制限内で、真の値に対して可能な限り正確でなければなりません。ご使用の言語が任意精度の演算に対応している場合、少なくともIEEE 754の倍精度演算と同じ精度でなければなりません。 あるいは、一貫した明確な形式で正確な端数を出力できます。 複数のツインプライムペア(例えば中プライム表示された場合は5、両方の一部(3, 5)と(5, 7))、その逆数寄与合計にそれぞれの時間。 テストケース 2 -> 0 6 -> 0.5333333333333333 10 -> 0.8761904761904762 13 -> 0.8761904761904762 100 -> 1.3309903657190867 620 -> 1.4999706034568274 100000 -> 1.67279958482774

18
黄色の木で分岐した2つの道路(パート2)
これはシリーズの2番目で、3番目は黄色の木で分岐した2つの道路です(パート3) これは、私の以前の課題であった黄色の木に分かれた2つの道路(パート1)に基づいています。かなり好評でしたが、かなり些細なものでした(Javaの52バイトの回答です!) インスピレーション この課題は、ロバートフロストの有名な詩「The Road Not Taken」に触発されたものです。 2本の道が黄色い木に分かれていて、 残念ながら私は両方を旅行することはできず 、一人の旅行者であり、長く立ち、そしてできる限り 1本を見下ろした 。 ... 2段落トリミング... 私はこれを どこか年齢と年齢のためにため息をつくことで伝えます 。2本の道が森の中に分かれていて、 私は旅の少ない方を連れて行きました 。 最後から2番目の行に注目してくださいI took the one less traveled by,。あなたの目標は、文字列入力で最も移動の少ない道路を見つけることです。互いに異なる2つの値のいずれかを出力する必要があります。この値は、どの道を曲がって道路の移動量を減らすかを示します。道路の分岐点(六角形の軌跡が数字に変わる)が交差点にあります。そこから、数字で構成される2つのパスがあります。数字の合計が最小のパスは、撮影されていない道路になります。通行されていない道路のパスは大きいが、パスの合計は小さいことに注意してください。以下は、使用されていないパスに対して「左」または「右」を出力するプログラムの例/テストケースです。 1 2 1 2 1 2 # # # left (3 < 6) 1 2 2 2 1 1 # # # left (4 …

12
中央の繰り返しなしで、繰り返しなしで元の文字列を見つけます
文を入力しているときに気が散ってしまい、同じ単語を2回、単語を2回続けて入力してしまうことがあります。 確かめる 他の人がこれに悩まされないするために、あなたの仕事はこの問題を解決するプログラムを書くことです! 仕事 入力文字列を指定します(言語にとって重要な場合は、改行を含まないASCIIのみの入力を想定できます。) str、中間に2回連続して発生する部分文字列が含まれ、このインスタンスを1つ持つ文字列を返します部分文字列が削除されました。 複数の可能性がある場合は、可能な限り最短の回答を返します(つまり、連続する最長の繰り返し部分文字列を選択して削除します)。 複数の同じ長さの連続する繰り返し部分文字列の場合、最初の(つまり、文字列を前後に読んでいるときに最初に現れる)部分文字列を削除します。 入力が正しい(つまり、連続した繰り返し部分文字列が常に含まれている)と想定することもできます。 例 入力:hello hello world->出力:hello world。 入力:foofoo->出力:foo。(そのため、はい、文字列は繰り返し部分で2回だけ構成されます)。 入力:aaaaa->出力:aaa、最も長い繰り返し連続部分文字列がここにあるためaa。 入力:Slartibartfast->これは有効な入力ではありません。連続する繰り返し部分文字列が含まれていないため、このケースを処理する必要はありません。 入力:the few the bar->これは別の無効な入力です。これは、繰り返し部分が元の部分の直後に続く必要があるためです。この場合、theおよびtheそれらの間の何かで区切られているため、この入力は無効です。 入力:ababcbc->出力:abcbc。2つの可能な最長の連続した繰り返し部分文字列があるabとbc。としてab以前の文字列で発生した、これは正解です。 入力:Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo buffalo。出力:Buffalo buffalo buffalo buffalo Buffalo buffalo。(実行される置換では、大文字と小文字が区別されます)。 入力:Sometimes it happens that while typing a sentence, I am distracted and I end up …

30
解連鎖フィボナッチ
(ASCIIの95文字に触発され... 95映画の引用) チャレンジ 入力が与えられたらn、nth フィボナッチ数を出力します。どちらか0または1インデックスを使用できます。提出する際にどちらを指定してください。簡単ですね 問題は、直前の回答の文字セットを取得し、そこから2つの文字を削除して、別の文字を追加する必要があることです。別のキャラクターは 直前の回答の文字セットからのものではない (印刷可能なASCII、スペース、改行、水平タブ)のセットから したがって、文字セットの合計サイズは、直前の回答のセットよりも正確に 1つ小さくなります。 最初の答え 最初の提出には、2文字が削除されたサブセット(すべての印刷可能なASCII、スペース、改行、および水平タブ)が含まれている必要があります。それ以降のすべての送信では、回答をこの元のASCIIのみの形式に制限する必要があります(Unicodeまたは拡張ASCII文字を追加できないことを意味します...申し訳ありませんが、Jelly、APLなど)。 例と説明 最初の回答がCにあり、(ほとんどすべての印刷可能なASCII、改行、および水平タブ)を含み、その文字セットからとを省略している%と^します。2回目の送信では、前の(ほとんどすべての印刷可能なASCII、改行、および水平タブ)文字セットから2文字を削除し、%またはのいずれかに追加する必要があり^ます。おそらく、改行を省略した1行のPowerShell回答でしょう。等々。 前の回答のprint(){}!*+文字セット(12文字)が含まれていた場合、提出にはprint(){}!(10文字)と1文字追加できます。print(){!+(10文字)と1つの追加文字などが含まれます。 前の回答が持っていた場合はprint(){}!*+、その文字セット(12文字)として、あなたの投稿はできません持っているprint()と&するので、その文字セットとして(8文字)12 - 8 > 1。 前の回答が持っていた場合はprint(){}!*+、その文字セット(12文字)として、あなたの投稿はできません持っているprint(){}!(10文字)に加えて、追加の文字を*それが11文字だにもかかわらず、以来、その文字セットとして*前のセットに含まれています。 あなたのキャラクターセットのすべてのキャラクターがあなたの投稿に役立つ何かをしなければならないわけではありません。たとえば、前の回答のprint(){}!*+文字セットがあり!、フィボナッチ数列を計算し#てコメントを開始する組み込み言語が言語にある場合、提出は次のようになります。!#print(){}有効あり続けます。 キャラクターセットの同じキャラクターを複数回使用できます。たとえば、文字セットがであった!*#_とすると、答えは!!!**#**#_!!受け入れられ、受け入れられます。 コードに加えて(説明もいい!)、キャラクターセットを明示的にリストして、今後の送信で使いやすくするようにしてください。 勝ち チャレンジの勝者は、2番目を投稿した人になります番目に新しい投稿を投稿した人(つまり、チェーンを破ったため、最後に投稿した人ではありません)です。 最終規則 通常の回答連鎖規則が適用されます。 同じ人が連続して2回投稿することはできません 回答が無効とみなされた場合(たとえば、禁じられた文字を使用したか、正しく計算されない場合)、削除する必要があります(そして、それから連鎖する後続の回答も) 「同時に」投稿する2人のユーザーは、以前の投稿を有効にする必要があります。 同じ言語を続けて2回投稿することはできません。このルールの目的上、同じファミリーの言語(Python 2とPython 3など)は「同じ言語」としてカウントされます。 最後に: この投稿は、回答が適切な順序になるように「最も古い」で並べ替えると最も効果的に機能します。 Kyle Gullionは、ここでPython でコードチェッカーを構築し、あなたが行方不明か、間違った文字を使用しているかどうかを確認します。

24
単一の数字を上げる
前書き 数値のリストの末尾の最大値、つまり空でない各サフィックスの最大値を計算するとします。それを行う1つの方法は、1つの番号を繰り返し選択し、それが不可能になるまで、その番号の後に発生するより大きな番号に置き換えることです。この課題では、タスクはこのアルゴリズムの1つのステップを実行することです。 タスク 入力は整数Lのリストで、空の場合があります。出力はリストLになります。リストLでは、正確に1つの数値L iが別のL jに置き換えられています。ここで、L i <L jおよびi <jです。 言い換えると、1つの数値を、その後に発生するより大きな数値に置き換える必要があります。 あなたは選ぶことができますIおよびjは、有効なすべてのペアの間で自由に、そして選択は非決定的ことができます。 そのようなiとjが存在しない場合(つまり、Lが増加しない場合)、出力はLのままになります。 例 入力L = [3、1、4、-1、2]を考えます。可能な操作は、3を4に、1を4に、1を2に、または-1を2に置き換えることです。したがって、可能な出力は次のとおりです。 [ 3 , 1 , 4 , -1 , 2 ] ------------------------------ [( 4), 1 ,( 4), -1 , 2 ] [ 3 ,( 4),( 4), -1 , 2 ] [ 3 ,( …

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