タグ付けされた質問 「code-golf」

コードゴルフは、ソースコードの最小バイトで特定の問題を解決するための競争です。

30
最も近いフィボナッチ数を見つける
我々は、すべての有名に精通しているフィボナッチ数列で始まり、0そして1、各要素は、前の2の合計です。以下に、最初のいくつかの用語を示します(OEIS A000045): 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584 与えられた正の整数で、これらの規則の下で、フィボナッチ数列の最も近い数を返します。 最も近いフィボナッチ数は、指定された整数と最小絶対差がフィボナッチ数として定義されます。たとえば、34はに最も近いフィボナッチ数30です|34 - 30| = 4。これは、、、が2番目に近いもの、、の21ためにのためです|21 - 30| = 9。 指定された整数がフィボナッチ数列に属する場合、最も近いフィボナッチ数はそれ自体です。たとえば、最も近いフィボナッチ数13はになり13ます。 同点の場合、入力に最も近いフィボナッチ数のいずれかを出力するか、両方を出力するかを選択できます。たとえば、入力がの場合、17次のすべてが有効です:21、13または21, 13。両方を返却する場合は、形式を明記してください。 デフォルトの抜け穴が適用されます。任意の標準的な方法で入力を取得し、出力を提供できます。プログラム/関数は、10 8までの値のみを処理する必要があります。 テストケース 入力->出力 1-> 1 3-> 3 4-> 3または5または3、5 6-> 5 7-> 8 11-> 13 …

2
靴下の整理を手伝ってください!
ペアに分類したいきれいな靴下が山ほどあります。残念ながら、靴下は中央ではなく、パイルの両端からしか取れません。さらに、一致するペアを一度に山から靴下のみを削除できます。私の戦略は、最初にパイルを1つ以上の小さなパイルに分割することです。いくつかの例でこれが明らかになると思います。各靴下を正の整数として表します(整数が一致する場合は、靴下が等しいことを示します)。 靴下の最初の山が 1 2 3 3 2 1 その後、分割する必要はありません。両方の1靴下、次に両方の2靴下、次に両方の3靴下を取り外します。 代わりに、初期パイルが 1 2 3 2 3 1 靴下を端から取り外すだけではすべての靴下をペアリングできないため、最初に分割する必要があります。1つの可能性は、それを2つの山に分割することです 1 2 3 and 2 3 1 今、私は削除することができ1、靴下を残し2 3 and 2 3、続い3靴下、残して2 and 2、そして最後に2靴下。 あなたの仕事 靴下の最初の山を考えて、靴下を並べ替えることができるように小さな山に分割するプログラムを作成します。プログラムは、パイルを可能な限り少ない数のパイルに分割する必要があります(最適なソリューションが複数ある場合は、1つだけ見つける必要があります)。 入力は、リスト、区切り文字列、またはその他の便利な形式で提供されます。間1にある整数と最大値の間の整数のみが含まれn、各整数は正確に2回発生します。 出力は、任意の便利な形式で与えられた、より小さなリストに分割された入力リストで構成される必要があります。 例 Input Sample Output 1 1 1 1 1 2 1 2 1; 2 1 …
30 code-golf 

10
///を解釈する(「スラッシュ」と発音)
難解な言語のゴルフを十分に得ることができないので、できますか? /// —発音のスラッシュ ——Perlのs///名声の正規表現置換機能に基づいた楽しい小さな言語です。スラッシュ/とバックスラッシュの2つの特殊文字のみが含まれています\。esolangs wikiで完全な記事を見つけることができますが、以下の言語の説明といくつかの例を再現します。 つまり、/pattern/repl/restプログラムで識別し、可能な限り何度も置換を行うことで機能します。いいえ文字は除いて特別ではない/と\:/画定パターンや交換プログラムで、しばらくは\リテラルを挿入することを可能にする/か、\あなたのコードに文字を。特に、これらは正規表現ではなく、単なる文字列の置換です。 あなたの課題は、できるだけ少ない文字で、STDINを読み取るプログラムまたは文字列引数を取る関数として、///言語のインタープリターを作成することです。 ///自体以外の任意の言語を使用できます。///;を解釈するライブラリは使用できません。ただし、正規表現、正規表現ライブラリ、または文字列一致ライブラリを使用できます。 実行 4つの状態、print、pattern、replacement、およびsubstitutionがあります。置換を除くすべての状態で: プログラムが空の場合、実行は停止します。 それ以外の場合、最初の文字がの場合、\次の文字(存在する場合)で何かを実行し、プログラムから両方を削除します。 それ以外の場合、最初の文字がの場合、/それを削除し、次の状態に変更します。 それ以外の場合は、最初の文字で何かをして、プログラムから削除します。 繰り返す。 状態は、print、pattern、replacement、およびsubstitutionを順に循環します。 では、印刷モード、文字手段の出力「何かを行います」。 では、パターンモードで、「何かをする」という意味は、現在のパターンに文字を追加します。 で代替モードで、「何かをする」という意味では、現在の交換に文字を追加します。 で置換モードでは、ルールの異なるセットに従ってください。置換が不可能になるまで、現在のパターンの最初の出現をプログラムの現在の置換で繰り返し置換します。その時点で、パターンと置換をクリアし、印刷モードに戻ります。 プログラム/foo/foobar/foo foo fooでは、次のことが起こります。 /foo/foobar/foo foo foo foo foo foo foobar foo foo foobarbar foo foo foobarbarbar foo foo ... これは永久にループし、置換モードを終了しません。同様に、パターンが空の場合、プログラムの先頭にある最初の空の文字列は常に一致するため、置換モードは永久にループし、停止することはありません。 例 no 出力:no。 / world! world!/Hello,/ world! world! world! 出力:Hello, …

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、それがとても一貫して行うように。

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