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

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

3
Hexの発音
Hexの発音 ショーシリコンバレーを始めていない人にとって、この課題は次のようなやり取りに触発されます(YouTube): Kid - Here it is: Bit… soup. It’s like alphabet soup, BUT… it’s ones and zeros instead of letters. Erlich Bachman - {silence} Kid - ‘Cause it’s binary? You know, binary’s just ones and zeroes. Erlich Bachman - Yeah, I know what binary is. Jesus Christ, I memorized …

1
交差点を解決する
タスク 交通交差点構造を取得し、車両が通過するシーケンスを出力するプログラムまたは関数を作成します。 出力は、次の形式で最も4つのラインに含まれている必要があり#. x->y\n、#ドットに続くシーケンス番号の数であり.、xそしてy文字です["N", "E", "S", "W"]。文字で区切る必要があります->。文字列の配列を返さない場合、各行の末尾は\n(改行文字)またはシステムに相当するものでなければなりません。 入力は次の形式を取る必要があります。 パート1:4つの文字。それぞれがN、E、S、W(時計回り)の順にソース道路の宛先道路を持っています 使用できる文字はN、S、W、Eまたは。スペースとは、特定の道路に車両がないことを意味します。たとえば、文字列S WEは、N台の車両が南に行きたい、スペースはE台の車両がないW、S Eは西に行きたい、西は東に行きたいという意味です。 パート2-緊急車両のスペースまたは1文字。 パート3-どの2つの道路が優先順位を持っているかを決定する2つのキャラクター(たとえばNE、北と東の両方が南と西の両方よりも優先順位が高いことを意味します)。簡単な場合は、優先度の低い道路を利用できます(その場合SW)。 解決できない状況では、などのようunsolvableにユーザーに明確な1行の文字列を返すことができますno solution。JavaScriptユーザーは組み込みundefined定数を使用できます。 これはコードゴルフであるため、バイト単位の最短回答が優先されます。 交通ルール 一部のルールは国の交通ルールに従っていない場合があります。それらのいくつかは、課題を簡単にするために単純化されています。この質問を実際の交通システムのガイドとして使用しないでください。 チャレンジでは、右側のトラフィックのみを使用できます。 交差点は、1つの地点で交わる正確に4つの道路で構成されています。彼らはマークされているN(「北」のためなど)、 、S、。W Eこれらの文字の代わりに使用されるべきであるxとy上記の出力例です。 各道路には、最大で1台の車両があります。各道路に車両があることは保証されません。各車両は4方向のいずれかで運転できます。左折、右折、直進、またはUターンを行います。 2つの車両のパスが交差しない(衝突しない)場合、それらはまったく同じ瞬間に進むことができます。2台の車両の場合、パスは衝突しません(リストは完全ではないかもしれませんが、これは意図的なものであり、単に手がかりを与えるためです)。 反対方向から来て、両方がまっすぐに行くか、少なくとも一方が右に曲がって、 反対方向から来て、両方とも左に曲がって、 反対方向から来て、そのうちの1つが任意の方向に回転するかUターンし、もう1つがUターンします。 直交方向から来て、左の1つは右に曲がり、もう1つはUターンしません 以下のパスを衝突させない例。3番目の図面では、NがUターンしても、NのパスはEのパスと衝突することに注意してください。 2つのパスが衝突する場合、他のルールを使用する必要があります。2台の車両が同じ優先道路上にある場合(以下を参照)、車両に次のような権利が与えられます: それらが直交方向から来る場合、右側の道路から来ます もう一方が左に曲がると右に曲がる 相手がUターンすると、まっすぐに進むか右に曲がります。 以下の両方の例では、E車両は車両Sに対する優先権を持っています。 以下の例では、最初にW、次にN、次にE、最後にSになります。 この特定の場合、プログラムの出力は次のようになります。 1. W->S 2. N->S 3. E->S 4. S->S すべてのドライバーは方向指示器を使用し、他のすべてのドライバーが行きたい場所を知っています(簡単にするために、左折とUターンを区別できると想定しています)。 道路には優先標識が付けられていることがありますが、これは上記の規則よりも重要です。優先度の高い道路には優先標識があります(優先標識画像)。優先道路が直進しない場合は、このような追加の標識も使用されます。優先度の低い道路には、降車標識または一時停止標識があります(これらは同等です)。優先度が高いのは、まったくない道路または2つの異なる道路です。プログラムのユーザーは、優先度が高い(または低い)道路を入力できる必要があります。 優先度の高い道路から来る車両は、たとえ左側にあるとしても、優先度の低い道路から来る車両よりも優先権があります。 同じ優先順位の道路から来る2台の車両のパスが衝突した場合、上記の右側のルールがアクティブになります。 以下の例では、道路SとWに優先標識があります。これは、NとEの車両が道を譲るべきであることを意味します。S車両は右側にあるため、W車両よりも優先されます。次に、Eよりも優先度の高い道路上にあるため、Wになります。車両Nは、右側にあるため、Eからの優先権を持っています。最後に行くとE …
26 code-golf 

24
カウントとスペルアップ
次のプロパティを持つ文字列を出力する文字列を入力として受け取るプログラムを作成します。 文字列内の文字が大文字(ASCII 41-5A)の場合、その文字は元の文字までのすべての文字を含む文字列に置き換えられます。たとえば、入力文字列がのI場合、出力はになりますABCDEFGHI。 同様に、文字が小文字(ASCII 61-7A)の場合、その文字は同じ方法で置き換えられます。iに置き換えられabcdefghiます。 文字が数字(ASCII 30-39)の場合、文字は数字から始まり数字まで0カウントするすべての数字に置き換えられます。 入力に連結された個々の文字が含まれる場合、置換シーケンスは一緒に連結されます。 他のすべての文字は修正なしで印刷されます。 サンプル入力(空白行で区切られている) AbC123 pi=3.14159 Hello, World! サンプル出力 AabABC010120123 abcdefghijklmnopabcdefghi=0123.0101234010123450123456789 ABCDEFGHabcdeabcdefghijklabcdefghijklabcdefghijklmno, ABCDEFGHIJKLMNOPQRSTUVWabcdefghijklmnoabcdefghijklmnopqrabcdefghijklabcd! これはコードゴルフです。標準ルールが適用されます。バイト単位の最短コードが優先されます。 リーダーボードを表示するには、[コードスニペットを表示]をクリックし、一番下までスクロールして[►コードスニペットを実行]をクリックします。オプティマイザーによって作成されたスニペット。 コードスニペットを表示 /* Configuration */ var QUESTION_ID = 61940; // Obtain this from the url // It will be like http://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe"; var …
26 code-golf  string 

30
AGMシリーズの穴1:算術幾何学的平均の計算
この質問は、このHNQに触発されました。 シリーズについて この質問は、AGMメソッドに関するシリーズの一部になりました。シリーズのこの最初の投稿は、実際に計算することについてですAGMます。これを他のコードゴルフチャレンジと同様に扱い、シリーズについてまったく心配することなく答えることができます。ただし、すべての課題にリーダーボードがあります。 算術-幾何平均とは 2つの数の算術幾何平均は、算術平均と幾何平均を繰り返して収束する数として定義されます。あなたの仕事は、いくつかのn反復の後にこの数を見つけることです。 明確化 あなたは3つの数字を取ります a, b, n妥当な形式のします。 以下のためnの反復、の算術と幾何平均を取るaとbしてにそれらを設定aし、b。 2つの数値aとbについて、算術平均はと定義され(a + b) / 2ます。 幾何平均はと定義され√(a * b)ます。 aそして、b互いに接近している必要があります。 次に、との両方aを出力しbます。 フロートの不正確さなどを心配する必要はありません。 これはコードゴルフなので、バイト単位の最短コードが勝ちです! テストケース [0, [24, 6]] -> [24, 6] [1, [24, 6]] -> [15.0, 12.0] [2, [24, 6]] -> [13.5, 13.416407864998739] [5, [24, 6]] -> [13.458171481725616, 13.458171481725616] [10, [100, …

3
助けてください、私は無限の工場に閉じ込められています!
この課題は、ザックトロニクスのゲームInfinifactoryに大まかに触発されています。 で表されるコンベアの長方形グリッドのトップダウンビューが表示され>v<^ます。スペースで表されるコンベアのないセルが存在する場合があります。以下に例を示します。 > <vv < v ^ >v v >v^^>vv^ ^>^ v > v<v >> >v v<^ この設定は、無限のスペースに暗黙的に囲まれています。 さらに、グリッドの左上隅にあるコンベヤー上に配置される長方形の貨物の寸法が与えられます。あなたの仕事は、貨物が静止するかどうか、またはループで移動するかどうかを把握することです。 もちろん、貨物は一度に複数のコンベヤーをカバーする可能性が高いため、各ステップで貨物の方向を把握するためのルールは次のとおりです。 反対側のコンベヤーは互いにキャンセルします。したがって、3x2の貨物が次のパッチのいずれかをカバーする場合(明確にするためにハイフンとパイプで概説)、結果は同じになります。 +---+ +---+ +---+ |>>^| | ^| |v^^| |^<<| |^ | |^^v| +---+ +---+ +---+ これらについても同じことが言えます。 +---+ +---+ +---+ |v^<| | | |><>| |>>>| |>> | |>><| +---+ +---+ +---+ …

30
リストを偶数インデックス部分と奇数インデックス部分に分けます
この質問に触発された: 偶数のインデックス番号が最初に表示され、奇数のインデックス番号が後に続くように、番号のリストを受け取り、並べ替えられたリストを出力する関数(または完全なプログラム)を作成します。数値自体の値は順序に影響を与えません-インデックスのみが影響します。すべてのインデックスはゼロベースです。 例えば: 入力: [0, 1, 2, 3, 4] 出力: [0, 2, 4, 1, 3] もう一つの例: 入力: [110, 22, 3330, 4444, 55555, 6] 出力: [110, 3330, 55555, 22, 4444, 6] あなたの言語が持っているリストに最も自然な表現を使用してください。複雑さに関する制限はありません(たとえば、一時リストの割り当ては問題ありません。インプレースで行う必要はありません)。 PS空のリストに対して機能するはずです(空の入力=>空の出力)。

30
数の約数を数える
前書き これは非常に簡単な課題です。単に数の約数を数えるだけです。以前にも同様の、より複雑な課題がありましたが、私はこれをエントリーレベルにしようと考えています。 チャレンジ 1つの厳密に正の整数が与えられた場合N、1 またはを含む約数を出力または返すプログラムまたは関数を作成しますN。 入力:1つの整数>0。数値は、言語のネイティブの数値型で表現できると仮定できます。 出力:1および数値自体を含む、正の整数除数の数。 提出はバイト単位で記録されます。あなたは見つけることがあり、このウェブサイトは、あなたのバイト数を生成するための合理的な方法を使用するかもしれませんが、便利。 これはcode-golfなので、最低スコアが勝ちです! 編集: FryAmTheEggmanの5バイトのPythの答えが勝者のようです!ただし、新しい回答を送信してください。短くできる場合は、受け入れられる答えを変更します。 テストケース ndiv(1) -> 1 ndiv(2) -> 2 ndiv(12) -> 6 ndiv(30) -> 8 ndiv(60) -> 12 ndiv(97) -> 2 ndiv(100) -> 9 リーダーボード これは、通常のリーダーボードと言語ごとの勝者の概要の両方を生成するスタックスニペットです。 回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。 # Language Name, N bytes N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば: # Ruby, <s>104</s> <s>101</s> 96 bytes ヘッダーに複数の数字を含める場合(たとえば、スコアが2つのファイルの合計であるか、インタープリターフラグペナルティを個別にリストする場合)、実際のスコアがヘッダーの最後の数字であることを確認します。 # …

13
もっと頑張って、もっと良くする
このチャレンジでのあなたの目標は、ダフト・パンクのより強く、より良く、より速く、より強く歌詞を出力することです。具体的には、次のテキストを出力します。 Work It Make It Do It Makes Us Harder Better Faster Stronger More Than Hour Our Never Ever After Work Is Over Work It Make It Do It Makes Us Harder Better Faster Stronger More Than Hour Our Never Ever After Work Is Over Work It Harder Make It …

15
良さ、それはタブで覆われています!
スペースインデントユーザー、団結!私たちはすべての低タブユーザーと戦わなければなりません! あなたの使命(受け入れることを選択した場合)は、2つの引数を取るプログラムまたは関数を作成することです。 文字列:これは入力です。 正の整数:タブごとのスペースの数。 文字列のすべての行を調べて、インデントに使用されるすべてのタブを指定された数のスペースに置き換え、インデントに使用されないすべてのタブ(行の中央など)を1つのスペースに置き換える必要があります。 などの行\t \tabcは未定義の動作であることに注意してください。プログラムを複雑にするために、邪悪なタブのユーザーによって挿入されました。 Tabs Must Die Societyによると、悪のタブユーザーによる検出を避けるため、プログラムはできるだけ短くする必要があります。 例 \t ここでタブを表すために使用されます。 入力文字列: a \t\tb\tc d 入力番号: 4 出力: a b c d 中央の行は、タブごとに4つの8スペースでインデントされています(指定された数値は4だったため)。 入力文字列: \ta\t\tb 入力番号: 4 出力: a b 注:これはタブ拡張チャレンジの複製ではありません。非常に異なる入力形式とわずかに異なる要件が必要です。

5
ASCIIドラゴンの曲線
前書き ドラゴンの曲線は、特にジュラシックパーク小説のセクションのタイトルページに表示されるフラクタル曲線です。 この曲線についてのウィキペディアの記事で説明されているように、それは非常に簡単に紙のストリップを折り畳むプロセスとして記述することができます。 この曲線の生成の最初の数回の反復は次のようになります(画像についてはWikipediaの功績による)。 チャレンジ 入力として整数nが与えられる_と、シンボルと| |、_およびスペースのみを使用して図を出力する必要があります。曲線をプロットなどとして出力することはできません。 入力をプログラム引数として、STDINで、または関数パラメーターとして受け取ることができます。 入力は常に0以上の整数になります。プログラムは適切な入力値で動作するはずです。テストケースでは12が最高です。 最初の反復は次のようになります 反復0は _ 反復1は _| 反復2は |_ _| 最後の末尾の行は大丈夫です。曲線の右端の文字まで行を埋める以外に、後続のスペースは許可されません 通常の標準的な抜け穴の悪用はありません テストケース 入力 0 出力 _ 入力 3 出力 _ |_| |_ _| 入力 5 出力 _ _ |_|_| |_ _ _| _| |_|_|_ |_|_| |_ _| |_| 入力 10 出力 _ …

2
ATMで現金をゴルフしてください
タスクは簡単です。私にいくつかの取得1000、500および100ノートを。 どうやって ?あなたが尋ねるかもしれません。心配しないでください。クレジットカードを受け入れるATMが近くにあるので、銀行を強奪する必要はありません。ただし、クレジット限度額はタスクに十分であるため、引き出しには注意する必要があります。 チャレンジ 数を考えると1000、500そして100ノートが必要な、少なくともそれらの多くのノートを取得するために必要な特定の引き出しを計算します。各引き出しで、ATMは次のルールに基づいて各メモを吐き出すことができます。 引き出し金額(A)は以下5000 の場合A%1000 == 0、ATMは1 500音、5 100音、休符を吐き出し1000ます それ以外の場合A%500 == 0、ATMは5つの100ノート、残りの1000ノートを吐き出します それ以外の場合A%1000 < 500、ATMはfloor(A/1000) 1000メモと休符を吐き出し100ます それ以外の場合A%1000 > 500、ATMはfloor(A/1000) 1000ノート、1 500および残りの100ノートを吐き出します 引き出し金額が等しい 5000 の場合A%1000 == 0、ATMは2つの500ノートと残りの1000ノートを吐き出します それ以外の場合、A%500 == 0ATMは1つの500メモと休符を吐き出し1000ます それ以外の場合A%1000 < 500、ATMはfloor(A/1000) 1000メモと休符を吐き出し100ます それ以外の場合A%1000 > 500、ATMはfloor(A/1000) 1000ノート、1 500および残りの100ノートを吐き出します 明確にするために、ここにすべての可能な金額まで引き出されたノートの完全な表があります7000(さらに引き出せますが、パターンはその後変更されません)。順序は<1000> <500> <100>次のとおりです。 100 => 0 0 1 2500 => …

20
私は完璧ですか(数字)?
これが私の最初の挑戦です! バックグラウンド 完全数は正の整数であり、それ自体を除くすべての約数の合計に等しくなります。 だから、6完璧な数があるため、あります1 + 2 + 3 = 6。 一方、12そうではありません1 + 2 + 3 + 4 + 6 = 16 != 12。 仕事 タスクは簡単です。プログラムを作成すると、n次のメッセージのいずれかが表示されます。 私は完璧な数でd1 + d2 + ... + dm = s == n はありませんd1 + d2 + ... + dm = s [<>] n どこ d1, ... …

9
買い物袋を運ぶのを手伝ってください
暖かい夏の夜だった... 私の愚かな車がスーパーマーケットから帰る道の途中で故障することを決めたとき。私はそれを傍観者に押し、家に帰ることにした。トランクを開けて、食料品や残りのものを取り出しました。そのとき、アイテムが均等に袋詰めされていないことに気づきました。いくつかのバッグにはもっと重いものがあり、他のバッグには軽いものがほとんどありませんでした。私が持ち運びしやすいように、すべてを2つのバッグにまとめて、それらの重量をできる限り近づけることにしました。 あなたの目標 両方のバッグの差ができるだけゼロに近くなるように、2つのショッピングバッグのアイテムを並べ替えるのを手伝います。 数学的に: WEIGHT LEFT HAND - WEIGHT RIGHT HAND ≈0 例 パンとピーナッツバターの2つのアイテムしかなく、パンの重量が250グラムで、ピーナッツバターが150グラムの場合、最良の方法は両手で別々に運ぶことです。 W LH - W RH = W (パン) - W (P.BUTTER) 250から150 = 100 他の可能性は次のとおりです。 W (パン、P.BUTTER) - W (空手) =(250 + 150) - 0 = 400 これは最初のケースよりも良くないため、最初のケースを使用する必要があります。 あなたのコードは ショッピングバッグ内のアイテムの重量を示す数値を入力します。単位は重要ではありませんが、同じである必要があります(理想的にはキログラムまたはグラム)。入力は1つずつ、または一度にすべて実行できます。必要に応じて、合計数を最大20アイテムに制限できます。 入力形式/タイプはユーザーが選択できますが、重み以外には何も表示されません。 任意の言語を使用できますが、標準ライブラリに固執します。 出力を表示します。繰り返しますが、形式は自由に選択できますが、投稿で形式を説明してください。つまり、どのアイテムが左手アイテムであり、どのアイテムが右手アイテムであるかをどのように判断できますか。 ポイント 最短のコードが優先されます。 …
26 code-golf  math 

18
はしごを組み立てる
前書き はしごを作りたいです。このために、私は廃品置き場から、穴の開いた2つの長いボードを清掃しまし​​た。これらの穴にステップを配置したいと思います。ただし、穴が均等に配置されていないため、ステップが少し不安定になり、それらに必要なロッドの量を見積もることが難しくなります。あなたの仕事は私のために計算をすることです。 入力 入力は、2つのボードを表す整数の配列として与えられる2ビットのベクトルです。A 0は、穴のない1オード(距離の任意の単位)1のセグメントを表し、aは、単一の穴のある1オードのセグメントを表します。配列の長さは異なり、1sの数も異なりますが、空にはなりません。 はしごを次のように構築します。まず、2つのボードを正確に1オード離して配置し、左端を揃えます。インデックスごとに、最初のボードのth穴と2番目のボードiのith穴の間の距離を測定し、iロッドを切断して、2つの穴の間に取り付けます。いずれかのボードの穴がなくなると停止します。 出力 出力は、ステップに必要なロッドの合計量であり、オードで測定されます。出力は、少なくとも6桁の有効数字まで正しいはずです。 例 入力[0,1,1,0,1,1,1,1,0,0]とを考慮してください[1,0,0,1,1,1,0,0,1]。結果のはしごは次のようになります。 このラダーのロッドの全長は7.06449510224598オードです。 ルール 関数または完全なプログラムのいずれかを作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース [0] [0] -> 0.0 [0] [1,0] -> 0.0 [1,0,0] [1,1,1,1,1] -> 1.0 [0,1,0,1] [1,0,0,1] -> 2.414213562373095 [0,1,1,0,1,1,1,1,0,0] [1,0,0,1,1,1,0,0,1] -> 7.06449510224598 [1,1,1,1,1] [0,0,1,1,0,1,0,0,1] -> 12.733433128760744 [0,0,0,1,0,1,1,0,0,0,1,1,1,0,0,1,0,1,1,0,0,0,1,0] [0,0,1,1,0,1,1,1,0,0,0,0,0,1,1,0,1,1,0,0,0,1] -> 20.38177416534678

8
すべての停止プログラムを出力します(並列インタープリターを作成します)
この課題の目標は、(最終的に)選択した言語で停止可能なすべてのプログラムを出力することです。最初はこれは不可能に思えるかもしれませんが、実行順序を非常に慎重に選択することでこれを実現できます。 以下は、これを説明するためのASCIIダイアグラムです。列は、考えられるすべてのプログラムの番号付けを表します(各プログラムは、有限のアルファベットからの有限数のシンボルです)。各行は、そのプログラムの実行における特異なステップを表します。Xその時間ステップにおいてそのプログラムによって実行される実行を表します。 step# p1 p2 p3 p4 p5 p6 1 X X X X X X 2 X X X X X 3 X X X X 4 X X X X 5 X X X 6 X X 7 X X 8 X X 9 X X ∞ X …

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