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

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

8
自己コンパイルコンパイラ[終了]
これは、私がしばらく前に聞いたコンパイラに関する話に基づいていますが、残念ながら、いつ、どこで思い出すことができません。 自分自身をコンパイルできる言語で最短のコンパイラを作成します。「コンパイルプログラム」命令を持たない合理的なISA(68K、x86、MIPS、ARM、SPARC、IBM BALなど)をターゲットにします(VAXの一部のバージョンが除外される場合があります)。からソースプログラムを読み取りstdin、生成されたコードをに出力しstdoutます。I / Oおよび文字列処理に標準Cライブラリを使用できます(例:)_printf。言語全体をコンパイルする必要はありません。コンパイラを含むサブセットのみをコンパイルする必要があります(つまり、アセンブリ言語のクインを印刷するだけで、印象的ですが、ソリューションとしてカウントされません)。

14
今日はセンターです
任意の便利な形式の入力として日付を指定し、その日付を5週間のウィンドウの正確な中心としてカレンダーを出力します。カレンダーのヘッダーには、曜日を表す2文字の略語(つまり、Su Mo Tu We Th Fr Sa)を含める必要があります。3文字またはその他の日の略語は許可されていません。 たとえば、April 2 2019入力として指定された場合、出力は次のようになります。 Sa Su Mo Tu We Th Fr 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 …

30
ソースコードを逆にすると、入力が無効になります。
露骨なぼったくりのぼったくり。それらに賛成票を投じてください! 受け入れたい場合、あなたのタスクは、整数の入力/引数を出力/返すプログラム/関数を書くことです。トリッキーな部分は、ソースコードを逆にする場合、出力は否定された元の整数でなければならないということです。 例 あなたのソースコードがでABC、その入力がであるとしましょう4。CBA代わりに記述して実行すると、出力はでなければなりません-4。 あなたのソースコードがでABC、その入力がであるとしましょう-2。CBA代わりに記述して実行すると、出力はでなければなりません2。 の入力は0、0またはを提供する-0場合がありますが、符号付きゼロをサポートする場合は、-0を提供する必要があります0。

3
接続4:偽物を見つけよう!
銀行は破られ、地元のマフィアの凶悪犯は皆、異常なアリバイを持っています。彼らは自宅でConnect 4をプレイしていました!調査を支援するために、押収されたすべてのConnect 4ボードを検証するプログラムを作成して、位置が実際に有効なConnect 4ゲームからの位置であり、急いで組み立てられていないことを確認するように求められます警察がドアをノックするとすぐに。 接続4のルール:プレーヤーRとY 7x6グリッドの列にその色のタイルをドロップするように順番にそれを取ります。プレイヤーが列にタイルをドロップすると、その列の一番下の空いている位置を占めるために倒れます。プレイヤーがボード上で自分の色の4タイルの水平、垂直、または斜めのランを獲得した場合、彼らは勝ち、ゲームはすぐに終了します。 たとえば(R開始時)、次の接続4の位置は不可能です。 | | | | | | | | | | | | | | | | | | | | | | | | | | |R| | | | | | | |Y| | | | | |R| |Y| | | | …

2
節のある状況
結び目のダウカー表記法とその交差記号を与え、そのブラケット多項式を計算します。 より多くの技術的な定義がありますが、この課題に対しては、結び目を、文字列の両端を結び付けて物理的に作られたものと考えるだけで十分です。ノットは3次元で存在するため、紙にノットダイアグラムを描画するときは、ノットダイアグラムを使用します。2次元投影では、交差が正確に2本の線で構成されます。 ここで(b)と(c)は同じ結び目の異なる図です。 紙に結び目図をどのように表現しますか?私たちのほとんどはレンブラントではないので、次のように機能するDowker表記法に依存しています。 結び目の任意の開始点を選択します。結び目に沿って任意の方向に移動し、遭遇した交差点に番号を付けます。1から始まり、次の変更を加えます。偶数で、現在交差点を超えている場合は、その偶数を無効にします。最後に、1、3、5などに対応する偶数を選択します。 例を試してみましょう: この結び目で、開始点として「1」を選択し、右上に移動しました。ロープの別の部分の上または下を通るたびに、交差点に次の自然数を割り当てます。たとえば[3,-12]図のように、交差を越える鎖に対応する偶数を無効にします。したがって、この図はで表され[[1,6],[2,5],[3,-12],[-4,9],[7,8],[-10,11]]ます。1、3、5、7などの仲間をリストすると、が得られ[6,-12,2,8,-4,-10]ます。 ここで注意すべきことがいくつかあります。まず、Dowker表記は、任意の開始点と方向を選択できるため、特定のノットに対して一意ではありません。しかし、表記法を考えると、結び目の構造を完全に決定することができます(技術的には、その主要な結び目コンポーネントの反映まで)。すべてのダウカー表記法がノットを形成できるわけではありませんが、この問題では、入力が実際のノットを表すと仮定できます。 結び目の反射のあいまいさを回避し、課題を解決しやすくするために、交差記号のリストも入力として提供されます。 正の交差では、下の線は上の線の視点から左に進みます。負の交差点では、右に進みます。(つまり、両方の逆転結び目の周りに行くの向きを反転させることに注意上のラインと下のラインは)交差記号を変更しません。この例では、交差記号は[-1,-1,-1,1,-1,1]です。それらは、ダウカー記法と同じ順序で、つまり1、3、5、7などの番号が付けられた交差点で与えられます。 AAA DDD⟨ D ⟩⟨D⟩\langle D\rangle 交差のない唯一のループの多項式は1です。 構成される図がある場合DDDDDDDDD(− A2− A− 2)(−A2−A−2)(-A^2-A^{-2}) DDD 上記の画像では、最初の図のアウトラインの交差はの形式であり、2番目の図(正の平滑化)または3番目の図(負の平滑化)のように変換できます。 AAAA− 1A−1A^{-1} まだ混乱していますか?のブラケット多項式を見つけようとする例を見てみましょう(注:これは相互にリンクされた2つのノットです。この種の図は、入力が単一のノットのみであるため、このチャレンジの潜在的な入力ではありませんが、アルゴリズムの中間結果。) 最初にルール3を使用します 新しいノットの両方で再びルール3を使用します これらの4つの新しいノットを最初の方程式に代入します。 これら4にルール1と2を適用すると、 だから、これは私たちに教えて 結び目理論の簡単な紹介を完了しました! 入力 2つのリスト: ダッカー記法、例えば[6,-12,2,8,-4,-10]。交差点の番号は1から開始する必要があります。対応する奇数[1,3,5,7,...]は暗黙的であり、入力として提供しないでください。 ダウカー記法に対応する交差点の標識(1/ -1または0/ 1またはfalse/ trueまたは'+'/ を好む場合'-')[-1,-1,-1,1,-1,1]。 リストのペアの代わりに、ペアのリストを持つことができます。例えば [[6,-1],[-12,-1],... 出力 A− 2+ 5 + A − A3A−2+5+A−A3A^{-2}+5+A-A^3[[1,-2],[5,0],[1,1],[-1,3]] あるいは、指数対応する係数の奇数長リストを出力します− …

9
インデントベースのソート
各文字列の前に0個以上のスペース()文字が含まれる大文字と小文字の文字列(az XOR AZ)の順序付きリストが与えられた場合、同じリストを出力しますが、文字列はインデントの各レベルでソートされます。異なる親の下のインデントの深さは、ソートの目的で個別のリストとしてカウントされます。 例 入力が次の場合: bdellium fox hound alien aisle wasabi elf alien horseradish xeno irk wren tsunami djinn zebra あなたの出力は aisle horseradish xeno wasabi alien elf bdellium alien fox hound djinn zebra irk tsunami wren 必要に応じて、ディレクトリリストのように考えてください。各ディレクトリ内の名前を並べ替える必要があります。 ミヌティアエ アイテムは、任意の数のスペースでインデントできます。前のアイテムと同じ数のスペースでインデントされている場合、前のアイテムと同じソート階層に属します。より多くのスペースでインデントされている場合、それは新しいサブ階層の始まりです。 行がその上の行よりも少ないスペースでインデントされている場合、同じ#またはそれより少ないスペースでその上の最も近いサブグループにリンクします(上の例の西洋わさびのように、上のわさびグループにリンクしますわさびは、その上にある西洋わさびよりも多くのスペースがない最初のアイテムです) 出力の各入力項目のインデントレベルを保持する必要があります 出力のタブは許可されません 入力の最初の行はインデントされません プログラムは、すべて大文字とすべて小文字の文字列の少なくとも1つを処理する必要があります。両方を処理する必要はありません。 得点 これはcode-golfであるため、使用するバイト数が最も少ない答えが優先されます。

14
擦り切れたタイルのスクラブル
問題 森の真ん中にある小屋で立ち往生し、自分を楽しませるために古いスクラブルだけをセットしています。検査すると、スクラブル文字がすり減っており、各文字のポイントだけが見えることがわかります。 それにもかかわらず、あなたはゲームをプレイすることにしました。バッグから7文字を引き出してトレイに置きます。あなたの課題は、それらの文字が何であるかを判断することです。 そのため、一般に、ポイントのリストが与えられると、それを可能な文字列または文字のリストに変換します。 スクラブルタイルと分布 2つの空白のタイル(0ポイントのスコア) 1点:E×12、A×9、I×9、O×8、N×6、R×6、T×6、L×4、S×4、U×4 2点:D×4、G×3 3点:B×2、C×2、M×2、P×2 4点:F×2、H×2、V×2、W×2、Y×2 5ポイント:K×1 8点:J×1、X×1 10点:Q×1、Z×1 だから、あなたはポイントのリストを持っている場合は[10,10,8,5,1,1,1]、次に"QZJKEEE"有効であるだろうが、"QQJKEEE"(袋にのみ1 Qタイルがあるので)、有効ではありません 問題固有のルール すべての入力が有効であり、常に7タイル(つまり、7つの10ポイントタイルのリストではなく、9タイルではない)があると想定できます。 バッグから以前にタイルが引き出されていないと仮定できます(したがって、分布は上記で定義された英語のタイルの標準分布です) 有効な単語を生成する必要はなく、有効な文字列のみを生成します。 各タイルに対応する文字がある限り、文字列の順序は関係ありません。 ポイントは、上記で定義した標準的な英語のスクラブルタイルポイントに基づいています。 大文字または小文字で出力できます。空白のタイルでは、スペース文字またはアンダースコア「_」のいずれかを出力できます 回答は、リスト、文字列、配列、シーケンスなどのタイルの合理的な表現として出力される場合があります 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、コードゴルフ以外の言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 デフォルトのI / Oルールを使用した回答には標準ルールが適用されるため、STDIN / STDOUT、関数/メソッド、適切なパラメーターおよび戻り値型、完全なプログラムを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンク(TIOなど)を追加してください。 また、回答の説明を追加することを強くお勧めします。 テストケース 可能な値を出力できるため、厳密なテストケースを定義することは困難です。 有効な戻り値が考えられるいくつかのケース: [10,0,10,5,8,8,0] -> "Q ZKJX " [1,1,1,1,1,1,1] -> "EEEEEEE" [1,2,3,4,5,8,0] -> "NDBHKJ " [2,2,2,2,2,2,2] …

6
そのヘビはどこへ行くの?
任意の数の列と行の2次元配列をとる関数を(できるだけ少ないバイトを使用して)記述します。 0 空のブロックを表し、 1 は蛇のブロックを表します。 この関数は、ヘビが移動した可能性のあるパスの数を返す必要があります。 例1: 入力: [ [1,1,1,1,1], [0,0,0,0,1], [0,0,0,0,1], ] 出力: 2 上記の例では2、答えは次のいずれかであるため、関数は戻ります。 例2: 入力: [ [1,1,1,1], [0,0,1,1], [0,0,1,1], ] 出力: 6 この例では6、答えは次のいずれかであるため、関数は戻ります。 注意: 入力を評価するとき、次のことを想定できます。 列を表す配列は常に同じサイズになります(したがって、配列は長方形になります)。 有効なパスが少なくとも1つ存在します。 ヘビは、いくつかのバージョンのヘビで起こり得るように、端を通り抜けることができません。 ヘビは常に少なくとも2ブロックあります。 ヘビは斜めに移動できません。 パスが指示されます。(つまり、異なる位置で終了するが、まったく同じように見える2つのパスは同じパスではないため、合計されます)

20
*すべて*タプルをリストします!
入力nが与えられたプログラムを書くと、自然数を使用してすべての可能なnタプルが生成されます。 n=1 (1),(2),(3),(4),(5),(6)... n=2 (1,1),(1,2),(2,1),(2,2),(1,3),(3,1),(2,3),(3,2),(3,3)... n=6 (1,1,1,1,1,1) (1,1,1,1,2,1) (1,1,1,2,1,1)... 出力は、他の規則に違反しない任意の順序で実行できます。 プログラムは、理論上は永久に実行され、適用可能なすべてのタプルを一度だけリストするように作成する必要があります。 実際には、プログラムは整数型の制限に達し、クラッシュします。これは、整数型のみが無制限の場合にプログラムが無限に長く実行される限り許容されます。 プログラムがその時間だけ実行できる場合、有効な各タプルは有限時間内にリストする必要があります。 出力には、オプションで、自然数に加えてゼロが含まれる場合があります。 タプルと各タプル内の数値の区別が明確で一貫している限り、プログラムの出力形式を選択できます。(たとえば、行ごとに1つのタプル。) 入力(n)は1〜6の整数です。この範囲外の入力に必要な動作は未定義です。 コードゴルフ規則が適用され、最短のプログラムが勝ちます。 サンドボックスフェーズ中のフィードバックをいただいた「Artemis Fowl」に感謝します。

21
NxNxNルービックキューブの順列の量
前書き: 3x3x3ルービックキューブが有する43,252,003,274,489,856,00043,252,003,274,489,856,00043,252,003,274,489,856,000は約43である、可能な順列を京。この数値については聞いたことがあるかもしれませんが、実際にはどのように計算されますか? 3x3x3ルービックキューブには6つの側面があり、それぞれに9つのステッカーがあります。ただし、ステッカーではなく(外部)ピースを見ると、6つの中央ピースがあります。8つの角の部分。12個のエッジピース。センターは移動できないため、計算ではそれらを無視できます。コーナーとエッジに関して: 8!8!8!あります!(40,32040,32040,320)の方法は、8つのコーナーを配置します。各コーナーには3つの方向がありますが、独立して方向付けできるのは7つ(8つのうち)だけです。第八/最終コーナーの向きは、所与の、先行7に依存37373^7(2,1872,1872,187)の可能性。 12個あります!12!212!2\frac{12!}{2}(239,500,800239,500,800239,500,80012面の縁部を配置する)方法。12!12!12!から半分に!これは、角が正確に一致するときに、エッジが常に偶数の順列にある必要があるためです。イレブンエッジが所定の第12 /最終的なエッジのフリップフロッ先行11に依存して、独立して反転することができる2112112^{11}(2,0482,0482,048)の可能性。 これをまとめると、次の式があります。 8!×37×12!2×211=43,252,003,274,489,856,0008!×37×12!2×211=43,252,003,274,489,856,0008!×3^7×\frac{12!}{2}×2^{11} = 43,252,003,274,489,856,000 出典:Wikipedia-ルービックキューブ順列 これはすでにかなり複雑に見えるかもしれませんが、3x3x3キューブの場合はまだかなり単純です。偶数キューブの場合、式はわずかに異なります。これは、たとえば4x4x4キューブの式です。 8!×37×24!2247=7,401,196,841,564,901,869,874,093,974,498,574,336,000,000,0008!×37×24!2247=7,401,196,841,564,901,869,874,093,974,498,574,336,000,000,000\frac{8!×3^7×24!^2}{24^7} = 7,401,196,841,564,901,869,874,093,974,498,574,336,000,000,000 これは、短いスケールで約7.40 quattuordecillionです。 また、より大きなNxNxNキューブ(つまり、現在の世界記録33x33x33)の場合、式はかなり拡張されます。ただし、この紹介を長くしすぎないように、代わりにこれらのリンクをここに配置します。ここでは、4x4x4キューブと他のサイズのNxNxNキューブの順列を結果の式で説明します。 2x2x2 4x4x4 5x5x5 6x6x6 7x7x7 33x33x33 あなたは今疑問に思っているかもしれません:に基づいた一般的な公式はありますか NNNの任意のためのNNN xはNNN xはNNNキューブ?確かにあります。NNN基づいてまったく同じ結果を与える3つの完全に異なるアルゴリズムを次に示します。 1:クリスハードウィックのフォーミュラ: (24×210×12!)N(mod2)×(7!×36)×(24!)⌊14×(N2−2×N)⌋(4!)6×⌊14×(N−2)2⌋(24×210×12!)N(mod2)×(7!×36)×(24!)⌊14×(N2−2×N)⌋(4!)6×⌊14×(N−2)2⌋\frac{(24×2^{10}×12!)^{N\pmod2}×(7!×3^6)×(24!)^{\lfloor{\frac{1}{4}×(N^2-2×N)}\rfloor}}{(4!)^{6×\lfloor{\frac{1}{4}×(N-2)^2}\rfloor}} WolframAlphaで試してみてください。 2:クリストファー・モウラの三角式: 8!×37×(24!(4!)6)14×((N−1)×(N−3)+cos2(N×π2))×(24!)12×(N−2−sin2(N×π2))×(12!×210)sin2(N×π2)×124cos2(N×π2)8!×37×(24!(4!)6)14×((N−1)×(N−3)+cos2⁡(N×π2))×(24!)12×(N−2−sin2⁡(N×π2))×(12!×210)sin2⁡(N×π2)×124cos2⁡(N×π2)8!×3^7×\left(\frac{24!}{(4!)^6}\right)^{\frac{1}{4}×((N-1)×(N-3)+\cos^2(\frac{N×\pi}{2}))}×(24!)^{\frac{1}{2}×(N-2-\sin^2(\frac{N×\pi}{2}))}×(12!×2^{10})^{\sin^2(\frac{N×\pi}{2})}×\frac{1}{24^{\cos^2(\frac{N×\pi}{2})}} WolframAlphaで試してみてください。 3:クリストファー・モウラの素数式: 212×(2×N×(N+7)−17−11×(−1)N)×3N×(N+1)+2×512×(2×N×(N−2)+1+(−1)N)×718×(6×N×(N−2)+3+5×(−1)N)×1114×(2×N×(N−2)−1+(−1)N)×9657718×(2×N×(N−2)−3+3×(−1)N)212×(2×N×(N+7)−17−11×(−1)N)×3N×(N+1)+2×512×(2×N×(N−2)+1+(−1)N)×718×(6×N×(N−2)+3+5×(−1)N)×1114×(2×N×(N−2)−1+(−1)N)×9657718×(2×N×(N−2)−3+3×(−1)N)2^{\frac{1}{2}×(2×N×(N+7)-17-11×(-1)^N)}×3^{N×(N+1)+2}×5^{\frac{1}{2}×(2×N×(N-2)+1+(-1)^N)}×7^{\frac{1}{8}×(6×N×(N-2)+3+5×(-1)^N)}×11^{\frac{1}{4}×(2×N×(N-2)-1+(-1)^N)}×96577^{\frac{1}{8}×(2×N×(N-2)-3+3×(-1)^N)} ここで、965779657796577は(13×17×19×23)(13×17×19×23)(13×17×19×23)です。 WolframAlphaで試してみてください。 出典:Cubers-reddit-位置の数、神の数などの数学的計算式 チャレンジ: 入力整数与えられており、これら三つの式(または独自の誘導体)のいずれかを選択し、実装NNNレンジでの[2,100][2,100][2,100]、正しい結果を出力します。 チャレンジルール: これら3つ以外の別の式を自由に使用できますが、これら3つが正しいことが証明されていることに注意してください。別の式を使用する場合は、元の式のリンクを追加してください(または、自分で計算する場合は、詳細な説明を追加してください)。そして、出力が正しい場合、範囲内のすべての整数をチェックします。おそらくインスピレーションは、このシーケンスA075152のoeisにあります。 あなたの言語が科学的な出力を自動的に出力する場合(すなわち、4x4x4式の後の数字の代わりに1.401 ... × 10451.401 ...×10451.401...×10^{45})、これは許可されます。ただし、コード内の式の実行中の浮動小数点精度による丸め誤差は許可されないため、この科学的な丸めを正確な出力に変換して、結果を検証できるように追加のコードを回答に追加してください-実際の結果は正確。 プログラム/機能は、範囲内の少なくとも入力の正しいあるべきである[ 2 …

2
銀行で出納係にお金を尋ねるにはどうすればよいですか?
銀行に行ってお金を引き出す必要があります。私は30ドル、インターネットのためにルームメイトに支払うために22ドル、洗濯のために8ドルを引き出す必要があります。これらはどちらも変更できないため、30ドルを2つのサイズの2つのパーティションに分割する必要があります。つまり、窓口係から30ドルの支払い方法を尋ねられた場合、リクエストを行う必要があります。20、5、5枚で欲しいと伝えることができました。しかし、私は自分の要求をできるだけシンプルにして、自分自身を繰り返さなくても済むようにします。リクエストをより簡単にするために、合計で8が暗示されているため、現金に20個と2個以上を含めるように依頼できますが、受け取った請求書の1つが1ドルの請求書であることを要求できます( 8)を作らずに29ドルを作ろうとするだけです。 だからそれはすべてうまくいきますが、私は銀行に行くたびにこの計算を行う必要があるので、私はこれを行うプログラムを書くと思いました(私のためにこれを行うプログラムを書いてください)。 プログラムまたは関数は、私が行う必要のあるすべての支払いを表す整数のリストと、銀行で利用可能な請求書の額面を表す整数のセットを取り、すべての方法で合計を行うように、額面の最小リストを出力する必要がありますこれには、金種のリストを支払いのリストに明確に分割することができます。 追加ルール 額面リストには常にaが含まれると想定するか、1各リストに自分で追加することができます。 一部の入力には、複数の最小限のソリューションがあります。これらの場合、どちらかを出力できます。 これはコードゴルフなので、回答はバイト単位でスコアリングされ、バイト数は少ない方が良いです。 テストケース Payments, denominations -> requests {22,8} {1,2,5,10,20,50} -> {1} or {2} {2,1,2} {1,5} -> {1} {20,10} {1,2,5,10,20,50} -> {} {1,1,1,1} {1,2} -> {1,1,1} {20,6} {1,4,5} -> {1} {2,6} {1,2,7} -> {2} {22, 11} {1, 3, 30, 50} -> {1, 3} {44, 22} …
35 code-golf  math 

22
FIFOキャッシュミスの数
この挑戦は本当に簡単です(そしてより困難な挑戦の前兆です!)。 リソースアクセスの配列(負でない整数で単純に示される)とパラメーターを指定するとn、キャッシュに容量がnあり、いっぱいになったときに先入れ先出し(FIFO)排出方式を使用すると想定されるキャッシュミスの数を返します。 例: 4, [0, 1, 2, 3, 0, 1, 2, 3, 4, 0, 0, 1, 2, 3] 0 = not in cache (miss), insert, cache is now [0] 1 = not in cache (miss), insert, cache is now [0, 1] 2 = not in cache (miss), insert, cache is …

26
交換資本金
2つの文字列を指定して、各文字列の大文字化パターンを他の文字列に転送します。最少バイトが勝ちます。 Input: CodeGolf xxPPCGxx Output: coDEGOlf XxppCgxx 両方の文字列は、文字a..zとのみで、同じ長さで空ではありませんA..Z。 入力に対して相対的な順序で、結果の2つの文字列を出力できます。 一対の文字列を、入力および/または出力用の文字以外の単一文字区切り文字を含む1つの文字列として表すことができます。 文字列は、文字のリストまたは1文字の文字列として表すことができますが、コードポイント値のシーケンスとしてではなく、これらが言語の単なる文字列である場合を除きます。 入力と出力では、文字列が異なる場合があります。 テストケース: CodeGolf xxPPCGxx -> coDEGOlf XxppCgxx lower UPPER -> LOWER upper MiXeD lower -> mixed LoWeR A A -> A A ABcd EfGh -> AbCd EFgh
35 code-golf  string 

30
それはたくさんのサルです
無限の猿定理の無限の時間を与えられた、ランダムな文字の無限ストリームを送信するマシンは常に任意のテキストを入力します、と述べています。 それは挑戦のための素晴らしいアイデアのように私には聞こえます。 プロセス 文字列Aをサル化するには、次の手順を実行する必要があります。 空の文字列を取得します。この文字列をBと呼びます。 一様にランダムな印刷可能なASCII文字(範囲0x20からまでの0x7E文字)を選択し、その文字をBに追加します。 AがBの部分文字列である場合、Bはサル化された文字列です。それ以外の場合は、AがBのサブストリングになるまでステップ2を繰り返します。 このプロセスは単なる例であり、言語によっては簡単な方法が存在する場合があります。同じ出力の分配が達成される限り、この方法に正確に従う必要はありません。 チャレンジ 妥当な形式の空でない文字列が与えられると、その文字列のサル化バージョンを返すプログラムまたは関数を作成します。 プログラムは、長さが3以下の入力に対してのみ実際に動作する必要があります。長い入力の場合、何も出力せずに早期に終了できます。 例 残念ながら、この質問のランダムな性質と大きな出力のために、この質問の例を作成するのは一種の困難です。 ただし、Hastebinのinputに1つの例を提供できhiます。 得点 これはcode-golfであるため、バイト数が最も少ない送信が勝ちます。

6
ニコマコスの定理を視覚化する
ニコママスの定理は、和の二乗を立方体の和に関連付けます。 美しい幾何学的な視覚化があります: 課題:この視覚化の2D部分をasciiで作成します。 すべての視覚的な境界が図によって維持されていることを確認する必要があります。これは4つの「色」で行うのが最も簡単ですが、3つだけで実現することもできます(方法については、最後の例を参照してください)。4色では、2つを使用して「ストリップ」内の領域(つまり、単一の立方体を構成する異なる部分)を区別し、2つを使用して隣接するストリップを区別します。必要に応じて、4色以上を使用することもできます。これのいずれかが混乱している場合は、以下の出力例で明確にする必要があります。 入出力 入力は0より大きい単一の整数です。出力は、上記の画像の入力番号の平坦化されたグリッドに対応する、以下の例に類似したASCIIグリッドです。先頭と末尾の空白は問題ありません。 これは標準的なルールを備えたコードゴルフです。 サンプル出力 N = 1 # N = 2 #oo o@@ o@@ N = 3 #oo+++ o@@+++ o@@+++ +++### +++### +++### N = 4 #oo+++oooo o@@+++oooo o@@+++@@@@ +++###@@@@ +++###@@@@ +++###@@@@ oo@@@@oooo oo@@@@oooo oo@@@@oooo oo@@@@oooo N = 5 #oo+++oooo+++++ o@@+++oooo+++++ o@@+++@@@@+++++ +++###@@@@+++++ +++###@@@@+++++ +++###@@@@##### oo@@@@oooo##### …

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