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

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

11
バイナリ時間は何ですか?
バイナリ時間は何ですか? 誰もが通常時が何であるかを知っています。画面の右上(またはどこに置いても)にあります。しかし、人々がめったに自問しない質問はこれです。バイナリ時間は何ですか? バイナリ時間 バイナリ時間(True Binary Time)は、最初に数値の最上位ビット(MSB)を読み取ることで機能します。その数がの場合、0表現される時間は正午までです。その数がの場合、1表現される時間は正午以降です。次のビットは、1日の半分を、最初のビットがさらに2つの等しい半分に分割します。今回は6時間です。次のビットは3時間、次の90分などに分割されます。のような時代は12:00:00、どちらでもないはずのようになり1ます。 私はこの奇妙なタイミングのシステムしか理解できないので、私のためにそれに変換するプログラムが必要です。ただし、2進数は2進数であり、2は小さい数なので、プログラムはできるだけ短くする必要があります。 必要条件 プログラムは、入力(24時間制)として時間を取り、対応するバイナリの時間数を出力する必要があります。 出力番号は16ビット精度である必要があります(番号は16桁である必要があります)。 すべての変換を行うビルトインを使用することはできません。 丸くする必要がある場合は床を張る必要があります。 ルール 標準的な抜け穴は禁止されています。 プログラムはに何も書き込まないでくださいSTDERR。 テストケース 00:00:00==> 0000000000000000 12:00:00==> 1000000000000000 01:30:00==> 0001000000000000 10:33:06==> 0111000010001101 09:57:30==> 0110101000111000 06:00:00==> 0100000000000000 18:00:00==>1100000000000000 得点 先に述べたように、勝つためには最小バイト数が必要です。 提出 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language Name, N bytes N提出のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: # Ruby, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティーを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 # Perl, 43 + …

11
出現回数でソートされたカラーカウント
これは説明するのが簡単で、これは以前はゴルフではなかったとは信じられませんでした。 特定の画像(言語でサポートされている形式)に対して、一意の色を見つけて、色のリストを出力します。 カラーコードを16進数のRGBで印刷します。これは、ハッシュ記号の#後にRに2桁、Gに2桁、Bに2桁が続きます(#xxxxxxxは0〜9、AFおよびafのいずれかです)。 16進コードの後に​​は、スペースと10進数のピクセルカウント、改行(\nまたは\r\n)が続きます。 リストは、カウントの降順(最上部の最も頻繁な色)でソートされます。 同点の場合(同量の2色)、順序は重要ではありません。 画像には透明度が含まれないため、アルファ値は重要ではありません。アルファ値は出力の一部ではない場合があります。 4000x3000の画像サイズをサポートする必要があります(タイプ定義に関係する場合があります) サンプル画像「10red 20blue 30black 40white」: 期待される出力: #FFFFFF 40 #000000 30 #0000FF 20 #FF0000 10 サンプル画像「青のグラデーション」: 期待される出力の1つ(同じ色の順序は異なる場合があるため): #718DFF 19 #5571FF 15 #3855FF 11 #8DAAFF 11 #1C38FF 7 #AAAAFF 7 #8D8DFF 6 #AAC6FF 6 #C6C6FF 5 #C6E2FF 4 #001CFF 3 #E2E2FF 3 #FFFFFF 3 @Luis …

9
CRC32ハッシュの計算
クレジット このチャレンジは@milesから始まりました。 入力文字列のCRC32ハッシュを計算する関数を作成します。入力は、任意の長さのASCII文字列です。出力は、その入力文字列のCRC32ハッシュになります。 説明 CRC32と他のCRCのアルゴリズムは基本的に同じであるため、ここではCRC3のみを示します。 まず、生成多項式があります。これは実際には4ビットの[n + 1]整数です(CRC32では33ビットになります)。 この例では、生成多項式は1101です。 次に、ハッシュされる文字列があります00010010111100101011001101。この例ではになります。 00010010111100101011001101|000 (1) append three [n] "0"s 1101 (2) align with highest bit 00001000111100101011001101|000 (3) XOR (1) and (2) 1101 (4) align with highest bit 00000101111100101011001101|000 (5) XOR (3) and (4) 1101 (6) align with highest bit 00000011011100101011001101|000 (7) XOR (5) …

16
配列内の最小グループ
前書き 次の配列を見てみましょう。 [1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1] グループは、互いに隣接して同じ桁で構成されています。上記の配列には、5つの異なるグループがあります。 [1, 1, 1, 2, 2, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1] 1, 1, 1 2, 2 1, 1, 1, 1 2, 2, 2 1, 1, 1 これらの最小グループはです[2, 2]ので、出力します[2, …

16
最短の固有部分文字列
(STDINでは、コマンドライン引数として、または関数引数として)2つの異なる空ではない文字列を指定し、2番目の部分文字列ではない最初の文字列の最短部分文字列を見つけて返します。そのような部分文字列が存在しない場合は、空の文字列を返すか、元の文字列の部分文字列ではない文字列を返すか、例外をスローできます。関数から戻る場合、この場合はnull(または未定義、Noneなど)を返すこともできます。複数のこのような部分文字列が最短で結び付けられている場合、それらのいずれかを返すことができます。 文字列は、印刷可能な任意のASCII文字で構成できます。 STDINで指定された入力は、各行に1つの文字列で指定されます。リクエストに応じて、入力の最後に単一の空行を追加できます。 これはコードゴルフであるため、最短の有効なプログラムが勝ちます。 いくつかのテストケース 入力: STRING ONE STRING TWO 出力: E 入力: A&&C A&$C 有効な出力: && &C 入力: (2つのランダムに生成された80文字の文字列) QIJYXPYWIWESWBRFWUHEERVQFJROYIXNKPKVDDFFZBUNBRZVUEYKLURBJCZJYMINCZNQEYKRADRYSWMH HAXUDFLYFSLABUCXUWNHPSGQUXMQUIQYRWVIXGNKJGYUTWMLLPRIZDRLFXWKXOBOOEFESKNCUIFHNLFE すべての有効な出力: AD BJ BR CZ DD EE ER EY EY FF FJ FW FZ HE IJ IN IW JC JR JY KL KP KR KV LU MH MI …
14 code-golf  string 

3
円グラフを作成する
課題は簡単です。 多数の入力値に基づいて円グラフを作成します。 入力は正の数、10進数または整数のリストになり、出力は円グラフになります。各入力値は別々の色で表され、各領域の外側のパーセンテージ値になります。 ルール: 色は視覚的に区別できる必要があります(正確な色はオプションです) 少なくとも2つ、最大10の入力値があります 円の半径は[100 300]ピクセル 範囲内である必要があります デフォルトの出力が[100, 300]ピクセルの半径を与える限り、ベクターグラフィックスは問題ありません パーセント値は整数でなければならない パーセント値をどこに配置するかという厳密な規則はありませんが、どの領域に属するかを簡単に確認する必要があります 最も近い文字と円の外縁の間の距離は、[5, 40]ピクセル範囲内である必要があります フォントはオプションです プロットには、各領域を分離する黒い線がある場合とない場合があります 円グラフを作成するために作成された関数、たとえば、MATLAB:pie、Python:matplotlib.pyplot.pieおよびMathematica:PieChartは使用できません 通常の丸め規則(の場合は上(1.00, 0.5]、の場合は下(0.5, 0.00)) スライスのパーセント値がより小さい場合0.5%、output 0%。スライスはまだプロットに含まれている必要があります。 試験用のプロット(または通訳へのリンク)を提供してください。10個の入力値を持つプロットのみを表示するだけで十分です(非常に長い回答を避けるため) 例 以下のサンプル値を使用してください。数値リストコンバータを使用して、リストを適切な形式に変換できます。たとえば、jimmy23013によるこの27バイトです。 x = [0.3, 1.2] x = [3, 6, 2, 10] x = [0.4387, 0.3816, 0.7655, 0.7952, 0.1869, 0.4898, 0.4456, 0.6463, 0.7094, 0.7547]

6
ASCIIアートマヤの数字
この挑戦は簡単です。数値を指定して、Mayan Base-20数字システムを使用して、数値のascii-art表現を出力します。 マヤシステムとは何ですか? マヤ人は20を基数を格納するため、最初の位置は1sプレイス、次は20sプレイス、そして400 sなど。 したがって、マヤの数1は110を底にしています10が、実際に20は10を底にしてい207ます807等のベース10、中... そして、彼らは数字を絵文字として表し、特別な記号を付けました0。 ------------------- | | | | | | | | | | |-------------------| | | | | ------------------- それは彼らのゼロでした。(少なくともpicascii半分私の芸術のアスキーアート版の半分) これはマヤのゼロ記号の実際の図です。1 これは彼らの5つでした: -------------------------------- | | -------------------------------- そして4: ---- ---- ---- ---- | | | | | | | | | | | | | | …


4
重力の切り替え
チャレンジ 合理的な方法で、入力としてプレーン上の文字のASCIIアート表現が提供されます。これには以下のみが含まれます。 [a-z]可動文字を表します。すべての手紙は、せいぜい一度だけボードに表示されます。 # 不動の壁を表す . 空きスペースを表す 例えば: abcdef.gh#.. .......ij.#. #..#.......# ...#.#...### .#.......#q# .........### 重力の変化を表す文字列も与えられます。これには以下のみが含まれます。 > 右向きの重力への変化を表す < 左向きの重力への変化を表す ^ 上向きの重力への変化を表す v 下向きの重力への変化を表す 例えば: v>^ プログラムは、すべてのキャラクターが動きを止める(壁や他のキャラクターにぶつかる)まで、重力の各変化を順番にシミュレートする必要があります。「マップの端から落ちる」キャラクターは永久に削除され、キャラクターは互いの上に「積み重なる」ことができます。 この例では、開始時に(下向きの重力があるv)のでc、e、g、h、i、及びj地図の底から落ちます。他のすべてのキャラクターは壁にぶつかるまで下にスライドし、マップは次のようになります。 .........#.. a..d......#. #..#.f.....# .b.#.#...### .#.......#q# .........### 次に、右方向の重力(>)にa進みますd。これにより、次のようになります。 .........#.. ........ad#. #..#......f# ..b#.#...### .#.......#q# .........### 最後に、我々は(上向きの重力をシミュレートし^ている間に、)aおよびbマップ脱落。 .........#.. .........d#. #..#......f# ...#.#...### .#.......#q# .........### あなたの仕事は、重力シフト後に残りのキャラクターを出力することです。任意の順序で指定できます。この例では、の任意の順列を出力できますdfq。 テストケース 次のマップの場合: …
14 code-golf 

6
未ソート配列にセミソートを挿入
PPCG Incの最初の日へようこそ。最新のジュニアアシスタントドキュメントソーターとして、送信されたすべてのドキュメントがアルファベット順にアーカイブされていることを確認する責任があります。猿ができるのはとても簡単です。まあ、比phor的に言えば、私たちはそれを行うために猿を雇ったのです。何だと思う?サルはアルファベットを理解していないことがわかります。とにかく、今の混乱を修正する時間がないので、状況を悪化させないようにしてください。その後、それを取得します!おなかがすいたら、ウォータークーラーのそばにバナナがあります。幸運を! 仕事内容 入力 文字列のリスト(アーカイブ)と、そのリストに追加する必要のある文字列(ドキュメント)を受け取ります。 すべての文字列には、大文字、小文字、スペースのみが含まれます 文字列は常に文字で始まり、文字で終わる 仕事 ドキュメントのターゲット位置を決定します:アーカイブ内で受け取るべき位置。目標位置は次のように決定できます。 各ポジションについて: 文書内のアルファベット順で、その位置の前のアーカイブ内の文字列の量を数えます 文書内のアルファベット順で、その位置の後のアーカイブ内の文字列の量を数えます 上記の2つのカウントの合計としてポジションのスコアを定義します ドキュメントの目標位置は、最高スコアの位置です 同点の場合、最高スコアのすべてのポジションがターゲットポジションとして等しく有効です。1つだけを選択する必要があります。 ソートする場合: 大文字と小文字は同等です 文字の前にスペースが来る 出力 任意の形式でドキュメントが追加されたアーカイブ または 0ベースまたは1ベースのインデックスでのドキュメントのターゲット位置 職務評価 最少バイトが勝ちます! I / Oの例 Archive: Applebuck Season Friendship is Magic The Ticket Master Griffon the BrushOff Boast Busters Bridle Gossip Document: Dragonshy Position scores (0-based index): 0: …

7
インデックス付きフラクタルを描く
前書き この課題では、2×2マトリックスに次のようにインデックスが付けられます。 0 1 2 3 フラクタルのようなパターンのファミリーを定義しますF(L)。ここでLは、nこれらのインデックスの長さリストであり、F(L)size を持ちます。2n-1 × 2n-1 の場合L == []、F(L)は1×1パターン#です。 の場合L != []、F(L)次のように構築されます。ましょう最初の要素が削除されたPから取得されたパターンになりますL。ピリオドで満たされたサイズの4つのグリッドを取得し、インデックス付きのグリッドをパターンで置き換えます。次に、グリッドの間にハッシュの1つの層を使用してグリッドを接着します。以下に4つのケースの図を示します。2n-1-1 × 2n-1-1.L[0]P# L[0]==0 L[0]==1 L[0]==2 L[0]==3 #... ...# ...#... ...#... [P]#... ...#[P] ...#... ...#... #... ...# ...#... ...#... ####### ####### ####### ####### ...#... ...#... #... ...# ...#... ...#... [P]#... ...#[P] ...#... ...#... #... ...# …

5
樹木的に満足する点集合を特定する
arborally満足点セットは、対角としてセット内の2点を用いて形成することができる任意の軸に整列長方形のために、その矩形が少なくとも一つの他の点を含む、または接触、ように点の2次元集合です。ウィキペディアの同等の定義を次に示します。 次のプロパティが成り立つ場合、ポイントセットはアーボリーに満たされていると言われます:両方が同じ水平線または垂直線上にないポイントのペアについて、最初の2つのポイント(内部または境界のいずれか)。 次の図は、長方形がどのように形成されるかを示しています。この長方形は少なくとも1つ以上の点を含む必要があるため、この点集合は樹木学的に満たされていません。 ASCIIアートでは、このポイントセットは次のように表すことができます。 ...... ....O. ...... .O.... ...... 少し変更することで、これを十分に満足させることができます。 ...... ....O. ...... .O..O. ...... 上記では、すべての長方形(そのうちの1つだけ)には少なくとも3つのポイントが含まれていることがわかります。 樹木学的に満たされるより複雑な点集合の別の例を次に示します。 2点にまたがって描画できる長方形の場合、その長方形には少なくとも1つの他の点が含まれます。 チャレンジ (私が表す点の長方形のグリッド所与O)および空のスペース(私はと表す.)、出力truthyのそれがarborally満たされる場合、値、またはfalseyのそうでない場合、値。これはコードゴルフです。 追加のルール: 文字Oを選択して、.印刷可能な他のASCII文字のペアと交換することができます。プログラムが使用する文字マッピングを指定するだけです。 グリッドは常に長方形になります。末尾の改行を使用できます。 その他の例 満足している: .OOO. OO... .O.OO .O..O ....O ..O.. OOOO. ...O. .O.O. ...OO O.O. ..O. OOOO .O.O OO.. ... ... ... ... ..O ... O..... O.O..O .....O OOO.OO …

7
ひもを風車に変える
このサイトのコードは急速に枯渇しています。再生可能なストリングに投資する必要があります。そのため、文字列を取得して風車に変換するプログラムを作成する必要があります。 チャレンジ 簡単な風車のひもを例に取りましょう。文字列を取りますabc。ピボットは、この場合、中央の文字、ですb。文字列は3文字の長さであるので、すべての出力は次のようになります正確に背の高い3行3つの文字幅。手順1の出力を次に示します(空白に注意してください)。 abc 次のステップに進むには、ピボットを中心に各文字を時計回りに回転させます。これがステップ2です。 a b c 手順3〜8は次のとおりです。 a b c a b c cba c b a c b a c b a そして、9番目のステップで、元の文字列に完全な円を描きます。 abc bずっと同じ場所に留まったことに注意してください。これはb、ピボット文字であるためです。入力として文字列を受け取り、プログラムが終了するまでこのシーケンスを繰り返し出力するプログラムまたは関数を作成する必要があります。 明確化 すべての入力文字列の文字数は奇数です。(すべての風車がピボットを持つように) チャレンジを簡単にするために、すべての文字列には大文字と小文字のアルファベットのみが含まれます。 出力はlen(input_string)文字の幅と高さでなければなりません。 永遠に回転とループを続ける限り、シーケンスのどのステップから始めても構いません。 より多くのテストIO: 投稿はすでにかなり長いため、「windmill」の出力へのリンクを次に示します。 サイドノート: これは風車であるはずなので、小さな時間遅延または各ステップ間のユーザー入力でアニメーション化するボイラープレートコードを含めると素晴らしいでしょう。ただし、一部の言語には時間の組み込み機能がないため、これは必須ではありません。提出物の競合部分は、できるだけ早くシーケンスを印刷できます。

2
Snake Parserを作成してください!
ヘビは次のようになります。 >>>v @ ^ v ^ >>>^ v ^ v ^<<<<<<<<< この場合のように、ヘビは自分自身を横切ることができます: @ ^ >^>v ^<< クロスオーバーを有効にするには、両側のキャラクターが同じ方向に移動している必要があります。の場合 @ >^v ^< 不明確で無効と見なすことができます。 出力はWASD、先頭から末尾に向かうことを表す文字列です(@)。 バックトラックせず、あいまいでもないヘビを考えると、ヘビがとる動きの文字列を出力するプログラムを作成できますか? これはコードゴルフなので、最短の回答が勝ちます! テストケース: (注:@はにない任意の文字に置き換えることができますv^<>) 入力: >>>>v v v<< @ v ^ >>>>>^ 出力: ddddssaassdddddww 入力: @>>v ^ v ^ v ^<<< 出力: dddsssaaawww 入力: >>>v v @ v …

1
ASCIIアートを生成する
入力として合理的なロスレス形式の白黒画像が与えられた場合、可能な限り入力画像に近いASCIIアートを出力します。 ルール 改行とASCIIバイト32-127のみを使用できます。 入力画像はトリミングされ、画像の周囲に余分な空白がないようにします。 提出は、5分以内にスコアリングコーパス全体を完了することができる必要があります。 生のテキストのみが許容されます。リッチテキスト形式はありません。 スコアリングで使用されるフォントは20ポイントのLinux Libertineです。 出力テキストファイルは、以下で説明するように画像に変換される場合、入力画像と同じサイズである必要があり、いずれかのサイズで30ピクセル以内に収まります。 得点 これらの画像はスコアリングに使用されます: ここから画像のzipファイルをダウンロードできます。 このコーパス用に提出を最適化するべきではありません。むしろ、同様の寸法の任意の8つの白黒画像に対して機能するはずです。投稿がこれらの特定の画像に最適化されていると思われる場合、コーパス内の画像を変更する権利を留保します。 スコアリングは次のスクリプトを介して実行されます。 #!/usr/bin/env python from __future__ import print_function from __future__ import division # modified from http://stackoverflow.com/a/29775654/2508324 # requires Linux Libertine fonts - get them at https://sourceforge.net/projects/linuxlibertine/files/linuxlibertine/5.3.0/ # requires dssim - get it at https://github.com/pornel/dssim import PIL import PIL.Image …

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