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

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

7
神経カエルの解読
神経カエルの解読 Puzzling.SEがついに両生類に取り付かれた暗号を解読したので、それを解読するプログラムまたは関数を書きましょう! (パズルを台無しにする前に見たい場合は、今すぐ上記のリンクをクリックしてください。) 暗号の仕組み 神経症カエルでO ughtへのRel AのX M UD浴場(略して「神経症カエル」)は、すべての文字は、1つのまたは2つの単語として暗号化されています。 イタリック体でない単語の長さは文字を表します。 neurotic => 8文字=> H frogs => 5文字=> E perpendicular => 13文字= M 斜体を含む単語は次の単語を変更し、斜体の単語の長さが奇数の場合は10を追加し、斜体の単語の長さが偶数の場合は20を追加します。単語の一部またはすべてを斜体にすることができます。斜体の単語の後には、常に非斜体の単語が続きます。 *o*ught to =>奇数、2 => 12 => L lo*u*nging calms =>偶数、5 => 25 => Y 平文のすべての単語は暗号文の文に対応し、平文のすべての文は暗号文の段落に対応します。 入力形式 プログラムまたは関数は、MarkdownでフォーマットされたメッセージをNeurotic Frogsで入力します。入力は、印刷可能なASCIIと改行のみで構成されます。 単語は、正規表現に一致する文字の連続です[A-Za-z0-9']。 数字と文字はどちらも単語の長さにカウントされます。QB64を表しDます。 注:アポストロフィは単語の長さにカウントされません。ではなくをIsn't表します。DE 斜体の文字は、一対のアスタリスク(*letters*)で囲まれています。 1つ以上の連続した文字を、単語全体(masseus*es*、*all*)までイタリック体にすることができます。単語内の複数の非連続文字も斜体にすることができます(g*e*n*e*rates)。 斜体は、複数の単語にまたがったり、句読点を含めたり、アポストロフィを含めたりすることはありません。 ペアになっていないアスタリスクと複数の隣接するアスタリスクは発生しません。 句読点は次の文字のいずれかです.,?!:;-()"。 文内の単語は、1つ以上の句読点文字および/または単一のスペースで区切られます。例:*all* …

20
休戦の日チャレンジ
今日、11月11日は、追memの日、休戦の日、または退役軍人の日(国によって異なります)として知られ、軍隊のメンバーとそのサービスに対する反省と感謝の日です。第一次世界大戦で。の単純なASCIIアート出力を使用して、それについて考えてみましょう11/11。 入力与えられn、出力のASCII技術の演出11/11即ちn単位身長。具体的には、それぞれ1が垂直パイプ||で構成され、スラッシュがスラッシュで構成され//、各文字が2つのスペースで区切られています。これは、出力幅を変えることを意味することに注意してください。たとえば、n=3以下のように、スラッシュの「下」は1左から2スペースですが、1右から4スペースであるため、スラッシュの上部が適切に整列し、1その右側に2つのスペースがあります。 n = 1 || || // || || n = 2 || || // || || || || // || || n = 3 || || // || || || || // || || || || // || || n = 4 || || // || || || …

23
ストリング距離
チャレンジ すべて小文字の文字列[a-z]を入力すると、文字間の合計距離が出力されます。 例 Input: golf Distance from g to o : 8 Distance from o to l : 3 Distance from l to f : 6 Output: 17 ルール 禁止されている標準的な抜け穴 これはコードゴルフです -バイト単位の最短回答が勝ちです。 アルファベットは、どちらの方向からでも横断できます。常に最短パスを使用する必要があります。(すなわち、距離xとはc5です)。 テストケース Input: aa Output: 0 Input: stack Output: 18 Input: zaza Output: 3 Input: valleys Output: 35

1
円のリストが与えられたら、最小の包含長方形の面積を出力します
半径のリストが表示されます。すべてが収まる最小の長方形の領域を出力する必要があります。 たとえば、リスト[5,3,1.5]を指定すると、が出力されます157.460。 これは画像です: 幅は15.7460、高さは10なので、面積は157.460です ルール: stdinまたは関数の引数を使用してリストを取得し、stdoutまたは関数の戻りを使用して回答を出力します。 半径は、最大で小数点以下2桁です。 リストの長さは2〜6です。 出力は、小数点以下3桁以上の精度である必要があります。 必要な場合、π= 3.1416。 テストケース: [5,3,1.5] = 157.460 [9,4,8,2] = 733.431- ここで働いています。 [18,3,1] = 1296.000 バイト単位の最短コードが優先されます。

12
二重回転
チャレンジの説明 アルファベットの最初の部分のすべての文字を一方向に循環させ、アルファベットの後半の文字をもう一方の方向に循環させます。他のキャラクターはそのままです。 例 1:Hello world Hello_world //Input Hell ld //Letters from first half of alphabet o wor //Letters from second half of alphabet _ //Other characters dHel ll //Cycle first letters w oro //Cycle second letters _ //Other characters stay dHelw_oroll //Solution 2:codegolf codegolf c deg lf o o f …
28 code-golf 

30
手紙フィボナッチを印刷する
与えられたN(2 <= N)、印刷Nのこのような手紙フィボナッチ数列のラインを(すなわちN = 5)まず、で始まるaとb: a b 次に、2行を追加します。 a b ab 最後の2行を追加し続けます。 a b ab bab 立ち止まるな... a b ab bab abbab これで完了です。 Remmeber、これはcode-golfなので、バイト数が最も少ないコードが優先されます。

17
ハロウィーン用のASCII-O'-ランタンを描く
ハロウィーンはほとんどここにあります。その後、ほとんどの人は中空の砂糖の食事から離れなければなりません。 正の整数を取り込むプログラムを作成します。整数が31(1から30)未満の場合、ハロウィーンを楽しみにしているかのように右を見て、このASCII-art jack-o'-lanternを出力します。 _____I_____ | | | | | | | | | |^| |^| | | | | |^| | | | | |VvVvV| | |_|_|_|_|_|_| 入力が 31(ハロウィーンがオンになっている10月の日付)の場合、同じASCII-o'-lanternを出力しますが、左を見てください: _____I_____ | | | | | | | | |^| |^| | | | | |^| | | | | |VvVvV| …

17
空のスクラブルボードを描く
標準的なスクラブルボードは、レタータイルを配置するための15×15グリッドのスペースです。ほとんどのスペースは空白ですが、一部は二重単語スコア(ピンク)、三重単語スコア(赤)、二重文字スコア(水色)、三重文字スコア(青)です。通常、真ん中に星があります(ダブルワードスコアとしてカウントされます)。 標準の空のスクラブルボードをASCII形式で出力するプログラムまたは関数を記述します。 . 空のスペースを表します D ダブルワードスコアを表します T トリプルワードスコアを表します d 二重文字のスコアを表します t 3文字のスコアを表します X 中心の星を表します つまり、正確な出力は T..d...T...d..T .D...t...t...D. ..D...d.d...D.. d..D...d...D..d ....D.....D.... .t...t...t...t. ..d...d.d...d.. T..d...X...d..T ..d...d.d...d.. .t...t...t...t. ....D.....D.... d..D...d...D..d ..D...d.d...D.. .D...t...t...D. T..d...T...d..T オプションで、末尾の改行が続きます。 バイト単位の最短コードが優先されます。

30
プライムカウント機能
前書き プライムカウント機能もPiの関数としても知られている、、以下の素数の量を返すまたはXに等しいです。π(x )π(バツ)\pi(x) チャレンジ あなたのプログラムは、正と仮定できる整数xを取り、x以下の素数に等しい単一の整数を出力します。これはコードゴルフチャレンジなので、勝者はバイト数が最も少ないプログラムになります。 この課題が発生する前に存在する限り、任意の言語を使用できますが、言語に組み込みの素数カウント関数または素数チェック関数(Mathematicaなど)がある場合、その関数はコードで使用できません。 入力例 入力: 1 出力: 0 入力: 2 出力: 1 入力: 5 出力: 3 A000720-OEIS

8
みんなでより多くを達成
(関連:one、two、three) アクロスティックは、各行の先頭の文字は、縦に読んだとき、また言葉やメッセージを生成どこ書き込み/詩のスタイルです。例えば、 Together Everyone Achieves More またTEAM、最初の列が垂直に読み取られたときに単語を綴ります。 アクロスティクスは、メソスティックのサブセットであり、垂直方向の単語は水平方向の単語のどこにでも配置できます。たとえば、TEAM上記の例は、次のように中間語としても記述できます。 togeTher everyonE Achieves More 他のいくつかのバリエーションとともに。 ここでの課題は、入力語の特定のリストからアクロスティックまたはメソティックを生成することです。 入力 任意の適切な形式の単語のリスト。 リストには小文字で作成された単語のみが含まれます[a-z]。 リストは、アクロスティックまたはメソスティックを形成することが保証されています(偽の入力を処理する必要はありません)。 入力内の単語の1つが垂直方向の単語を形成し、残りが水平方向の単語を作成します。ここでの課題の一部は、適切な垂直方向の単語を見つけることです。 出力 入力ワードから形成され、STDOUTに書き込まれた、または返された、妥当な形式のASCIIアートのアクロスティックまたはメソスティック。 対応する縦の単語は大文字にする必要があります(例のように)。 縦書きの単語を適切に並べるための先行スペースが必要です。末尾のスペース、および先頭/末尾の改行はオプションです。単語が正しく整列する限り、余分な先頭のスペースも問題ありません。 アクロスティックとメソスティックの両方が可能な場合は、アクロスティックのみを出力します。 複数のアクロスティック/メソスティックが可能な場合、コードはそれらの一部またはすべてを出力できます。 ルール 完全なプログラムまたは機能のいずれかが受け入れられます。 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。 例 ['together', 'team', 'everyone', 'achieves', 'more'] Together Everyone Achieves More ['aaa', 'aaa', 'aaa', 'aaa'] Aaa Aaa Aaa # One output, or …

13
05AB1Eでのゴルフのヒント
アドナンが作成したゴルフ言語である05AB1Eでのコードゴルフのヒントはありますか? ヒントは、少なくとも05AB1Eに固有のものでなければなりません。 回答ごとに1つのヒントを投稿してください。
28 code-golf  tips 

7
英語の複合化
複合語は、2つ以上の単語が含まれる単語です。ただし、それよりもうまくいくことができます。すべての単語を含む1つの(意味のない)単語を作成する必要があります。 ただし、この単語はできるだけ短くする必要があります。重複する文字を使用してこれを実現できます。 たとえば、単語リストがの場合、["cat", "atom", "a"]を返し"catom"ます。 入出力 プログラムでは、単語のリストを入力として受け取り、複合語を出力として返す必要があります。 Googleによると、使用する単語リストは英語の上位10000単語です(このリストが簡単すぎると判明した場合は、もっと長いものに変更する可能性があります)。参考までに、各単語を追加するだけで65888のスコアが得られます。 スコアは最終単語の文字数であり、低いほど良いです。タイブレーカーは最初のポスターに行きます。

26
これはスミス番号ですか?
チャレンジの説明 スミス数である複合その和桁の素因数の桁の和の合計に等しい数。整数を指定してN、それがスミス数かどうかを判断します。 最初の数スミス番号は4、22、27、58、85、94、121、166、202、265、274、319、346、355、378、382、391、438(シーケンスA006753 OEISで)。 サンプル入出力 18: False (sum of digits: 1 + 8 = 9; factors: 2, 3, 3; sum of digits of factors: 2 + 3 + 3 = 8) 22: True 13: False (meets the digit requirement, but is prime) 666: True (sum of digits: 6 + 6 …

27
ビット反転順列
目標は、整数nが与えられた整数の範囲のビットを反転する関数またはプログラムを作成することです。言い換えると、インデックスがゼロの2 n個のアイテムの範囲のビット反転順列を検索する必要があります。これは、OEISシーケンスA030109でもあります。このプロセスは、FFTのインプレースCooley-Tukeyアルゴリズムなど、高速フーリエ変換の計算でよく使用されます。また、長さが2の累乗であるシーケンスのFFTの計算にも課題があります。 このプロセスでは、範囲[0、2 n -1] を反復処理し、各値をバイナリに変換し、その値のビットを反転する必要があります。各値を基数2のn桁の数値として処理します。つまり、反転は最後のnビットの間でのみ発生します。 たとえば、n = 3の場合、整数の範囲はです[0, 1, 2, 3, 4, 5, 6, 7]。これらは i Regular Bit-Reversed j 0 000 000 0 1 001 100 4 2 010 010 2 3 011 110 6 4 100 001 1 5 101 101 5 6 110 011 3 7 111 …

12
ゼロ配当
チャレンジの説明 すべての正の整数nには、すべてので始まりすべてで終わる10進数などで111...10...000割り切れる形式の数値が存在します。これは証明するのが非常に簡単です:(すべての)の形で異なる数のセットをとる場合、少なくとも2つは(鳩の巣の原理による)除算後に同じ剰余を与えます。これらの2つの数値の差は、割り切れ、希望する形式になります。あなたの目的は、この番号を見つけるプログラムを書くことです。n10n+1111...1111nn 入力説明 正の整数。 出力の説明 のようなp形式の数。複数ある場合は、それらのいずれかを表示します(最小のものである必要はありません)。111...10...000p ≡ 0 (mod n) ノート プログラムは妥当な時間内に答えを出さなければなりません。つまり、総当たり攻撃は許可されていません。 p = 0 while (p != 11..10.00 and p % n != 0) p++ どちらでもありません: do p = random_int() while (p != 11..10.00 and p % n != 0) の形式で数字を繰り返す11..10..00ことは許可されます。 プログラムは、任意の大きさの入力を処理する必要はありません-上限は、言語の上限になります。 サンプル出力 2: 10 3: 1110 12: 11100 …

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