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

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

14
イースターバニーを描く
この幸せな人は、民間伝承ではイースターバニーとして知られています。 色 4色を使用して作成されます。 淡いピンク 暗いピンク 白い ブラック (あなたの答えでこれらの色が近似されていることを嬉しく思います。この正確な色合いである必要はありません) 形 これらの形状で構成されています。 明るいピンク色の2つの背の高い楕円(外耳)。それらは同じ高さと幅を持っています。 濃いピンク色の2つの背の高い楕円(内耳)。それらは外耳よりも小さく、それぞれの外耳の上に描かれています。それらは同じ高さと幅です。 明るいピンク色の大きな円(頭)。両方の外耳の下3分の1と交差します(ただし、それ以上ではありません)。 白の2つの円(外側の目)。彼らは頭に描かれています。それらの直径は、外耳の幅より小さい。外耳と同じ水平位置にあります。 黒の2つの円(内側の目)。彼らは外の目よりも小さな直径を持っています。外側の目にはそれぞれ1つずつ描かれています。 黒の1本の垂直線(上口)。それは頭に描かれ、外側の目の底よりも低くなっています。それは各目からほぼ等距離にあります。 黒の2つの円弧(下の口)。それらは頭に描かれ、水平線から下向きに弧を描きます。両方とも上口の底と交差しますが、一方は右に進み、もう一方は左に行きます。 ルール 好きな言語とツールを使用します。 出力は、画像、html、svg、またはその他のマークアップです。 これはコードゴルフですので、最小バイト数で実行することを目指してください。 結果のスクリーンショットを含めてください。 定義された色に近づけてください。 イースター、おめでとう!

2
エラー検出自己修復プログラム
あなたの仕事は、1つの文字が削除された場合、どの文字が削除されたかを検出し、削除された文字を独自のソースファイルに再挿入するプログラムを作成することです。 たとえば、プログラムがにRadiationHardened変更された場合、プログラムはRadiaionHardened5バイト目(0インデックス)が変更されたことを出力し、プログラムソースはRadiationHardened実行直後でなければなりません。 注意事項と規則 実行前に、ソースコードで1文字だけが削除されたと仮定することができます。変更されていないプログラムの動作は未定義です。 変更されたバイトは、転置、挿入、または置換ではなく、削除されると想定できます。 同じ文字の複数の実行の場合、実行の最初または最後のインデックスを報告できますが、使用するものについては一貫性があります。たとえば、baaad削除されるとbaad、1または3(ゼロインデックス)のいずれかを報告できますが、プログラム全体で同じである必要があります。 ソース全体を独自のファイルに書き出す必要はありません。削除されたバイトを再挿入するだけです。 耐放射線強化されたクインの典型的なルールとは異なり、プログラム自身のソースコードの読み取りから変更されたバイトを検出することは公正なゲームです。 適切な形式で、変更されたバイトインデックスを出力できます。0インデックス付きか1インデックス付きか、その他の表記法について一貫性を保ちます。テンプレート文字列内に数値を出力することもできます。 これはコードゴルフなので、最短のプログラムが勝ちます。 幸運を! EDIT1:要件を置換から削除に変更しました EDIT2:重複の実行のルールを追加

2
この装飾カレンダーの上には何がありますか?
誰かが私の妻に4つの立方体で構成される装飾的なカレンダーをくれました。ここでは、今日の日付(このチャレンジの投稿時点)が前面に表示されています。 最初に見たとき、私は間違った角度(真上から)からそれを見て、なぜこの情報を与えたのか理解できませんでした: [["February", "January"], [3], [7], ["Monday", "Tuesday"]] あなたの仕事は、2019年の任意の日付のエラーを再現することです。 チャレンジ 2019年から任意の日付を取り、上部に表示されるものを出力するプログラムまたは関数を作成します、その日付がカレンダーの前面から外に向かって表示されるときにすべてのキューブのにます。 これは、すべてのキューブの6つの側面すべてです。を表示するに6は、9逆さまにします。0上下対称なので、0逆さまにはまだです0。一部の日付には複数の正解がある場合があります(たとえば、月の11日にはキューブを使用する方法が複数ある0ため)、任意の正解を出力できます。 ルール 標準的な抜け穴は禁止されています。 入出力形式は柔軟です。 出力はキューブごとに並べる必要がありますが、キューブ内ではありません。順序は、最初に月キューブ、次に2つの数値キューブ、次に平日キューブの順にする必要があります。ただし、キューブの上部に2つの要素がある場合、これらの2つの要素はどちらの順序でもかまいません。 必要に応じてJanuary、December0〜11または1〜12に置き換えることができます。 必要に応じて曜日を0〜6または1〜7に置き換えることができ、週を開始するには次のいずれかSundayまたはMonday(しかし、あなたは他の日には週に開始することはできません-これはPPGCある、ではないいくつかの並べ替えクレイジータウンの。) これはコードコルフですです。各言語の最少バイト数が優先されます。 説明が奨励されました。 テストケース (Tue) 2019-01-29 [[ "July", "August" ], [3], [7], [ "Thursday", "Wednesday" ]] [[ "August", "July" ], [3], [7], [ "Wednesday", "Thursday" ]] etc. since the order within each cube …
14 code-golf 

7
磁石の周りの鉄の粒子
ボード上に鉄の粒子がいくつかあります。そのボードに電流が流れるワイヤーを通すと、粒子が円を形成します。入力がワイヤの位置である場合、これらの円を表示します。 ボードをサイズ7x7のグリッドと見なします(固定) 余分な空白は許可されません。 入力は0インデックスまたは1インデックスにすることができます。(例では0インデックス) 例 input:3,3 # 'X' is wire here but can be shown by anything other than '\/|-' output: /-----\ |/---\| ||/-\|| |||X||| ||\-/|| |\---/| \-----/ input:1,2 output: |/-\||| ||X|||| |\-/||| \---/|| -----/| ------/ ------- input:0,0 output: X|||||| -/||||| --/|||| ---/||| ----/|| -----/| ------/ input:0,3 output: |||X||| ||\-/|| …

22
英語をコーパスに翻訳
コーパスは、一般的なビデオゲームから架空の派閥あるWarframeやや興味深い言語を持っています。 グリニアのようなゲーム内の他の派ionsには言語の背後にあるロジックがありますが、コーパスは単に英語の不可逆的な代替物です。 すべてのコーパスの単語は、次のアルファベット順のマッピングを除き、英語の対応する単語と同じです。 これにより、発音に関するいくつかの問題が発生します。 yesなっyey sayなっyay yayなっyay sassyなっyayyy caseなりましたyaye マッピングのテキストバージョンは次のとおりです。 a -> a b -> t c -> y d -> p e -> e f -> t g -> j h -> k i -> i j -> t k -> k l -> p m -> s n …

6
バケットを埋める
あなたの仕事は、与えられた入力までの数でバケットを埋めることです。 ルール 番号は、左端の位置、次に右端、次に左端などを占有します。 オーバーフロー後、同様の方法でバケットの周りに数字が集まり始めます。それらは斜めに位置を占めます。 例では、予想される出力が何であるかを明確にする必要があります(いくつかの規則は例で言及されています)。 10以上の場合は、右端の数字を使用します 例: The bucket: | | or | | | | | | | | | | | | | | |------| |______| input:1 (You can start from either 0 or 1) output: | | (There can be whitespace to the left even if there …

19
お菓子はどれくらい食べられますか?
TNBのGeobitsのアイデアの功績 ポスト十分な詳細なしでは最近、面白いゲームを仮定しました: 2人の子供がキャンディーの前に座っています。キャンディの各部分は、1と番号付けされるxと、xキャンディ本の合計量です。各番号のオカレンスは1つだけです。 ゲームの目標は、子供たちがキャンディーを食べ、食べたキャンディーの値を掛けて最終スコアを獲得し、より高いスコアを獲得することです。 しかし、元の投稿ではキャンディーの選択方法などの重要な情報が欠落していたため、ストーリーの子供たちは、年長の子供が最初に行き、キャンディーの半分まで食べることができると決めましたが、ターンの終わりを発表すると、彼は心を変えることはできません。 このゲームの子供の一人はキャンディーが好きではないので、彼はできるだけ食べたくないので、父親が一度コードを書くのを見たことがあり、それから得たスキルを使ってキャンディーの量を計算できると考えていますできるだけ少ない量を食べながら、勝利を確実にするために食べる必要があります。 チャレンジ キャンディの総数を考えると、xプログラムまたは関数はn、相手が残りのキャンディをすべて食べたとしても、勝利を確実にするために食べる必要があるキャンディの最小量を出力する必要があります。 当然のことながら、数字が大きいほど数字が大きくなるので、どんな量を与えても、n最大の数字を食べます。 ルール xこれからもずっと正の範囲の整数あなたの言語の数処理能力の上限であります0 < x! <= ll 子供は常にn最大の数を食べることが保証されています、例えば、x = 5とn = 2、彼は食べる4と5 テストケース x = 1 n = 1 (1 > 0) x = 2 n = 1 (2 > 1) x = 4 n = 2 (3 * 4 == 12 …

25
サンプルの標準化(zスコアの計算)
浮動小数点数のリストが与えられたら、それを標準化します。 詳細 リストx1,x2,…,xnx1,x2,…,xnx_1,x_2,\ldots,x_nれる標準場合の平均すべての値が0であり、標準偏差はこれを計算する1つの方法は、第1の平均を計算することによってであるμμ\muと標準偏差σσ\sigmaとして μ=1n∑i=1nxiσ=1n∑i=1n(xi−μ)2−−−−−−−−−−−−√,μ=1n∑i=1nxiσ=1n∑i=1n(xi−μ)2, \mu = \frac1n\sum_{i=1}^n x_i \qquad \sigma = \sqrt{\frac{1}{n}\sum_{i=1}^n (x_i -\mu)^2} , 及びその後すべて置き換えることにより標準化を計算するxixix_i用いてxi−μσxi−μσ\frac{x_i-\mu}{\sigma}。 入力に少なくとも2つの異なるエントリが含まれると仮定できます(これは、σ≠0σ≠0\sigma \neq 0を意味します)。 一部の実装ではサンプル標準偏差を使用しますが、これはここで使用しているσσ\sigma標準偏差σとは異なります。 すべての些細な解決策にCWの答えがあります。 例 [1,2,3] -> [-1.224744871391589,0.0,1.224744871391589] [1,2] -> [-1,1] [-3,1,4,1,5] -> [-1.6428571428571428,-0.21428571428571433,0.8571428571428572,-0.21428571428571433,1.2142857142857144] (これらの例はこのスクリプトで生成されています。)

13
コンピューター暗号
前書き: 私は子供の頃にコンパイルしたドキュメントにさまざまな暗号を保存しており、チャレンジに最も適していると考えたものをいくつか選んで(些細ではなく、難しくもありません)チャレンジに変換しました。それらのほとんどはまだサンドボックス内にあり、それらすべてを投稿するのか、それともほんの少数を投稿するのかはまだわかりません。しかし、ここで最初のものを始めます。 Computer Cipherは、指定されたテキストを指定されたの「ランダムな」文字グループに暗号化しますlength。そのようなグループに数字が含まれている場合、その数字を使用して、暗号化された文字の独自のグループにインデックスを付けます。グループに数字がない場合、最初の文字が使用されることを意味します。 たとえばthis is a computer cipher、指定された長さのテキストを暗号化したいとしましょう5。これは潜在的な出力です(注:次の例では、番号は1から始まります)。 t h i s i s a c o m p u t e r c i p h e r (without spaces of course, but added as clarification) qu5dt hprit k3iqb osyw2 jii2o m5uzs akiwb hwpc4 eoo3j muxer z4lpc 4lsuw …

5
実生活での活用
@アダムの Dyalog APLは拡張、⍢オペレータ手段(下)コンジュゲーションを:次につの機能は、第二の機能、最初の逆を適用します。共役の観点から実際のアクションを考えるのは楽しいです: 問題はgによって別のドメインに変換され、そこでfによってより簡単に解決された後、元のドメインに変換されます。実生活の例は「麻酔下」です。 apply anesthetics perform surgery wake up from anesthetics チャレンジ 行の逆gはに「un」が付加されg、その逆も同様です。s"under"として、その順序でその間の逆行を定義しますs。f入力の各行ごとに: もし f、両方の発生およびその逆の、何もしません f他のアクションの「下」にない場合、印刷f fがlineの「下」にある場合g、f + " under " + gwhere +is concatenationを出力します。 入力 スペースと小文字で構成される空でない複数行の文字列、または文字列のリストなど(代わりに大文字を使用できます)。正確に1行は「un」で始まります。他の行の逆になります。空の行はありません。 出力 入力と同じ形式、または標準I / Oで許可されている形式で出力します。 テストケース: Input: apply anesthetics perform surgery unapply anesthetics Output: perform surgery under apply anesthetics Input: unite asia establish …

8
単語を文字で囲みます
「アウトライン」という現在の課題の目的で、単語は最後の文字から始めて独自の文字で連続して囲み、最後に中央の元の単語をスペースで置き換えることを意味します。 oooooo onnnno on -> on no onnnno oooooo 仕事: 小文字および/または大文字の英字のみで構成される単語のリストが与えられた場合、各単語の輪郭を描き、ブロックの中央に垂直に配置された単一スペースの列で区切られたすべての結果のブロックを横に並べて表示します。 完全なプログラムまたは関数を作成できます。 入力: 単語のリスト、または必要に応じて-スペースまたはその他の記号で区切られた文字列 出力: アウトラインされた単語のブロックのASCII表現。先頭または末尾の空白は許可されます。 テストケース: Input 1: ["code", "golf"] (or "code golf") Output 1: cccccccccccc gggggggggggg cooooooooooc goooooooooog coddddddddoc gollllllllog codeeeeeedoc golfffffflog code edoc golf flog codeeeeeedoc golfffffflog coddddddddoc gollllllllog cooooooooooc goooooooooog cccccccccccc gggggggggggg Input 2: ["I", "am", …

5
MITの教授にはAPが必要です!
5カードの手品には、アシスタントが表示された4枚のカードと隠されたカードをこの順番で与えるマジシャンが関与し、マジシャンは隠されたカードを推測する必要があります。 警告:以下の解決策!今すぐ出発するか、それで甘やかされてしまいます。 ソリューション ここでのコツは、5枚のカードが特定の順序で与えられることです! c1、。。。、c5c1,。。。、c5c_1,...,c_5は、指定された順序の5枚のカードです。 バツnバツnx_nのカード番号であるで(番号順)。cncnc_nNO = [ A、2,3,4,5,6,7,8,9、T、J、Q、K ]NO=[A、2、3、4、5、6、7、8、9、T、J、Q、K]NO=[\text{A,2,3,4,5,6,7,8,9,T,J,Q,K}] a + ba+ba+b、カード番号、、整数では、カード番号に等しい右側のステップで最初に、ラッピング必要に応じ。aaabbbbbbaaaNONONO snsns_nのスーツであるにおける(スーツオーダー)。cncnc_nSO=[♣,♢,♡,♠]SO=[♣,♢,♡,♠]SO=[\clubsuit,\diamondsuit,\heartsuit,\spadesuit] a∘ba∘ba\circ b、カード番号とされるスーツでは、カード番号とカードを表し、とスーツ。aaabbbaaabbb a<ba<bab(とはカード)は、が偽の場合に真になります。aaabbba<ba<bac>a&2\\\hline a>ba&3\\\hline acbb>c&6\\\hline\end{array} 5カードの手品の解決策は問題です:c5=(x1+PI(c2,c3,c4))∘s1c5=(x1+PI(c2,c3,c4))∘s1c_5=(x_1+PI(c_2,c_3,c_4))\circ s_1 チャレンジ ここまでは順調ですね。ただし、上記で指定した計算を実行することは、すでにここで求められています。代わりに、5枚のカードを特定の順序で指定せずに適切に注文することが課題です。これは、出力の最初の4枚のカードが5枚目を表すことを意味します。言い換えれば、アシスタントになります。要件: s5=s1s5=s1s_5=s_1。 x5=x1+PI(c2,c3,c4)x5=x1+PI(c2,c3,c4)x_5=x_1+PI(c_2,c_3,c_4)(つまり、これは可能でなければならない)。 例 setを考えてみましょう7H,2D,6D,5C,6C。まず、25ペアを取得します。 7H,7H 7H,2D 7H,6D 7H,5C 7H,6C 2D,7H 2D,2D 2D,6D 2D,5C 2D,6C 6D,7H 6D,2D 6D,6D 6D,5C 6D,6C 5C,7H 5C,2D 5C,6D 5C,5C 5C,6C 6C,7H 6C,2D 6C,6D …

6
文言電卓
英語の数字計算機の単純なバージョン 仕事 入力として文字列を受け取り、式の結果を出力するプログラムを作成します。 ルール 入力文字列は、数字ではなく言葉で表現されます。 括弧はありません。 計算の順序は、除算、乗算、減算、加算の順になります。 同じ操作の場合、左から右に計算する必要があります。 すべての入力番号は-999〜999の整数になります(両方を含む)。 出力は任意の範囲の整数になります。 除算は常に完全に割り切れ、ゼロは分母にはなりません。 入力の大文字と小文字の制限はオプションです。入力の有効性を確認する必要はありません。 数値形式 0 to 20 -> zero,one,two...nineteen,twenty 21 to 99 -> twenty one,twenty two.....ninety eight,ninety nine 100 to 999 -> one hundred, one hundred one, one hundred two...one hundred ten....two hundred fifty....nine hundred ninety eight,nine hundred ninety nine 負の数の場合:minusその正の同等物に追加 …
14 code-golf 

2
せっかちな可分性テスト
あなたの仕事は、ある数値が別の数値で割り切れるかどうかを判断するプログラムまたは関数を書くことです。キャッチは、数字のすべての数字が与えられていなくても、できるだけ早く答えを出すべきだということです。 あなたのプログラムは、整数とるべきD ≥2と、入力として一連の数字を。これらは、整数、別の数字を表すN個の最下位桁から始まる、1≥。最初の時点でいることをNのどちらかがしなければならないか、してはならないことでdivisbleもD、あなたのプログラムの出力すべき適切な解答して終了します。入力の終わりに到達した場合、完全なNがDで割り切れるかどうかを出力する必要があります。 Nの受け入れ可能な入力形式のリストを次に示します (含まれないものを許可する必要があると思われる場合はコメントを残します)。 標準入力:数字は別々の行に表示されます。 入力の終わりはEOFまたは特別な値です。 exitは、関数が戻るか、プログラムが終了することを意味します。 アナログ入力:キーストロークや各桁を表す10個のボタンなど。 入力の終わりは特別な値です。 exitは、関数が戻るか、プログラムが終了することを意味します。 グローバル状態の関数:連続した数字で繰り返し呼び出されます。 入力の終わりは特別な値です。 exitは、関数がnull以外の値を返すことを意味します。グローバル状態を使用する場合は、値が返された後、または関数が複数回機能するようにリセットした後にクリアする必要があることに注意してください。 Curried function:次の数字または値で呼び出される別の関数を返します。 入力の終わりは特別な値であるか、引数なしで関数を呼び出します。 exitは、関数が別の関数ではなく答えを返すことを意味します。 GUIプロンプトなど:繰り返し表示されます。 入力の終わりは「キャンセル」または同等の値、または特別な値です。 exitは、プロンプトが表示されなくなることを意味します。 イテレータ関数:入力は、呼び出されたときに次の数字を返すステートフルオブジェクトまたは関数 です。入力の終わりは例外または特別な値です。 exitは、反復子の呼び出しが停止することを意味します。 Dの入力と出力は、任意の受け入れ可能な標準方法を使用できます。 テストケース: 2; 6 => true 5; 6 => false 20; 0 3 => false 20; 0 4 => true 100; 1 => false 100; 0 …

16
ASCIIアートを切り刻む
ASCIIアートがあるとしましょう: ___ ,"---". : ; `-.-' | | | | | | _.-\_/-._ _ / | | \ _ / / `---' \ \ / `-----------' \ /,-""-. ,-""-.\ ( i-..-i i-..-i ) |`| |-------| |'| \ `-..-' ,=. `-..-'/ `--------|=|-------' | | \ \ ) ) hjw / / …

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