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

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

5
チョコレートの数字
与えられたmことにより、nチョコレートバー、m,n正、出力にバーを破るには、いくつかの方法mn、各ブレークがグリッド線に発生した1枚で1。 順序が重要です。ピースも区別できるため、1 x 3のチョコレートバーの両端の2つのピースは同等ではありません。 たとえば、2 x 2ブロックの場合: _ _ _ _ _ _ _ _ |_‖_| -> |‗| |_| -> |_| |‗| -> |_| |_| |_‖_| |_| |_| _ |_| _ _ |_| |_| |_| _ _ _ _ _ _ _ _ |_‖_| -> |_| |‗| -> |‗| |_| …

11
再帰的な2x2行列式
2行2列の行列式 a b c d によって与えられad - bcます。 次元2 n x 2 n、n≥1 の数字の行列が与えられた場合、単一の数に達するまで各2 x 2サブブロックの行列式を再帰的に計算することにより得られた結果を出力します。 例えば、与えられた入力 3 1 4 1 5 9 2 6 5 3 5 8 9 7 9 3 1つのステップの後、以下を取得します。 (3*9 - 1*5) (4*6 - 1*2) = 22 22 (5*7 - 3*9) (5*3 - 8*9) 8 …

6
時間を文字列に変換する
問題 ある日、あなたの上司があなたに近づき、時間を知る必要があると言います。彼はあなたがあなたの頭の真上の時計を指さした後も主張し続け、彼は重度の計算力障害を持っていると告白します。数字を見ることができない人がどのように会社を経営できるのか疑問に思っている間、彼は「それについて何かをする」ように言っています。 ここでのタスクは、入力時間に時間と分(秒はオプション)(時間は24ベース)が与えられ、数字を含まない読みやすい英語の文を出力するプログラムまたは関数を作成することです。 秒を出力する必要はありません。 たとえば、08:45:15出力する必要がありますquarter to nine o'clock AM テストケース 00:00:00 > twelve night 12:00:00 > twelve noon 06:00:00 > six o'clock AM 18:00:00 > six o'clock PM 06:15:00 > quarter past six o'clock AM 18:45:00 > quarter to seven o'clock PM 11:30:00 > half past eleven o'clock AM 13:22:00 …

8
誰がフットボールの試合に勝つつもりですか?
アメリカンフットボールのチャンピオンシップであるスーパーボウル50は、本日11時30分(UTC)に開催されます(オンラインでライブ視聴できます)。この挑戦はそれを祝うためになされました。 アメリカンフットボールの試合では、2つのチームが最も多くのポイントを獲得するために競い合い、これらのポイントを獲得する6つの方法があります。それぞれに略語を付けます: フィールドゴール - FG:3ポイント タッチダウン - TD:6ポイント 追加ポイント - XP:1ポイント-タッチダウンの直後にのみ得点できます。 2ポイントの変換 - XD(追加のポイントと同様ですが、より幸せです):2ポイント-タッチダウンの直後にのみ得点できます。 安全性 - S:2ポイント フェアキャッチキック - FCK:3ポイント(非常にまれなプレー) これらの6つの略語のみを大文字と小文字の両方で含む1行の文字列を取り込むプログラムまたは関数を記述します。 この文字列は、フットボールの試合(または試合の一部)のすべてのスコアリングイベントを表し、大文字の用語は1つのチームに属し、小文字の用語は他のチームに属します。 あなたの仕事は、ゲームの最終スコアを報告し、フォームの出力で勝った人を示すことです [score 1] [to] [score 2] どこ: [score 1] 大文字と小文字のどちらが勝つかに関係なく、常に2つのスコアの大きい方(等しくない場合)です。 [score 2] 2つのスコアのうち小さい方(等しくない場合)。 [to]でTO、あれば大文字のチームウォンto小文字のチームが勝った場合、およびToそれがタイだ場合。 例:スーパーボウルXLIXのすべてのスコアリングイベントは 、文字列で要約できます。 TDXPtdxpTDXPtdxpfgtdxpTDXPTDXP ここで、大文字はニューイングランド・ペイトリオッツ、小文字は シアトル・シーホークスです。パトリオットは28点、ホークス24点を獲得したため、出力は次のようになります。 28 TO 24 ノート プログラム/関数は、空の文字列を含む任意の入力をサポートする必要があります。 XPおよびのXD直後にのみ発生しますTD。xpおよびのxd直後にのみ発生しますtd。 特定の場合に、入力文字列が開始または終了するとは限りません。 入力と出力の両方で、オプションで単一の末尾の改行を使用できます 得点 …

8
らせん順列
自然数を長方形の渦巻きにまとめることができます: 17--16--15--14--13 | | 18 5---4---3 12 | | | | 19 6 1---2 11 | | | 20 7---8---9--10 | 21--22--23--24--25 しかし、今では長方形のグリッド上にそれらを持っているので、別の順序でスパイラルを巻き戻すことができます。 17 16--15--14--13 | | | 18 5 4---3 12 | | | | | 19 6 1 2 11 | | | | 20 7---8---9 10 | …

18
n番目の相互代替和を見つける
単一の正の整数の入力が与えられた場合、その整数に対応する「相互代替和」を出力します。 入力の例を見てくださいn=5。交互の合計を見つけるには、まず、幅と高さの正方形のグリッドを作成し、n左から右、上から下に向かって読み取り、1各位置で開始し、1ずつ増加します。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 次に、グリッドから「クロス」を形成する(つまり、両方の対角線を組み合わせた)合計を取得します。 1 5 7 9 13 17 19 21 25 1 5 7 9 13 17 19 21 25 最後に、このシーケンスの交互合計を取得します。 1+5-7+9-13+17-19+21-25 -11 n=6(偶数の場合に十字がどのように見えるかを示すためだけの)別の例n: …

6
Glyphoプログラムを翻訳する
有効なGlyphoプログラムの入力があれば、その「人間が読み取れる」対応物を出力します。 グリフォは興味深いエソランのアイデアです: 命令のリファレンスはここにあります。各命令の文字abcdは、各命令を構成するシンボルを表します。aは最初の一意のシンボル、bは2番目の一意のシンボルなどを指します。 aaaa ..... n NOP - no operation; do nothing aaab ..... i Input - push input onto top of stack aaba ..... > Rot - pops top stack element and pushes to bottom of stack aabb ..... \ Swap - swaps top two stack elements aabc ..... …

4
爆発する猫!
チャレンジ lengthの文字列入力を受け取るプログラム/関数を作成しますn。 置くkth場所、空間の中心に文字をk = (n+1)/2。これがグラウンドゼロの位置になります。 残りの非空白文字をグラウンドゼロの周りにランダムに配置します。チャーからのピタゴラスの距離はを超えてはなりませんn。 結果を出力します。 説明が必要な場合は、以下の例を参照してください。 ルール 標準的な抜け穴が適用されます! I / Oは文字列の形式である必要があります。 グラウンドゼロに配置する中央の文字を確保するために、入力は常に奇数になります。 すべての有効な出力は、ゼロ以外の確率で発生するはずです。 これはcode-golfです。バイト単位の最短コードが勝ちます! 例 入力: qwert グラウンドゼロから発生する爆発の境界(xのマークは、残りの文字の有効な場所です): x xxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxexxxxx xxxxxxxxx xxxxxxxxx xxxxxxxxx xxxxxxx x 出力例: t r q e w

4
言語は何ですか?
最近、PPCG設計リーダーボードは、回答htmlヘッダーの解析に問題を抱えています。 この課題では、回答ヘッダーの解析で独自のショットを取ります。 テストケースの例 これらの例入力(NOT実際のテストケース)、ちょうどので、あなたが入力が方法のアイデアを得ることが可能かもしれないようなことを Input: <h1>Python 3, 32 bytes</h1> Desired Output: Python 3 Input: <h1>JavaScript, 13 chars / 32 bytes</h1> Desired Output: JavaScript Input: <b>VeryBadlyFormattedHeader v3 : (32 bytes)</b> スペック あなたのプログラムは150バイト以下でなければなりません 回答ヘッダーのhtmlの行が表示されます。言語を正常に抽出するには、最善を尽くす必要があります。入力にはユニコード文字が含まれる場合があります。 出力ケースが重要です。 テスト Github Gistとテストケース 1行に1つのテストケースがあります。形式は次のとおりです。 <lang_name> - <rest_of_the_line_is_the_header> 得点 あなたのスコアは: Number Correct ---------------- Total Number (これはパーセントです) タイブレーカーは最も短いコードです。

2
2進数で4進数の虚数の基数を出力する
2進数として表示されるクォーター虚数ベースを出力する関数またはプログラムを作成します。基数は2 iで、iは-1の平方根です。iの詳細については、複素数を参照してください。各実数部と虚数部は前の実数部と虚数部の-4倍であるため、各桁の位置は0〜3(4進)になります。:バイナリでの四桁の数字は次のとおりであり、、&。0: 001: 012: 103: 11 桁位置の内訳: re im 16 -8i -4 2i 1 -0.5i, etc. 4 0 1 0 3 0 0 (quaternary representation) 01 00 11 00 00 (binary representation) 数100110000は1x16 + 3x-4 = 16 + -12 = 4です。 re im 16 -8i -4 2i 1 -0.5i, etc. …

5
ビットコインで2016年の鉱山!PCG.SE新年のパズル2016
ビットコインプロトコルでは、2016年は非常に特別な数字です。ハッシュを見つけて新しいブロックを作成する「難易度」は、2,016ブロックごとに調整され、2週間に1回の変化を概算します。 この数値が選択された理由は、難易度が調整されて、すべてのブロックが見つかるまで約10分かかり、2週間で2×7×24×6 = 2,016の10分の期間があるためです。 この数値の偶然の一致を記念して、今年の新年の問題はビットコイン、具体的にはブロックに署名するために使用するハッシュアルゴリズムSHA-256についてです。 あなたの仕事は含んでSHA-256ハッシュを生成すること(お好みの形式で)Aナンスのバイトバイト(少なくともASCII)で入力と出力を取るプログラムを作成することで2016、その中にbase64で元に追加するときの表現をバイト入力。 以下は、人々がすでに生成したエンジンとそれらが生成したハッシュのおかげで、有効なソリューションの例です。 > foo Nonce: 196870 SHA256 hash: OCUdDDtQ42wUlKz2016x+NROo8P2lbJf8F4yCKedTLE= > bar Nonce: 48230 SHA256 hash: CNcaOCQgT7bnlQzQPXNwuBu8/LYEdk2016khRaROyZk= > happynewyear Nonce: 1740131 SHA256 hash: XsKke6z2016BzB+wRNCm53LKJ6TW6ir66GwuC8oz1nQ= > 2016 Nonce: 494069 SHA256 hash: rWAHW2YFhHCr22016zw+Sog6aW76eImgO5Lh72u6o5s= (note: the nonces don't actually have to be ASCII numbers; you can do any byte …

1
交差点での排他的エリアの検索
これは一見難しい挑戦的なジオメトリパズルです。 円与えられA、及びn他の円B[n]内に含まれる全面積見つけるAではない任意の円内をB。 コードはできるだけ短くする必要があります。 入力 入力には次の情報が含まれている必要があります。 circleの半径を表す浮動小数点数A。 の円の半径を表す浮動小数点数のリストB。 の円の中心のリストB。プログラムでは、極座標またはデカルト座標のいずれかの中心を想定している場合があります。 オプションで、nBの円の数を受け取ることができます。この入力は必須ではありません。 円の中心がA原点、つまり点であると想定され(0, 0)ます。 の2つの円Bが同一ではないことが保証されますが、すべてのB交差する円A、すべての中心Bが外側A、または2つの円がB互いに交差しないことは保証されません。ソリューションがさまざまなエッジケースを処理できることを確認します。 入力は任意の順序で、テキスト入力(stdinまたは同等の言語を介して)、関数パラメーター、またはコマンドライン引数の形式で受け取ることができます。 テキスト入力の受信を選択した場合、入力の間に1文字または2文字の印刷可能なASCII区切り文字が必要です。 出力 プログラムまたは関数Aは、の円のいずれにも属さない総面積を表す単一の浮動小数点数を出力する必要がありますB。回答は、すべてのテストケースで少なくとも3つの有効数字に対して正確でなければなりません。 一般的なコードゴルフ規則が適用されます。 ソリューションは、円内のサンプリングポイントに依存して領域を決定しないでください。 円の交差点を自動的に見つける、円の交差点内の領域を見つける、またはこの問題をすぐに解決する組み込み機能は許可されていません。 テストケース 各画像で、円のA輪郭は青で、円のB輪郭は緑、黒で塗りつぶされています。返されるべき領域は赤で塗りつぶされています。 (私のソリューションをチェックしてくれたRainer Pに感謝します) テストケース1: A = {x: 0, y: 0, rad: 50} B[0] = {x: 0, y: 0, rad: 100} Result: 0.00 テストケース2: A = {x: 0, y: 0, rad: …

14
ASCIIアーチの構築
私はアスキーアートが好きで、退屈することが多いので、アスキーキャラクターを見つけて、ランダムなもの、8ビットマリオ城、迷路、アーチを作り始めました。アーチを簡単にきちんと積み重ねることができることがわかりました。 ╔═══════╗ ║╔═════╗║ ║║╔═══╗║║ ║║║╔═╗║║║ ╨╨╨╨─╨╨╨╨ チャレンジ プログラム(関数)、または0以上の整数を受け入れ(ボーナスを行っていない場合)、指定されたアーチの量でasciiアートを出力する他の標準形式を作成します。 テストケース 入力: 7 出力: ╔═════════════╗ ║╔═══════════╗║ ║║╔═════════╗║║ ║║║╔═══════╗║║║ ║║║║╔═════╗║║║║ ║║║║║╔═══╗║║║║║ ║║║║║║╔═╗║║║║║║ ╨╨╨╨╨╨╨─╨╨╨╨╨╨╨ Alt: +-------------+ |+-----------+| ||+---------+|| |||+-------+||| ||||+-----+|||| |||||+---+||||| ||||||+-+|||||| ||||||| ||||||| --------------- 入力: 1 出力: ╔═╗ ╨─╨ Alt: +-+ | | --- 整数が0の場合、何も出力しません この質問はutf-8で、各文字は「バイト」としてカウントされます これはcodegolfなので、最短の答えが勝ちます。 の+-+代わりに╔═╗、の---代わりに╨─╨、およびの|代わりに使用するオプションがあります║ おまけ プログラムが負の数をサポートし、そのようにアーチを反転させる場合、-10% ╥╥╥╥─╥╥╥╥ ║║║╚═╝║║║ ║║╚═══╝║║ …

8
連結されたシーケンスを並べ替える
f(n) = f(n-1)+f(n-2)で始まる再帰関係に基づくシーケンスを考えf(1) = x1, f(2) = x2ます。の場合x1 = 2, x2 = 1、シーケンスは次のように始まります。 2 1 3 4 7 11 18 29 47 76 123 199 322 521 843 これを文字列に連結すると、次のようになります。 213471118294776123199322521843 ここで、このリストをを与える最小の数に分割しますy(n) > y(n-1)。最初の番号から始めて、2番目の番号から始めます。最初の出力番号は常に1桁でなければなりません。最後の数字に必要な数のゼロを埋め込みます。 2 13 47 111 829 4776 12319 93225 218430 (x1, x2)任意の便利な形式で、入力として2つの数値を取得します。課題は、ソートされたリストを出力することです。 ルール: 機能とプログラムはOK 初期シーケンスには、正確に15個の数字が必要です(最後の数字はf(15))。 x1そして、x2負ではありません(ゼロも可能です)。 出力は任意の便利な形式にすることができます 出力ベクトルyは、次のように作成する必要がありますy2 …

3
アーベル注文
いくつかの背景 数学では、グループは、タプル(あるG、•)Gがセットされ、•上の操作であるG任意の二つの要素になるようにX及びYにおけるG、X • yは、でもあるGは。 いくつかのために、X、Y、ZにおけるG次のように、塩基性基公理です。 Gは•の下で閉じられます。つまり、Gのx • y 演算は連想的です。つまり、x •(y • z)=(x • y)• z Gには恒等要素があります。つまり、すべてのx に対してx • e = xとなるようにGにeが存在します 演算は反転可能です。つまり、Gにはa • bが存在し、a • x = yおよびy • b = xとなる さて、それらはグループです。ここで、Abelianグループをグループ(G、•)として定義し、そのようにして•は可換演算です。つまり、x • y = y • xです。 最後の定義。グループの順序(G、•)。G |は、セットGの要素数です。 仕事 アーベルの次数は整数nであるため、次数nのすべてのグループはアーベルです。アーベルの注文の順序は、OEISのA051532です。あなたの仕事は、整数nが与えられると、このシーケンスのn番目の項(1-indexed)を生成することです。何もオーバーフローしないように、最大​​整数までの入力をサポートする必要があります。 入力は、関数の引数、コマンドラインの引数、STDIN、または便利なものから取得できます。 出力は、関数から返されるか、STDOUTに出力されるか、便利なものであれば何でも可能です。STDERRには何も書き込まないでください。 スコアはバイト数で、最短の勝ちです。 例 シーケンスの最初の25項は次のとおりです。 1, 2, …

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