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

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

30
関数を別の言語で作成するプログラムを作成してください!
STDIN(または同等のもの)から1つの入力(n)を受け取り、x + nを返す1つの引数(x)を持つ単純なインクリメント関数を出力する最短のプログラムを作成しますが、関数は異なる言語である必要があります。ものすごく単純! これはコードゴルフであり、通常のルールが適用され、最短のプログラムが勝ちます。 例:> <> to Python(Ungolfed) !v"def i(x):"a" return x+"ir! >l?!;o 入力: 3 出力: def i(x): return x+3 編集:匿名関数とラムダ式が許可されています!
30 code-golf 

7
最小の円をゴルフ!
問題: デカルト平面内の空でない点のセットが与えられた場合、それらすべてを囲む最小の円を見つけます(Wikipediaリンク)。 この問題は、ポイントの数が3以下の場合は簡単です(1つのポイントがある場合、円の半径はゼロです。2つのポイントがある場合、ポイントを結ぶ線分は円の直径です。 3つの(非共直線)ポイント、それらが非鈍角三角形を形成する場合、それらすべてに接触する円の方程式、または2つの点のみに接触し、三角形が鈍角の場合に3番目を囲む円の方程式を取得することができます)。したがって、この課題のために、ポイントの数は3より大きくする必要があります。 チャレンジ: 入力: 4つ以上の非共線点のリスト。ポイントにはX座標とY座標が必要です。座標はフロートにすることができます。課題を簡単にするために、2つのポイントが同じX座標を共有しないようにしてください。 例えば:[(0,0), (2,1), (5,3), (-1,-1)] 出力:(h,k,r)ような値のタプルは、すべての点を囲む最小の円の方程式です。(x − h )2+ (y− k )2= r2(x−h)2+(y−k)2=r2(x-h)^2 + (y-k)^2 = r^2 ルール: プログラムに合った入力方法を選択できます。 出力はSTDOUT、関数に出力されるか、関数によって返される必要があります。 「通常」の汎用言語が推奨されますが、任意のエソランを使用できます。 点は共線ではないと仮定できます。 これはコードゴルフなので、バイト単位の最小のプログラムが優先されます。チャレンジが投稿されてから1週間後に勝者が選ばれます。 回答の最初の行に、ヘッダーとして使用した言語とバイト単位の長さを含めてください: # Language: n bytes テストケース: 1: 入力: [(-8,0), (3,1), (-6.2,-8), (3,9.5)] 出力: [-1.6, 0.75, 9.89] 2: 入力: [(7.1,-6.9), (-7,-9), (5,10), …

2
らせんシーケンス
バックグラウンド OEISシーケンスA272573は、六角形グリッド上のスパイラルを次のように記述しています。 最初の六角形をa(1)= 1として、六角形のタイルで数字のらせんを開始します。a(n)は、その隣に等しくない、または以前に隣接していない最小の正の整数です。 シーケンスが始まります 1, 2, 3, 4, 5, 6, 7, 4, 6, 8, 5, 9, 8, 10, 2, 11, ... スパイラルパターンの図を次に示します。 a(11) != 1その後、理由3と12箇所の隣接するだろう。 a(11) != 2その後、理由3と22箇所の隣接するだろう。 a(11) != 3それ3は、それ自体に隣接するからです。 a(11) != 4その後、理由3と42箇所の隣接するだろう。 したがってa(11) = 5。 チャレンジ 課題は、A272573を計算するプログラムを作成することです。これはcode-golfなので、最短のコードが優先されます。

18
逆引用符
この課題の見通しは次のとおりです。 プログラムが正常に実行されている場合は、スピーチマーク("-二重引用符)内のすべてのコードを印刷する必要があります。 プログラムが二重引用符で囲まれている場合(スピーチマークが逆になっている場合)、通常は引用符で囲まれていないコードを印刷する必要があります。 例えば: 次のコードがあるとしましょう: fancyStuff("myCode"); "I like".isGreat(); 実行すると、次の出力が期待されます。 myCode I like ただし、引用符で囲むと、次のようになります。 "fancyStuff("myCode"); "I like".isGreat();" このコードを実行すると、予想される出力は次のようになります。 fancyStuff( ); .isGreat(); 明らかに、上記の例はどの言語でも機能的な応答ではありません。あなたの仕事は、この方法で実行するコードを書くことです。 ルール 標準の抜け穴が適用されます。 印刷された値は、引用された形式と引用されていない形式の両方で、空でないか、空白のみで構成されている必要があります。これは、すべてのプログラムが少なくとも1組の引用符を含む必要があることも意味します。 ただし、末尾の/先行する空白は許可されます。 独自のコード、必要なファイル名などを見ていません。 一致しない引用符は許可されません 複数の文字列がある場合、それらは改行として印刷されるか(例のように)、または他の人間が読める方法で印刷されます-配列やオブジェクトはありません これはcode-golfであるため、バイト単位の最短回答が優先されます。

15
ブラックボックス三角法
以下の12個の三角関数を区別できるプログラムや関数を書きます: sin、 cos、 tan、 asin、 acos、 atan、 sinh、 cosh、 tanh、 asinh、 acosh、 atanh。 プログラムには上記の関数のいずれかがブラックボックスとして与えられ、上記の関数名または言語での名前の付け方のいずれかで関数名を出力する必要があります。 これはcode-golfであるため、各言語で最も短い回答が優先されます。12個の入力すべてにテストケースを含めることで、コードが正しく機能することを示す必要があります。選択した言語に上記のすべての機能の組み込みが含まれていない場合は、欠落しているものの独自の賢明な実装を提供する必要があります。 さらなる説明 基礎となるビルドインが複素数を処理できる場合は、複素数を使用してブラックボックスを照会できます。 のみ実数を使用する場合、ブラックボックス機能へのクエリは、ドメインエラーを与えることができます。この場合、ブラックボックスはエラーの存在のみを伝え、エラーの発生元は伝えないと想定する必要があります。dO M A 、C 、O 、S 、H ∩ D o m a t a n h = ∅ dom acosh∩dom atanh=∅ dom\ acosh \cap dom\ atanh = \emptyset エラーの代わりに、他の値、たとえば、NaNまたはnullが返された場合、送信でそれらを処理できる必要があります。 有益なサンドボックスフィードバックをありがとう!

20
HomestuckのCatenative Doomsday Dice Cascaderを実装する
チャレンジ ミッドナイトクルーの攻撃を受けており、自分自身を守るために、終末の終末のダイスカスケードを召喚する必要があります。スペースが少ないので、コードをできるだけ短くする必要があります。 Catenative Doomsday Dice Cascaderのアルゴリズムは次のとおりです。 最初に、プライムバブルの6面のダイスが転がり、その結果によって次のステップの反復回数が決まります。 6面ダイスから始めます。プライムバブルダイスのロールと同じ回数、次のダイスのサイドの数に現在のダイスのロールの結果を掛けます。たとえば、6面ダイスの最初のロールであなたのロールが2である場合、次のダイスは6 * 2 = 12面になります。 目標は、入力を受け取らず、最後のダイスの最終結果を出力する関数またはプログラムを作成することです。これはcode-golfであるため、各言語の最小バイトカウントが優先されます! 例 例#1(上記のリンクから直接取得): The Prime Bubble rolls a 6, meaning that the Cascader will iterate six times #1: We always start with a 6 sided die, and it rolls a 2, so the next die has 6x2=12 sides …
29 code-golf  random 

11
トライフォースを描きましょう
トライフォースは、の架空の人工物であるゼルダの伝説力、知恵と勇気を代表する3つの同一に見える正三角形で作られました、。サガのいくつかのゲームには、3つの部分が最終的に結合したときのアニメーションが含まれています。 この課題の目的は、三角形の幅とパーツ間の間隔を指定して、このような単純化されたアニメーションの2Dフレームを1つ描画することです。 入力 入力は、幅と間隔値の2つの整数で構成されます。w≥1w≥1w\ge1s≥0s≥0s\ge0 出力 フレームは、次の仕様に従って描画する必要があります。 /\ / \____________ this part is horizontally centered / \ /______\ \___ s empty lines / /\ /\ / \ / \______ w+1 backslashes / \ / \ /______\ /______\ \_______ 2w underscores |__| \_____________ 2s spaces 上記の例では、とます。w=3w=3w=3s=2s=2s=2 その他の例 w=1w=1w=1、:s=0s=0s=0 /\ /__\ /\ /\ …

16
行列で1と0の島を見つけるには
0と1の2次元行列が与えられます。隣人が水平および垂直のみにある1と0の島の数を見つけます。 Given input: 1 1 1 0 1 1 1 0 output = 1 1 Number of 1s island = 1 xxx- xxx- Number of 0s island = 1 ---x ---x ------------------------------ Given input: 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 …

26
これらの変数に矢印を付けてください!
チャレンジ ロビンは、変数宣言を矢印の形にすることが好きです。彼のやり方は次のとおりです。 任意の数の文字列を入力してください 長さを昇順に並べる 次のように、中央で順序付けられた出力を出力し、おおよそマイナスの矢印を形成します(ゴルフの順序が最も良い場合)。 5 or 4 3 2 1 1 2 3 4 5 テストケース 入力: bow arrows sheriffOfNottingham kingRichard maidMarian princeJohn sherwoodForest 出力: sheriffOfNottingham kingRichard maidMarian bow arrows princeJohn sherwoodForest 入力: a bb cc 出力(両方とも有効): bb a cc cc a bb 入力: one four seven fifteen 可能な出力(他の有効な出力は垂直ミラーのみです): …

15
冷蔵庫用マグネットの代替
冷蔵庫用マグネットとのメッセージを書くとき、あなたは、多くの場合、自分が代わりに見つける1ためにI。この課題の目標は、別のメッセージの文字を使用してメッセージを作成できるかどうかを確認することです。許可される置換は次のとおりです。 A = 4 B = 8 C = U E = M = W = 3 G = 6 = 9 I = 1 L = 7 N = Z O = 0 R = 2 S = 5 たとえば、メッセージCIRCA 333はspell ICE CREAMに再配置できます。最初の2つ3は180度回転して2つを作成Eし、最後の2つ3は反時計回りに90度回転してを作成しMます。空白はメッセージに含めることができますが、冷蔵庫に磁石を置くことで作成されるため、ソリューションで考慮する必要はありません。 入力 2つの文字列(または文字配列)。すべてのメッセージが一致します^[A-Z0-9 ]+$ 出力 2つの入力文字列が互いに有効な再配置である場合は真実、そうでない場合は偽です。 例 …

19
おおよそ何歳ですか?
年齢を表す正の秒数を取り、その時間の推定値を英語で出力する短いプログラムを作成します。 プログラムは、次のメトリックとその秒単位の長さの中で、経過した最も正確でない時間を出力する必要があります。 second = 1 minute = 60 hour = 60 * 60 day = 60 * 60 * 24 week = 60 * 60 * 24 * 7 month = 60 * 60 * 24 * 31 year = 60 * 60 * 24 * 365 例 input : …
29 code-golf  date 

13
ガイガーカウンターを作る
ガイガーカウンターは、放射線の検出に使用されるデバイスです。 ガイガーカウンタープログラムを作成します。 ご存じのとおり、放射線がコンピュータープログラムに当たると、ランダムに正確に1バイトが削除されます。したがって、ガイガーカウンタープログラムは、それ自体は何もしませんが、いずれかのバイトが削除されると、変更されたプログラムがを出力してbeep、放射線の存在を示します。 回答はバイト単位でスコアリングされ、バイト数が少ないほど優れています。回答は少なくとも1バイトでなければなりません。 プログラムbeepは、一貫してそうである限り、改行を末尾に出力したり、空の出力用に単一の改行を出力したりできます。またごとに異なるケースを使用することができ、あなたのプログラムbeepのようなBEEP、bEEPまたはBeep、それがとても一貫して行うように。

30
私はあなたのために十分ではありませんか?
バックグラウンド: 現在のPerfect Numbersの課題は、数の要因を含む複雑な形式で出力するように求められるため、かなり欠陥があり複雑です。これは、チャレンジの純粋な決定問題の再投稿です。 チャレンジ 任意の標準入力形式で正の整数を指定すると、それが完全かどうかを区別します。 完全数とは、すべての適切な除数の合計に等しい数です(正の除数はそれ自体よりも小さい)。例えば、その約数であるため、完全数であるに合計、ながら、その約数(以来、完全数でない)までの合計、ではありません。6661,2,31、2、31,2,36661212121,2,3,4,61、2、3、4、61,2,3,4,6161616121212 テストケース: Imperfect: 1,12,13,18,20,1000,33550335 Perfect: 6,28,496,8128,33550336,8589869056 ルール メモリや時間の制約がある場合、プログラムはより大きなテストケースを完了する必要はありませんが、より多くのメモリ/時間を与えられれば理論的にはできるはずです。 出力は、許可された出力形式を使用して、2つの異なる一貫した値にすることができます。Perfect / Imperfectを表すものがすぐに分からない場合は、回答で必ず指定してください。

11
アスタリスクスパイラル
サイズSとステップのスパイラルが与えられた場合、外側の半径から内側の半径まで時計回りに構築されたアスタリスクを持つN「正方形」のS*Sスパイラルを出力しNます。 以下のテストケース(例)。 入力: 4 3 出力: *** 入力: 4 6 出力: **** * * 入力: 4 11 出力: **** * * * **** 入力: 6 18 出力: ****** * * * * * * ****** 入力: 6 22 出力: ****** *** * * * * * * * ****** 入力: …

7
私たちは始めたところに終わりました!…
チャレンジ: 入力: 次の2つの入力を取ります 。-印刷可能なASCIIのみを含む文字列(スペース、タブ、または改行を除く) -印刷可能なASCII文字 出力: 最初の行には、文字列入力が含まれます。iこのキャラクターが最初に出現するすべての-modulo-3は、南東方向に移動します。すべてのi-modulo-3秒の出現は南方向に移動します。i-modulo-3が3番目に出現するたびに、南西方向に移動します。文字が再び最初の開始位置に来るまで続けます(つまり、必要に応じて一方の側から他方の側に回り込むことを意味します)。次に、文字列入力の最後の行を再度印刷します。それを終わらせて。(すべてのテストケースはlength(input)、後続の入力を含む行を含め、多くの行の後の最初の入力で終了することに注意してください。ただし、以下の最初のテストケースに見られるように、 9.) これはかなり曖昧かもしれないので、ここに例を示します: テストケース1: 文字列入力:"This_is_a_test" 文字入力:'s' 出力: This_is_a_test s s s ss s s s sss sss s s ss s s s s This_is_a_test 3つの色付きのパスを使用した同じテストケースを次に示しますs。 ここで、最初's'は南東方向の緑の道をたどります。2番目's'は南の方向に黄色のパスに従います。3番目's'は南西方向に水色の経路をたどります。(4番目がある場合's'は、再び南東方向に進みます。これは、以下の他のテストケースのいくつかで確認できます。) チャレンジルール: 入力には、印刷可能なASCIIのみが含まれます(スペース、タブ、改行を除く) I / O形式は柔軟です。改行で区切られた文字列、文字マトリックスなどを使用できます。呼び出し。 指定された文字が文字列に存在しない可能性があります。その場合、入力文字列を1回または2回"test", 'a'出力できます(つまり、次のいずれかを出力として使用できます:"test\ntest"/ "test")。 先行スペースは必須です。末尾のスペースはオプションです。1つまたは複数の先頭/末尾の改行が許可されます。 一般的なルール: これはcode-golfであるため、バイト単位の最短回答が優先されます。 コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターと戻り値型、完全なプログラムを持つ関数/メソッドを使用できます。あなたの電話。 デフォルトの抜け穴は禁止されています。 可能であれば、コードのテストへのリンクを追加してください。 …

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