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

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

2
半透明のボックスを描く
注:文字列アートは、SEフォントの奇妙さのためにここで恐ろしく見えるかもしれません:P :( 長方形の角を表す4つのタプルのリストが与えられたら、半透明の長方形をこの順序で重ねて描画します。 この課題では、左上隅の座標が最小で、x軸が右に増加し、y軸が下に増加する必要があります。 4タプル(x0, y0, x1, y1)またはは、長方形の左上隅と右下隅の座標ペアを(x0, x1, y0, y1)表し(x, y)ます(長方形には2つの形式のいずれかを選択できますが、一貫性が必要です) 「半透明の長方形」とはどういう意味ですか?さて、この課題では、スペース文字とほとんどのボックス描画文字を使用します。具体的には、「太字」の文字を含む長方形の描画に使用されるすべてのもの。半透明の長方形が描画されると、最初に占有されているスペース内のすべての細い線が消え、すべての太線が細くなり、次に長方形自体が太線で描かれます。 たとえば、左上に長方形を描き、次に右下に長方形を描くと、次のようになります。 ┏━━━━┓ ┃ ┃ ┃ ┃ ┃ ┏━━╇━━┓ ┃ ┃ │ ┃ ┗━╉──┘ ┃ ┃ ┃ ┃ ┃ ┗━━━━━┛ 明確にするために、厳密に長方形内のすべての線の線を明るくします(太字->細い->なし)(たとえば、下向きの線は上端では影響を受けますが、下端では影響を受けません)。 テストケース 各テストケースについて、入力のいくつかの行が与えられ、その後にunicode-artが続きます。 0 0 5 5 5 5 10 10 3 3 7 7 2 2 8 …

19
自己陶酔的な配列要素
定義 配列の自己陶酔的1整数は、算術平均よりも厳密に高いため、隣人よりも優れていると考えています。 ネイバーは次のように定義されます。 整数がインデックス0(最初)にある場合、その隣接要素はリストの最後と2番目の要素です。 整数が最初でも最後でもない場合、その隣接要素はすぐ隣の2つの要素です。 整数がインデックス-1(最後)にある場合、その隣接要素はリストの最後から2番目と最初の要素です。 仕事 整数の配列が与えられたら、あなたの仕事は自​​己陶酔的なものを捨てることです。 整数は、正、負、またはゼロにすることができます。 配列には少なくとも3つの要素が含まれていると想定できます。 すべての標準ルールが適用されます。これはcode-golfであるため、バイト単位の最短コードが優先されます。 例 配列を検討してください[6, 9, 4, 10, 16, 18, 13]。その後、次の表を作成できます。 エレメント| 隣人| 隣人の平均| 自己陶酔的ですか? -------- + ------------ + ------------------ + --------- -------- 6 | 13、9 | 11 | 偽。 9 | 6、4 | 5 | 本当です。 4 | 9、10 | 9.5 …

5
Primus-Orderus Primes
彼らは誰なの? Primus-Orderus Primes(POP)は、素数の順序で順序を含む素数です。 そのnthため、POPになるためにnは、特定の方法ですべての数字をプライムに含める必要があります。 例 物事を明確にしましょう:すべての数字 n、POPの数字の中に現れる順番と同じ順番で現れる必要がありますn 6469th素数である64679、それはすべての数字が含まれているため、POPで6469正しい順序でを。 1407647それはPOPです107647th素数 14968819はPOP(968819th prime)であるため、このチャレンジはOEISではありません (A114924) 1327は素数であるためPOPではありません217th(数字は正しい順序ではありません) チャレンジ あなたは正しいと思いました! 整数を指定するnと、nthPOPを出力します テストケース 入力->出力 1->17 3->14723 5->57089 10->64553 29->284833 34->14968819 これはコードゴルフなので、バイト単位の最短回答が勝ちです! これらはすべて1インデックスである必要があります

17
3D空間の直線距離でポイントを並べ替える
スペック のようなx,y,zサイズのS整数単位の立方体3Dスペースがあります0 <= x,y,z <= S。 デフォルトの入力メソッドからP、x,y,z整数座標として表されるポイントの配列を、必要に応じて適切な形式で取得します[x1,y1,z1],[x2,y2,z2],[x3,y3,z3] ... [xn,yn,zn]。例:。 すべてのP値は、上記の3次3D空間にあり0 <= x,y,z <= Sます。 の可能な合計数はにPなります。1 <= P <= S3 入力としてx,y,z、基点の 整数座標Bと3Dキューブサイズも取得しますS。 仕事 目標はP、基点 からの線形(ユークリッド)距離で並べ替えられたポイントを好みの形式で出力することBです。 ルール P等距離にある複数の点を見つけた場合B、すべての等距離をP希望する順序で出力する必要があります。 ポイントPがと一致する可能性があるBため、距離が0になるように、そのポイントを出力する必要があります。 これはコードゴルフの挑戦なので、最短のコードが勝ちます。 標準的な抜け穴は禁止されています。 コードの説明を歓迎します。 テストケース Input: S (size), [B (base point x,y,z)], [P1 (x,y,z)], [P2], [P3], [P4], [P5], [...], [Pn] 10, [5,5,5], [0,0,0], [10,10,10], …

7
ASCII星をいくつか描く
入力として腕のサイズを指定して、ASCIIスターを描くプログラムまたは関数を作成します。 ここにサイズの星があります 1 _/\_ \ / |/\| ここにサイズの星があります 2 /\ __/ \__ \ / \ / | /\ | |/ \| ここにサイズの星があります 3 /\ / \ ___/ \___ \ / \ / \ / | /\ | | / \ | |/ \| 等々。 入力 単一の正の整数、任意の便利な形式で、n > 0。 出力 上記の規則に従う星のASCIIアート表現。ポイントが適切に整列している場合、先頭または末尾の改行またはその他の空白はオプションです。 …

19
珍しい因子番号
チャットメッセージに基づく チャレンジ 入力番号を指定するとn > 9、そのゼロを無視してその逆を構築します。次に、その数とその逆数に共通しないすべての素因数のリストを作成します。これらの因子を乗算して、入力の非共通因子数を作成します。 それとも、別の言い方をするには、次の場合はrev(n)、整数の表し、小数の逆転n、の積を計算nしてrev(n)の二乗で割りましたgcd(n, rev(n))。 その番号を出力します。 実施例 たとえば、に2244逆になり4422ます。最初[2, 2, 3, 11, 17]の素因数はであり、逆の素因数は[2, 3, 11, 67]です。共通の多重度にない数値はであり、出力も[2, 17, 67]同様2278です。 別の例では、と1234逆になり4321ます。製品は5332114GCDで1あるため、出力は5332114です。 さらなる説明 明らかに、回文数はその逆とすべての因子を共有するため、このような場合、出力は1(n*n/n^2)です。明らかに、例の場合のように、出力がすべての因子の乗算になることも可能です(つまり、gcdは1-入力とその逆は互いに素です)1234。 ルール 入力と出力は、言語のネイティブ整数型に適合すると仮定できます。 入力と出力は、任意の便利な形式で指定できます。 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。 可能であれば、他の人がコードを試すことができるように、オンラインテスト環境へのリンクを含めてください! 標準的な抜け穴は禁止されています。 これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。 例 in out 17 1207 208 41704 315 1995 23876 101222302

2
数式の対決!
5つの数字[0-9]とターゲット番号の6つの数字が与えられます。あなたの目標は、数字の間に演算子を点在させて、ターゲットにできるだけ近づけることです。あなたは、各桁を使用する必要が正確に一度、そして次の演算子を使用することができ 、多くとしてあなたが好きな回:+ - * / () ^ sqrt sin cos tan。たとえば、与えられた場合、を8 2 4 7 2 65出力できます82-(2*7)-4。これは64と評価され、ターゲットから1離れていたため、スコアは1になります。注:数字の間に小数点を置くことはできません。 このStackOverflow回答のコードを使用して、数式を評価しています。この質問の一番下には、テストに使用できるプログラムがあります。 関数の連鎖(更新!) @mdahmouneは、この課題に対する新たなレベルの複雑さを明らかにしました。そのため、単項関数のチェーンという新しい機能を追加しています。これは、sin、cos、tan、およびsqrtで機能します。今書く代わりに書くsin(sin(sin(sin(10))))ことができますsin_4(10)。評価者で試してみてください! 入力 スペースで区切られた5桁の200行のテストケースとターゲット番号。質問の下部にあるプログラムを使用してサンプルのテストケースを作成できますが、公式の採点用に独自のテストケースを用意します。テストケースは、40個のテストの5つのセクションに分割され、ターゲット番号の範囲は次のとおりです。 セクション1:[0,1](小数点以下5桁まで) セクション2:[0,10](小数点以下4桁まで) セクション3:[0,1000](小数点以下3桁まで) セクション4:[0,10 6 ](小数点1桁まで) セクション5:[0,10 9 ](小数点以下0桁まで) 出力 200行で区切られた数式。たとえば、テストケースがの5 6 7 8 9 25.807場合、可能な出力は次のようになります。78-59+6 得点 各ラウンドの目標は、他の競合プログラムよりも目標数に近づくことです。私が使用するつもりだマリオカート8得点:あり、。複数の回答が同じ正確なスコアを取得した場合、ポイントは均等に分割され、最も近い整数に丸められます。たとえば、5位から8位のプログラムが同点の場合、各プログラムはそのラウンドで(8 + 7 + 6 + 5)/ 4 = 6.5 => 7ポイントを獲得します。200ラウンドの終了時に、最もポイントを獲得したプログラムが勝ちます。2つのプログラムが最後に同じ数のポイントを持っている場合、タイブレーカーはより速く実行を終了したプログラムです。1st: …

24
最大再帰深度[閉じた]
閉じた。この質問には詳細または明確さが必要です。現在、回答を受け付けていません。 この質問を改善したいですか?詳細を追加し、この投稿を編集して問題を明確にします。 2年前に閉店。 あなたの言語には最大再帰深度(MRD)がありますか? あなたの言語がMRD = 500を持っているとしましょう 再帰の深さを見つけて正確な値を出力するコードを書く 上記の場合、プログラム(または関数)は500を出力するはずです Code-Golf 最短回答が勝ちます!
15 code-golf 

8
見えない数字を生成する
部分文字列は、元の文字列の連続したセクションであるとしましょう。たとえばcat、の部分文字列ですconcatenate。適切な部分文字列は、元の文字列と等しくない部分文字列であると言います。たとえばconcatenate、サブストリングはサブストリングですconcatenateが、適切なサブストリングではありません。(単一の文字列には適切な部分文字列はありません) これらの用語を使用してシーケンスを定義します。このシーケンスのn番目の用語は、そのバイナリ表現の適切なサブストリングがシーケンス内の以前の用語のサブストリングではないような最小数になります。最初の用語は10です。 演習として、最初の5つの用語を生成します。私は物事を簡単にするためにバイナリで作業します。 最初の用語は10です。ので、11次の最小数は、唯一の適切なサブ有し、1またのサブストリングである10、11配列ではありません。 100しかし、適切なストリング含まない00のストリングではありません10ので100、私たちの次の用語です。次は、シーケンスに追加101する固有の適切なサブストリング01を110含み、次にシーケンスに11追加する新しい適切なサブストリングを含みます。 今、私たちは持っています 10, 100, 101, 110 111次のアップですが、それは唯一のサブストリングが含ま1や11用語を、それをしていないし。 1000ただし000、シーケンスへの追加が含まれます。 10進数の最初のカップルの用語を次に示します 2, 4, 5, 6, 8, 9, 10, 11, 14, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 30, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 50, …

9
L€€CH€$!D€AṬHỊṢṢOOṄ!(長さマッピング)
タイトルは有効なJelly Codeで、L€€2回印刷される以外は同じ出力になります。 バックグラウンド チャレンジを完了する能力を失うことなく、このセクションをスキップできます Jellyの一部の操作は、操作を適用する前に、最初に引数をリストに変換しようとします。1つの例は€、クイックマッピングです。これにより、意図しない出力が生じる場合があります。 プログラムL€と入力5について、Jellyインタープリターはリスト5のすべての要素の長さを見つけようとします。5はリストではないため、Jellyはそれをリスト[1,2,3,4,5]に変換します。次に、すべての要素の長さが出力されます[1,1,1,1,1]。すべての整数にはlengthがあることに注意してください1。eg 10が存在する場合1、2(数字の長さ)ではなくになります。 プログラムL€€と入力5について、Jellyインタープリターはリスト5のすべての要素のすべての要素の長さを見つけようとします。5はリストではないため、Jellyはリストに変換します[1,2,3,4,5]。現在、インタプリタはリストのすべての要素のすべての要素の長さを見つけようとします[1,2,3,4,5]。すべての要素はリストではないため、Jellyはそれらを同じ方法でリストに変換します[[1],[1,2],[1,2,3],[1,2,3,4],[1,2,3,4,5]]。すべてのサブ要素の長さは次のように出力されます[[1],[1,1],[1,1,1],[1,1,1,1],[1,1,1,1,1]] 仕事 あなたの仕事は、ゼリープログラムの出力を見つけることですLが続く€繰り返しa入力して、回b、aそしてb正の整数がプログラム/関数の入力に等しいです。 これを行う方法は次のとおりです。 inputから始めて、b次のa時間を実行します。 プログラムが認識するすべての整数について、整数の範囲で置き換えます(ここでrange(x) := [1,2,3,...,x-1,x]) 最後に、すべての整数を1に置き換えます。 テストケース a b output - - - - - 1 1 [1] - - - - - 1 2 [1, 1] - - - - - 1 3 [1, 1, 1] - - - …

6
連続した数字の最長実行を見つける
単純な課題:一連の正の整数を与えられた場合、その数字の中で最も長い連続した数字を含む数字を見つけます。トリック?実行中の数字は、可能な値(0123456789)を折り返し、逆方向に実行できます。両方ですから2345、89012および5432109連続した数字(ただし、有効な実行され3456765たり321090123するが、実行は、常に同じ方向にあることが必要として、3456765二つの実験として考えることができる:34567と765)。同数の場合は、最初のものを返します。 テストケース: Input: [3274569283, 387652323, 23987654323648, 2345687913624] Output: 23987654323648 (The run is 98765432; run length: 8) Input: [123012363672023, 098761766325432, 15890123456765] Output: 15890123456765 (The run is 8901234567; run length: 10) Input: [43, 19, 456] Output: 456 Input: [5, 9, 0] Output: 5 Input: [71232107, 7012347] Output: 7012347 Input: [1234, 32109876] Output: …

30
整数nをn回含むリストに変換します
n入力として整数を指定すると、、n繰り返しn回数を含むリストを返します。たとえば、プログラムは5それを取得してに変換し[5,5,5,5,5]ます。要素は、文字列ではなく整数である必要があります。タスクを実行する組み込み関数は許可されていません。 これはcode-golfなので、標準のルールが適用されます。

24
擬似要素を除外します!
配列/リスト(数値)のハイパー平均を、そのプレフィックスの合計の算術平均と定義します。 たとえば、リストのハイパー平均は[1, 4, -3, 10]次の方法で計算されます。 プレフィックスを取得します[1], [1, 4], [1, 4, -3], [1, 4, -3, 10]。 各合計:[1, 5, 2, 12]。 そして、次のリストの要素の算術平均を取得します(1 + 5 + 2 + 12) / 4 = 5。 擬似要素アレイのは、値がある元素であり、厳密にそのハイパー平均よりも低いです。したがって、サンプルのリストの擬似要素は1、4および-3です。 浮動小数点数のリストが与えられたら、あなたの仕事は、擬似要素のリストを返すことです。 浮動小数点の不正確さを心配する必要はありません。 入力リストは空になることはなく、整数と浮動小数点の両方を含むことができます。言及した場合、整数は(とフロートとみなすことができます<integer>.0) 数字は選択した言語に合っていると思われるかもしれませんが、決してそれを乱用しないでください。 オプションで、配列の長さも入力として使用できます。 これはcode-golfなので、タグの標準ルールが適用されます。バイト単位の最短コード(各言語)が勝ちます! テストケース 入力->出力 [10.3]-> [] [5.4、5.9]-> [5.4、5.9] [1、4、-3、10]-> [1、4、-3] [-300、-20.9、1000]-> [-300、-20.9] [3.3、3.3、3.3、3.3]-> [3.3、3.3、3.3、3.3] [-289.93、912.3、-819.39、1000]-> …

22
ホワイトスペースゴルファーを実装する
などのいくつかの二次元esolangs、フォークなど、およびいくつかの非esolangs、Pythonは、時々 、コードの行の前にスペースを必要とすることができます。これはあまりゴルフではありません。また、私は怠け者で、コードの前に多くのスペースを必要とする2D言語を書いています。あなたの仕事は、これらの言語をゴルファーにするツールを書くことです。 もちろん、これは完璧ではありません。たとえば、ソースの行の最初の文字が数字の場合は使用できません。ただし、通常は有用です。 チャレンジ 次のいずれかのプログラムまたは関数を作成します... ... 1つの引数、ファイル名または文字列、または... ...標準入力から読み取ります。 あなたのプログラムは次のような動作catをします: 行の最初の文字が数字の場合、コードはx個のスペースを出力します。xはその数字です。 それ以外の場合は、単に印刷されます。 入力内の他のすべての文字と同様に。 テストケース 入力: foo bar foo bar 1foo bar foo bar foo bar 2foo bar foo bar foo bar foo bar 出力: foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo bar foo …

30
制限付きミニチャレンジ強盗スレッド
警官のスレッド 強盗としてのあなたの仕事は、警官の解決策を見つけ、提供されたセットのバイトのみを使用してシーケンスのn番目の項を計算する提供された言語でプログラムを書くことです。 目標は、できるだけ多くの警官の回答をクラックすることです。各亀裂があなたに単一のポイントを与えます。 クラックが機能する限り、警官が意図した解決策である必要はありません。

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