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

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

3
TikZでのゴルフのヒント
TikZは、Latexドキュメントに正確な画像を描画するために使用されるLatexパッケージです。それは、大規模な仕様と、グラフィカル出力スタイルの質問に役立つかもしれない機能のボートロードを持っています。 TikZでゴルフをするためのヒントは何ですか?いつものように、ヒントはTikZに固有のものでなければならず(たとえば、「コメントの削除」は答えではありません)、回答ごとに1つのヒントに固執する必要があります。
13 code-golf  tips 

3
隣接する数の最高の素因数
この課題を順番に説明するのが最も簡単だと思います。入力番号Nから始めて、次のことを行います。 最高の素因数を見つける 上記と下の数字をチェックNを、最高の素因数が高いかどうかを確認(すなわち最高の素因数N-1および/またはN + 1が倍以上であるN。 より高いチェックし続け、および/または隣接する数字低下Nを最高要因が増加される方向での((N-2、N-3 ...)及び/又は(N + 2、N + 3···)などオン) どちらの方向にも、すでに見つけたものよりも高い素因数がなくなると、遭遇した最高の素因数を停止して出力します。 例を見てみましょう: 245素因数があり5, 7, 7ます。その隣人は次のとおりです。 244 -> 2, 2, 61 245 -> 5, 7, 7 246 -> 2, 3, 41 最高の素因数は両方向に増加しているため、次の隣接要素を調べる必要があります。 243 -> 3, 3, 3, 3, 3 244 -> 2, 2, 2, 61 245 -> 5, 7, 7 …
13 code-golf  math  primes 

4
バランスの取れたベース間で変換します!
バランスの取れたベース: バランスの取れた基数は通常、通常の基数と同じですが、数字が正または負になる場合がありますが、通常の基数では数字のみが正になる場合があります。 ここで上から、塩基のバランスのとれた塩基は、bとして表すことができるbalbので、バランスのとれたベース4 = - bal4。 このチャレンジの定義では、ベースのバランスの取れたベースの桁の範囲bはから-(k - 1)でありb - k、ここで k = ceil(b/2) さまざまなバランスの取れた基数の桁の範囲の例: bal10: k = ceil(10/2) = 5 range = -(5 - 1) to 10 - 5 = -4 to 5 = -4, -3, -2, -1, 0, 1, 2, 3, 4, 5 bal5: k = ceil(5/2) = …

4
負の空間グラフ
仕事 正の整数が与えられ、その数のノードで「自己補完グラフ」を出力する必要があります。自己補完グラフが何であるかわからない場合、ウィキペディアの記事はあまり役に立ちませんので、以下に技術的説明と非技術的説明の2つの説明があります。 非技術的な グラフは、線で接続されたノードのセットです。ポイントの各ペアは、1本の線で接続することも、まったく接続しないこともできます。グラフの「補数」は、グラフを取得し、接続されていないすべてのノードを接続し、接続されているすべてのノードを切断した結果です。 自己補完グラフは、その補完を元の形状に再配置できるグラフです。以下は、自己補完グラフの例とその方法のデモです。 以下は、5つのノードを持つグラフです。 接続できるすべての場所を赤い点線で強調表示します。 ここで、赤と黒のエッジを交換して、グラフの補数を見つけます。 これは元のグラフとは異なりますが、ノードをそのように移動すると(各ステップで2つのノードが入れ替わります): 元のグラフを取得します!グラフとその補数は同じグラフです テクニカル 自己補完グラフは、その補完と同型のグラフです。 仕様書 最適な方法で正の整数を受け取ります。そして、適切と思われる方法でグラフを出力します。これには、隣接行列フォーム、隣接リストフォーム、そしてもちろん写真が含まれますが、これらに限定されません。出力されるグラフは、それ自身の補数であり、整数入力と同じ数のノードを持たなければなりません。そのようなグラフが存在しない場合は、偽の値を出力する必要があります。 これはコードゴルフであり、バイト数を最小限に抑えることを目指してください。 テストケース 以下は、いくつかのnの可能な出力の写真です 4 5 9

16
パリンドロームであるストリング順列の数
入力は、小さな英語の文字で構成される文字列になります。 あなたの仕事は、パリンドロームである元の文字列の異なる順列の数を決定することです。 入力文字列は最大100文字です。長い文字列の場合、結果は非常に大きくなる可能性があるため、出力は666013を法とする順列の数になります。 例えば、 cababaa -> 3 可能な順列は次のとおりです。 aabcbaa abacaba baacaab これはcode-golfなので、最短の答えが勝ちです!

2
タグを閉じてください!
これは、以前に削除された同じ名前の私のチャレンジに基づいています 前書き 入力にXMLのような1タグがすべて適切に開閉され、正しい順序であるかどうかに基づいて、真偽値を返すプログラムを作成する必要があります。入力として次のことを考慮してください。 <Apple> タグが正しく閉じられていないため、これは偽の値を返します。この: <Apple></Apple> 反対に、正しく閉じられているため、真理値を返します。また、ネストされたタグをチェックして、正しい位置にあることを確認する必要があります。たとえば、これを入力として使用します。 <mango><Apple></mango></Apple> すべてのタグは正しく閉じられていますが、正しい順序ではありません。プログラムは、正しいタグ階層とネストをチェックする必要があります。 定義 ルールと仮定に入る前に、いくつかのことを定義しましょう。 鬼ごっこ 基本的なXMLスタイルのタグ。例:<Apple>。彼らは(あるいはそうでなければ無効とfalseyだ)、最大で1つの先頭と末尾のスペースを持っているので、できる< Apple >と<Apple>同じです。これらのタグは、などの属性も含めることができますfoo="bar" (必要な二重引用符、または他の無効とfalsey付き)を、および属性名は任意の英数字またはを含むことができ_、:、-、と.。属性名には属性値も必要ありません。また、値には、"二重引用符を閉じる前以外の値を含めることができます。終了タグには属性を含めることはできません。また、タグに改行を含めることはできません。 タグ名 タグ名はタグの名前です。たとえば、<Apple>のタグ名はAppleです。タグ名には、属性名と同じ文字を含めることができ、大文字と小文字が区別されます。これはそうで<Apple>はありません <apple>。 自己閉鎖タグ <Apple />または<Apple/>(同じです)など、自分自身を閉じる通常のタグ。スラッシュとタグ名の間のスペースは許可されます。 プレーンテキスト 何でも含むことができ、<andで囲まれていない文字列>。 「シンプル」タグ 開始タグ、終了タグ、または自己終了タグのいずれか。 ルール 出力は返されるか印刷される場合があり、入力は任意の方法で取得できます 入力は、タグ、プレーンテキスト、またはその両方で構成される文字列です あなたのプログラムは、機能または作業プログラム全体にすることができます プレーンテキストはどこでもかまいません。入力がプレーンテキストのみで構成されている場合、プログラムは真実の値を返す必要があります。 プログラムにはネストされたタグの認識が必要です。タグがタグ内にネストされている場合、通常のXMLと同様に、ネストされたタグを閉じてから親を閉じる必要があります。そうしないと、falsey値が返されます。 仮定 入力は常に1つ以上の「単純な」タグであると想定できます。 入力は常に上記で定義されたタグの形式に従うと想定できます。 テストケース 偽り <apple> <apple></Apple> <apple></mango> <apple><mango> <a><b></a></b> Text<ul><li></li><ul /> <pear attr=foo></pear attr=foo> <Ketchup flavor=spicy></Ketchup> <Ap …

7
駐車場スーパーバイザー
前書き あなたは駐車場のスーパーバイザーであり、マネージャーはサイズを極端に縮小する準備をしています。 これは、昨年のPATの問題を単純化および適合させたバージョンですトップレベルです。 チャレンジ あなたは、同時に多くしているどのように多くの車を計算するように要求され、最大で。 標準ルールが適用されます。そしてこれはコードゴルフなので、最短のコードが勝ちます。 最初の行は、エントリの量(超えないで100,000、あなたが好きならば、あなたの入力は、どこ入力端を決定する唯一のその場しのぎであるため、この行を含めることはできません)。次のテキストには、1行に1つのエントリが含まれています。また、各エントリには3つの数字が含まれています。 <Car plate number> <Time (seconds) since open> <0(In) | 1(Out)> 修正2:入力としてトリプルの配列を使用しても問題ありません。 変更3: 1つのエントリの番号の順序を変更できます。そして、使用するものを選択できます。(備考セクションを参照) 次のことを前提として、入力が有効であることが保証されます。 Car plate number10000〜の範囲の整数です99999 Time0〜の範囲の整数です86400 そして エントリは必ずしも時系列に並んでいるとは限りません。 最初の秒の前に車はありません。 最後の1秒が過ぎても必ずしも車がなくなるわけではありません。 車は入る前に出発しません。 Car plate numberユニークです。(ただし、同じ車が複数回訪問する場合があります) そのため、車が既に入っている場合、その区画に入ることは不可能です。 同じ車が同じように出入りしないでしょうtime。 車は入出庫時にロット内にあるとみなされます。 例1 入力 11 97845 36000 1 75487 16500 1 12345 16 0 75486 3300 …
13 code-golf 

4
ネストされたラジカルを描く
数学の多くの式には、ネストされたラジカル(他の平方根記号内の平方根記号)が含まれます。ここでのタスクは、アスキーアートを使用してこれらを描画することです。 スペック 2つの整数、ラジカル内の数、およびラジカルの数が与えられます。あなたがしなければならないことを説明する最良の方法は、例を使うことだと思います。の出力は2, 4次のとおりです。 ____________________ \ / _______________ \ / \ / __________ \ / \ / \ / _____ \/ \/ \/ \/ 2 以下に注意する点を示します。 各ラジカルの高さは1ずつ増加します の長さ_は常に5高さの倍です 最後の後/、次の内部ラジカルが始まる前にスペースがあります 内部の数字は4桁を超えることはありません 部首の数が0の場合、単に数を出力します 余分なスペースを入れて長方形に埋め込むのはあなた次第です これはcode-golfなので、バイト単位の最短コード勝ちです! テストケース 2, 4: ____________________ \ / _______________ \ / \ / __________ \ / \ / \ …

1
クロスワードをひねりながら読んでください!
この質問に似ていますが、これはクロスワードのバリエーションです! グリッドの正方形ごとに1文字だけではなく、1 つまたは 2つのを使用できます。 入力: 2次元配列、またはあなたの言語で機能するもの。 有効な入力を想定できます 任意の配列サイズが機能する必要があります 出力: すべての単語の配列 前後 すべての単語を結合する必要があります。つまり、切れ目のない単語のチェーンでリンクします(falseを返さない場合) 単語は、文字ではなく、少なくとも2つのグリッド正方形でなければなりません 例: [["", "wo", "r", "k"], [ "", "r", "", ""], [ "he", "l", "lo", ""], [ "", "d", "ad", ""]] 戻り値: ["work", "world", "hello", "load", "dad"] 例: [["he", "ll", "o"], [ "", "", ""], [ "wo", "r", …

1
ボブのパスワード
前書き ボブは、使用するWebサイトごとに異なるパスワードを使用するのが好きです。彼は、覚えられるように特別な形式のパスワードを求めています。彼は自分の名前のように短くするのが好きなので、コードの長さをできるだけ短くしたパスワードジェネレーターを構築して彼を助けてください。 チャレンジ 4つのパラメーターを受け取るパスワードジェネレーターをBobにビルドします- ドメインアドレス(例:stackexchange.com) ファーストネーム、 苗字、 生年月日および年。 そして、次の変換を受けた文字列を出力します。 すべてのパスワードには、ドメイン名の長さlに基づいたテンプレートがあります。場合は、Lが素数である、テンプレートがこの形式であります- [birth-date][domain-name][lastname][birth-year][symbol] それ以外の場合は、この形式です- [symbol][birth-year][firstname][domain-name][birth-date]。 シンボルフィールドには、ドメインタイプに基づいた値があります。 .com-> $$$ .org-> &&& .net-> %%% .edu-> +++ .gov-> @@@ .mil-> >>> デフォルト-> ~~~ 今、彼はまた、実行したいシーザー暗号 -フィールド以上の[firstname][domain-name][lastname]場合【選択シフト方向が右であるlは、それが残っているそれ以外の素数です。シフト値は、生年月日と年の加算の値によって決まります。 上記のプロセスの後、テキストは簡単に思い出せないため、暗号化されたテキストを発音できるようにしたいと考えています。これを行うために、彼は3回ごとに子音をアルファベット順の母音(つまりaeiou)に置き換えたいと考えています。 最後に、彼は同じ文字の連続した出現を削除したいと考えています。 例 入力-stackexchange.com bob williams 0894 出力-08qraicvafyecugjigyoq94 $$$。 説明 : [birth-date][domain-name][lastname][birth-year][symbol]ドメイン名の長さがstackexchange素数であるため、パスワードテンプレートはです。シンボルは$$$、ドメインタイプがのようになります.com。 これらの値をテンプレートに入力しましょう- 08stackexchangewilliams94$$$。ここで、フィールドでcaesar暗号を実行する必要があります[firstname][domain-name][lastname](この場合は単なる姓です)。lは素数であり、シフト値はであるため、シフト方向は右です08+94 = 102。 だから、に08stackexchangewilliams94$$$なり08qryaicvafylecugjjgykq94$$$ます。これで、連続する3回ごとの子音が母音に置き換えられ08qraaicvafyeecugjigyoq94$$$ 、同じ文字の連続するすべての発音が削除され08qraicvafyecugjigyoq94$$$ます。それがボブにとって発音可能であることを心配しないでください。 追加情報 ドメインアドレス、名、および姓には小文字のアルファベットのみが含まれます。 …
13 code-golf  string 

23
Answer-Chaining-数値の正の除数
この答えの連鎖の挑戦は公式に終わり、その結果、Wheat Wizardが7つの答えを獲得しました。他の回答は歓迎しますが、このチャレンジの受け入れられた回答にも勝者にも影響しません。 仕事: x入力として取得した数値のすべての正の除数を出力します。 入力: x正の除数を計算する必要がある数(10を基数)である単一の数。 出力: のすべての正の除数x。任意の形式には、許可されている\n、,、;限り、それは理解できるだとして、セパレータなどと空白。出力は、整数または文字列の配列にすることもできます(例:)[1, 2, 3, 5, 30]。除数をstdout、console、または同等の言語で出力するか、関数から返すことができます。 ルール ユーザーは連続して2回答えることはできません あなたの答えは、最大でも追加または置換、削除することができる15個のため以外に、(カウントされません空白)前の回答から文字を回答2までの「変換」することができます20個の物事を始めるために文字を 既に回答があるプログラミング言語で回答を投稿することはできません。例外はその言語の完全に異なるバージョンです(例:で回答を投稿する場合、で投稿Python 2.7できますが、では投稿できPython 3ませんPython 2.6) 標準の抜け穴は許可されていません このチャレンジのために、除数を取得するためにビルトインを使用することは許可されていません 質問のタイトルに回答の番号と言語名を含め、前の回答から変更された文字数を含める必要があります 得点 物事が落ち着いた後、最も提出物を持つユーザーが勝ちます。同点の場合、回答の1つで最も高いスコアを持つユーザーが勝ちます。スコアにも同点がある場合、最も古い提出(最もスコアの高い回答)を持つユーザーが勝者として宣言されます。 注:「落ち着く」<=> 7最後の回答が送信されてから3日が経過しました 例: Input, Output: 14 => [1, 2, 7, 14] 25 => [1, 5, 25] 65 => [1, 5, 13, 65] 114 => [1, 2, …

17
自分をクローンしてください!
停止するまで、それ自体の正確なクローンを無限に作成するプログラムを作成します。元のプログラムにあるものはすべてクローンにある必要があります。言い換えれば、クローンと元のプログラムは、クローンがソースコードと同じ種類のファイルにある必要がないことを除いて、あらゆる点で同じです(テキストファイルでもかまいません)。 例: 私の元のプログラムが次の場合: for i in range(0, 10): print i クローンも以下でなければなりません: for i in range(0, 10): print i 規則と説明: 標準的な抜け穴は禁止されています クローンはオリジナルの正確なコピーでなければなりません クローンは、適切なインタープリター内に配置された場合に実行できる読み取り可能なファイルでなければなりません プログラムは独自のソースコードを読むことができます すべてのクローンは個別のファイルである必要があります プログラムの印刷は許可されていません ファイル名はバイト数にカウントされます クローンはソースファイルと同じディレクトリにある必要も、同じファイル名を共有する必要もない 少なくとも1000個のクローンを作成できる必要があります 受賞: 最小バイトが勝ちます!

8
アスキーアートゾンビの侵入シミュレーション
ゾンビの侵入をシミュレートするには、マップのグリッドから始めて、マップ#を表します。 ## ## ### # ## ## # ### # #### # 土地を表します。 水を表します。 ゾンビは地図上のある地点から始まります... ## ## ### # ## %# # ### # #### ...そして広がります。%ゾンビに感染した土地を示します。 ただし、ゾンビは泳げません。彼らは王がチェスで移動するのと同じ方法で土地を横切ることができます-任意の斜めまたは直交方向に1つの正方形: !!! !%! !!! シミュレーションの終了時に、一部の土地がゾンビに感染します。 %% ## %%% # %% %% % %%% # %%%% あなたの仕事は、ゾンビの侵入をシミュレートすることです。グリッドの初期状態を表す文字列と、初期ゾンビの座標を表す2つの数値を入力として受け取るプログラム(または関数)を記述します。プログラムは、侵略の最終状態を出力(または返す)する必要があります。 仕様書 プログラムは、オプションの末尾の改行を出力する場合があります。 入力は正しい形式(スペースが埋め込まれた形式)であり、オプションで末尾の改行があると想定できます。 最初のゾンビは陸上で始まり、すぐには死なないと思います。 これはcode-golfであるため、最短回答(バイト単位)が優先されます。 コードが任意のチューリングマシンの停止問題も解決できる場合は、-100%のボーナス。 プログラムは、最大50文字のボード幅を処理する必要があります。

14
ソートされた要素のリストのすべての組み合わせを生成します
入力としてリストと数字を受け取り、数字の長さで可能なすべての組み合わせを生成するコードを作成します。たとえば、リスト{0,1}と番号2の場合: 00 01 10 11 プログラムでは、 {0,0,0,0,0,1,1,5,5}のように、リスト内で2回以上文字を期待する必要はありません。 リストの順序で、組み合わせを並べ替えて印刷してください。 リスト{0,1}と数字5(私のコードの一部によって生成され、勝つには長すぎます): 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 10001 10010 10011 10100 10101 10110 10111 11000 11001 11010 11011 11100 11101 11110 11111 しかし、リスト{1,0}と番号2の場合: 11 10 01 00 ご覧のとおり、逆順リストは逆順を意味します。 構造を見てみましょう、それは木のようなものです。 これはコードゴルフなので、バイト単位の最短コードが勝ちです!

8
ASCIIテストチューブを最適化する
ASCIIテストチューブの束が与えられます。タスクは、使用するテストチューブの数を減らすことです。 各試験管は次のようになります。 | | | | | | |~~| | | | | | | | | |__| 明らかに、~~水位です。また、試験管を空にすることもできます~~。この場合、内部に文字はありません。1つのチューブには、最大8つの水位ユニットを含めることができます。 内部の水位が異なる有限数の試験管が与えられます。できるだけ少ない量の試験管に水を注ぎ、結果を出力する必要があります。 | | | | | | | | |~~| | | | | | | | | | | | | | | | | |~~| | | | | …

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