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

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

14
迷路生成[終了]
これに似た(古い)スレッドがあることは知っていますが(ここ)、いくつかの修正を加えて再起動したいと思います。 目標は、選択したアルゴリズムを使用してランダムに見える迷路を生成し、その迷路をグラフィカルに出力することです(印刷カウント)。 幅と高さはユーザーが決定します。 少なくとも1つの入口から少なくとも1つの出口まで少なくとも1つのパスが必要です。 迷路の形式(どのように表示するか、入り口または出口をマークする方法)もあなた次第です。 きれいなほど良い。 些細な迷路(たとえば、空の迷路、格子迷路、サイズ1x1の迷路)は推奨されません。 結果が合理的である場合、迷路のサイクルが許可され、奨励されます。 言語の乱用を奨励しました。 迷路は適度にランダムに見えるはずです(ただし、これを生成する完全に決定論的な(カオスなど)アルゴリズムでも問題ありません)。 編集:ここでの主な焦点は、可能な限り最小の実装を作成することです。ただし、その制約内である程度の余裕を持たせて、光沢を促進したいと思います。私は迷路の「機能」を無制限に意図的に正確に残しましたが、大まかなガイドラインとして、最も少ない量の語彙に最大の強打を詰め込むようにしてください。

30
Mathematicaでのゴルフのヒント
Mathematicaでゴルフをするための一般的なヒントは何ですか?少なくともMathematicaにある程度特有のゴルフ問題全般のコーディングに適用できるアイデアを探しています(例えば、「コメントを削除する」は答えではありません)。
41 code-golf  tips 

30
逆ポーランド記法
逆ポーランド記法で書かれた文字列を評価し、結果を出力する必要があります。 プログラムは入力を受け入れ、出力を返す必要があります。入出力を受け取る関数を持たないプログラミング言語の場合、readLine / printなどの関数を想定できます。 プログラムで「評価」を使用することはできません。 数字と演算子は、1 つ以上のスペースで区切られます。 少なくとも+、-、*、および/演算子をサポートする必要があります。 負の数(たとえば、-4とは異なります0 4 -)および浮動小数点数のサポートを追加する必要があります。 入力が有効であり、上記の規則に従っていると想定できます。 テストケース 入力: -4 5 + 出力: 1 入力: 5 2 / 出力: 2.5 入力: 5 2.5 / 出力: 2 入力: 5 1 2 + 4 * 3 - + 出力: 14 入力: 4 2 5 * + 1 …
41 code-golf  math 

30
そこで、私はそれを修正しました(テープで)
チャレンジ: 大文字と小文字のどちらか(またはどちらか)のみを含む文字列を指定して、tape水平に配置して修正します。私たちは、アルファベットの二つの隣接する文字(ラップアラウンドを無視してのみ前進)の違いを確認し、そして同じくらいにスペースを充填することによって、これを行うTAPE/ tape私たちが必要となるよう。 例: 入力:abcmnnnopstzra 出力:abcTAPETAPETmnnnopTAstTAPETzra どうして? 間cとmする必要がありますdefghijkl(長さ9)ので、我々がこれを埋めますTAPETAPET。 between pと(length 2)であるs必要があるqrため、これをTA;で埋めます。 Between tと(length 5)であるz必要があるuvwxyため、これをで埋めTAPETます。 チャレンジルール: 違いは前方にのみ適用されるため、間にテープはありませんzra。 のような同じ隣接する文字を複数持つことが可能nnnです。 合理的な形式で入力を行うことができます。単一の文字列、string-array / list、character-array / listなどにすることができます。出力には同じ柔軟性があります。 任意の方法で小文字および/または大文字を使用できます。これは、入力、出力、およびの両方に適用されますTAPE。 不要TAPEである可能性があります。その場合、入力は変更されません。 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターと戻り値型、完全なプログラムを持つ関数/メソッドを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンクを追加してください。 また、必要に応じて説明を追加してください。 テストケース: Input: "abcmnnnopstzra" Output: "abcTAPETAPETmnnnopTAstTAPETzra" Input: "aza" Output: "aTAPETAPETAPETAPETAPETAPEza" Input: "ghijk" Output: "ghijk" Input: "aabbddeeffiiacek" Output: "aabbTddeeffTAiiaTcTeTAPETk" …
41 code-golf  string 

4
ダンジョンクローラー
入力 ダンジョンの壁を表すバイナリマトリックスMMM ダンジョン内のプレイヤーの位置(x 、y)(x,y)(x,y)。 プレイヤーが現在向いている方向ddd(0 =北、1 =東、2 =南、3 =西) 出力 プレイヤーの視野内にある壁の擬似3D表現30 × 1030×1030\times 10文字のASCIIアートとして。 以下は、いくつかの可能な出力フレームと、それに対応するための対応するマップとコンパスです(ただし、マップとコンパスの描画は課題の一部ではありません)。 仕様 視野 プレーヤーには、AからMのラベルが付いた131313壁が視野にあります。以下は、プレーヤーに対する壁の位置(黄色)であり、考えられるすべての方向です。AAAMMM 壁を描く 以前に描画された部分が近い壁によって上書きされる可能性があるため、壁はこの正確な順序でAAAからMMMに描画されることになっています。もちろん、最終結果が同じである限り、異なる方法で実装できます。 :全体の出力は、7つの異なる文字で描かれている" "、"'"、"."、"|"、"-"、"_"および":"。 この課題の本体の壁の形状を詳細に説明すると長すぎるため、代わりに次のTIOリンクで提供されます。 オンラインでお試しください! 特定の壁の一部ではないキャラクターは"?"、これらの図ではa でマークされています。それらは、まったく描画されない「透明な」文字として扱われなければなりません。一方、壁内のすべてのスペースは「ソリッド」であり、以前にそこに描かれた可能性のある他の文字を上書きする必要があります。 ルール 入力について MMMxxxyyyddd 0インデックスまたは1インデックスの座標を使用できます。 方向には、選択した4つの異なる値を使用できます。 3×33×33\times 3 あなたは常に縁に周囲の壁があると仮定するかもしれません。 プレーヤーは空の広場にいることが保証されています。 入力は有効であることが保証されています。 出力について 説明したとおりに壁を描く必要があります。 ただし、出力形式も柔軟です。単一の文字列、文字列の配列、文字のマトリックスなどです。 前後の空白は、一貫している限り許容されます。 これはcode-golfです。 テストケース すべてのテストケースは、次のマトリックスを使用しています。 [ [ 1, 1, 1, 1, 1, …

12
よくリンクされた挑戦
私が退屈しているときに時々する活動は、一致するペアでいくつかの文字を書くことです。次に、これらのキャラクターをつなぐために線を描画します(決して上にならないように重ねます)。たとえば、と書くと、次のように線を引きます。a b c b a cabcbacabcbac または私は書くかもしれませんa b b c a cabbcacabbcac これらの線を描いたら、チャンクの周りに閉じたループを描いて、描いた線がループと交差しないようにします。たとえば、最初のループでは描画できるのはループ全体だけですが、2番目のループでは s(またはその他すべて)の周りにループを描画できますbbb しばらくこれをいじると、一部の文字列が描画され、閉じたループにすべての文字が含まれるか、文字が含まれないことがわかります(最初の例のように)。このような文字列をリンクされた文字列と呼びます。 一部の文字列は複数の方法で描画できることに注意してください。たとえば、は次の両方の方法で描画できます(3つ目の方法は含まれていません)。b b b bbbbbbbbb または これらの方法のいずれかを描画して、行を交差させずに文字の一部を含む閉じたループを作成できる場合、文字列はうまくリンクされていません。(したがって、はうまくリンクされていません)b b b bbbbbbbbb 仕事 あなたの仕事は、うまくリンクされた文字列を識別するプログラムを書くことです。入力はすべての文字が偶数回出現する文字列で構成され、出力は2つの異なる一貫した値のいずれかである必要があります。 また、あなたのプログラムがうまくリンクされた文字列でなければなりません意味 プログラムでは、すべての文字が偶数回表示されます。 渡されたときに、真理値を出力する必要があります。 プログラムは、印刷可能なASCIIまたは独自のプログラムからの文字で構成される任意の文字列に対して正しい出力を生成できる必要があります。各文字が偶数回表示されます。 回答は、バイト単位の長さとしてスコア付けされ、バイト数が少ないほどスコアが高くなります。 ヒント 文字列は、各文字がその部分文字列内で偶数回出現するように、連続した空でない厳密な部分文字列が存在する場合、適切にリンクされません。 テストケース abcbac -> True abbcac -> False bbbb -> False abacbc -> True abcbabcb -> True abcbca …

30
カーペットをレイアウトする
このSO質問に触発されました。 チャレンジ: 入力: 文字列sss キャラクターccc 出力: 文字列の最初の文字を中央に、外側に向かって、4方向すべてに文字列のひし形のASCIIアートを作成します。フィラーとしてのキャラクターを備えた、正方形のASCIIアートカーペットの中にあります。これはかなりあいまいに聞こえるかもしれないので、ここに例を示します。 入力: = 、 = 出力:sssstringccc. ..........g.......... ........g.n.g........ ......g.n.i.n.g...... ....g.n.i.r.i.n.g.... ..g.n.i.r.t.r.i.n.g.. g.n.i.r.t.s.t.r.i.n.g ..g.n.i.r.t.r.i.n.g.. ....g.n.i.r.i.n.g.... ......g.n.i.n.g...... ........g.n.g........ ..........g.......... チャレンジルール: 入力文字列は文字のリストでもあります 出力は、文字列行のリストまたは文字のマトリックスでもあります 入力文字列と文字は空でないことが保証されています 文字列には文字が含まれないことが保証されます 文字列と文字は両方とも印刷可能なASCIIのみです(ユニコード範囲[32,126]、スペース ''からチルダ '〜'まで) 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 デフォルトのI / Oルールを使用した回答には標準ルールが適用されるため、STDIN / STDOUT、関数/メソッド、適切なパラメーターおよび戻り値型、完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンク(TIOなど)を追加してください。 また、回答の説明を追加することを強くお勧めします。 テストケース: 入力: = 、 = 出力:sssc =11111c =c=c=0 …

30
物理的な九九を印刷する
長方形はこの素晴らしい特性を持っています長方形は正確に文字で構成されています!n × mn×mn \times mn × mn×mn \times m A ..より興味深い特性は、乗法テーブルで長方形をきれいに配置できることです-たとえば、テーブル:3 × 33×33 \times 3 # ## ### # ## ### # ## ### # ## ### # ## ### # ## ### あなたの挑戦は、数()を与えられて、フォーマットされた乗算表を出力することです。nnnn > 1n>1 n > 1n × nn×nn \times n ルール 上または下の入力を使用できますnnn デフォルトのI / Oルールが適用されます ブロックを表すために任意の非空白文字を選択できます。他のすべての文字(改行は特別ですが)は空白と見なされます。選択した文字は入力ごとに異なる場合がありますが、入力全体で同じである必要があります テーブルが整列し、必要な出力の一部ではない選択された文字の出現がない限り、結果に不要な文字が含まれることがあります …

30
2D配列の周囲のゼロを削除する
これは、この質問の 2次元バージョンです。 負でない整数のみを含む空でない2次元の配列/行列が与えられた場合: ⎡⎣⎢⎢⎢⎢⎢⎢0000000000000100101000110⎤⎦⎥⎥⎥⎥⎥⎥[0000000010000010011100000] \begin{bmatrix} {\color{Red}0} & {\color{Red}0} & {\color{Red}0} & {\color{Red}0} & {\color{Red}0} \\ {\color{Red}0} & {\color{Red}0} & 0 & 1 & 0 \\ {\color{Red}0} & {\color{Red}0} & 0 & 0 & 1 \\ {\color{Red}0} & {\color{Red}0} & 1 & 1 & 1 \\ {\color{Red}0} & {\color{Red}0} & {\color{Red}0} …

30
ソウルメイトを探して
整数の空でない有限リストが与えられた場合、正確に2つの等しいエントリがあり、他のすべてのエントリが明確な場合は真実の値を出力し、そうでない場合は偽の値を出力します。 例 truthy: [1,1] [1,2,1] [1,6,3,4,4,7,9] falsey: [0] [1,1,1] [1,1,1,2] [1,1,2,2] [2,1,2,1,2] [1,2,3,4,5]

30
私は取るに足らない配列ですか?
無意味配列は連続する要素間の絶対差がより全て小さいか等しい正の整数の配列である1。 たとえば、次の配列は重要ではありません。 [1, 2, 3, 4, 3, 4, 5, 5, 5, 4] 対応する(絶対)違いは次のとおりです。 [1, 1, 1, 1, 1, 1, 0, 0, 1] これらはすべて1以下です。 あなたの仕事は、与えられた整数の配列が重要でないかどうかを判断することです。 配列には常に少なくとも2つの要素が含まれると想定できます。 標準の入力および出力ルールが適用されます。任意の妥当な形式で入力(および出力)を取得できます。 デフォルトの抜け穴は禁止されています。 真実/偽の値は明確で一貫している必要があります。 これはcode-golfであるため、バイト単位の最短回答が優先されます。 テストケース 入力->出力 [1、2、3、4、3、4、5、5、5、5、4]-> true [1、2、3、4、5、6、7、8、9、8]-> true [3、3、3、3、3、3、3、3]-> true [3、4、4、4、3、3、3、3、4、4、4]-> true [1、2、3、4]-> true [5、4、3、2]-> true [1、3、5、7、9、7、5、3、1]-> false [1、1、1、2、3、4、5、6、19]-> false [3、4、5、6、7、8、7、5]-> false [1、2、4、10、18、10、100]-> …

30
数字の合計の2倍で割り切れますか?
入力として正の整数が与えられた場合、タスクは、数値がその数字の合計の2倍で割り切れる場合は真実の値を出力し、そうでない場合は偽の値を出力します(OEIS A134516)。言い換えると: (sum_of_digits)*2 | number 真と偽の場合に真実/偽の値の代わりに、真/偽の場合に値の有限セットを指定し、それらが他の値を補完することができます。簡単な例0として、真の場合に使用し、偽の場合に他のすべての数値を使用することができます(必要に応じて、その逆も可能です)。 標準の入力および出力ルールが適用されます。デフォルトの抜け穴も適用されます。 入力は、整数またはその整数の文字列表現として受け取ることができます。 これはcode-golfなので、バイト単位の最短コードが勝ちです! 私はPPCGが初めてなので、可能であれば説明を投稿してください。 テストケース 入力-出力-(理由) 80-Truthy-(16で80を分割) 100-真実-(2は100を除算) 60-Truthy-(12は60で割る) 18-Truthy-(18は18を分割) 12-Truthy-(6分割12) 4-偽-(8は4を分割しません) 8-偽-(16は8を分割しません) 16-偽-(14は16を分割しません) 21-偽-(6は21を分割しません) 78-偽-(30は78を分割しません) 110-偽物-(4は110をしませんでした) 111-偽-(6は111を分割しません) 390-偽-(24は390を分割しない)

22
最適なベースは10です。到達しましょう。
入力: 0〜9の範囲の数字で構成される正の整数n。 チャレンジ: 場合dは整数で最上位桁であり、数値のベースであると仮定し、D + 1。たとえば、整数が1256の場合はbase-7であると想定し、10110の場合はbase-2(バイナリ)であると想定し、159の場合は10進数であると想定します。 さて、あなたのいずれか、1まで、次の手順を実行します。到達ベース-10の整数、または一桁の整数を達する:2。 整数をbase-(d + 1)からbase-10に変換します この新しい整数のベースを検索(再び、塩基(D + 1)dは新しい数の最上位桁です) ステップ1に進みます。 例: 入力がn = 413574であると仮定します。最高桁のd = 7であるため、これは8進数(8進数)です。これを10進数に変換して137084を取得します。最高桁のd = 8であるため、これはbase-9です。これを10進数に変換して83911を取得します。最高桁は9なので、これは10進数であり、停止します。出力は83911です。 入力がn = 13552であると仮定します。最高桁はd = 5なので、これはbase-6です。これを10進数に変換して2156を取得します。最高桁d = 6であるため、これはbase-7です。これを10進数に変換して776を取得します。最高桁はd = 7なので、これはbase-8です。これを10進数に変換して510を取得します。最高桁はd = 5なので、これはbase-6です。これを10進数に変換して186を取得します。最高桁は8なので、これは9進数です。これを10進数に変換して159を取得します。最高桁は9なので、これは10進数であり、停止します。出力は159とする。 入力がn = 17であると仮定します。これは、私たちに与えるだろう15、そして11、そして3を、どの我々は出力それは一桁だから。 テストケース: 5 5 17 3 999 999 87654321 (base-9 -> 42374116 in decimal -> …

30
最小限の移動
Stack Overflowでの質問に触発されました。ここのタイトルは完全に私のせいです。 チャレンジ 少なくとも2つのエントリを含む正の整数のリストが与えられた場合、それ自体を除くすべてのエントリの最小値で各数値を置き換えます。 テストケース [4 3 2 5] -> [2 2 3 2] [4 2 2 5] -> [2 2 2 2] [6 3 5 5 8] -> [3 5 3 3 3] [7 1] -> [1 7] [9 9] -> [9 9] [9 8 9] -> [8 9 …

6
失敗した城の検出
重力の興味深い側面の1つは、私が知る限り、空中に物を浮遊させることはできないということです。 しかし、ランダムキャッスルビルダーズ協会の全員がこの事実を知っているわけではないようです。 # # # # # # ### #### #### # # #### # # #### ### ############## ### ###### ###### ### ##### ##### ### ### `````````````````````````````` そしてこれは: # # # # # # ############## ### #### ### # # # # # # # # ### #### ### …

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