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

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

5
Manufactoriaの入力の最後の色を返します
このパズルは、Manufactoriaチャレンジの次のシリーズです。 バックグラウンド Manufactoriaはゲーム/ 2次元プログラミング言語です。プレーヤーは、キューを操作して目的の出力に到達するプログラムを作成する必要があります。習得は簡単ですが、習得が難しいため、さまざまな課題を作成するのに役立ちます。私が何を話しているのかわからない場合は、ゲームの最初のいくつかのチュートリアルレベルをプレイすることをお勧めします。 チャレンジ あなたの課題は、入力文字列の最後の要素を返すマシンを作成することです。これをさらに困難にするために、入力文字列は4色すべての任意の組み合わせにすることができます。 使用される公式のカスタムレベルは次の場所にあります。 http://pleasingfungus.com/Manufactoria/?ctm=Last_in_Line!;IN:_a_series_of_colors_OUT:_the_very_last_color;byrgyrbyrrgry:y|bbrrbryyyrrbr:r|ggryybrryr:r|b:b|:|gyrbrygbrygrrrrbrgbrbrgbrbbrg r; 13; 3; 0 ; 今週の課題は、主に圧縮のアイデアに焦点を当てています。私はこの挑戦を選んで、コンベヤーベルトの大きな混乱を必要としました。入力に4色すべてが表示されるという事実は、情報を格納することが非常に難しいことを意味します。 私は圧縮を試みませんでしたが、最初に機能するプロトタイプには114個のパーツがあり、13x13のスペースに収まるスペースがほとんどありませんでした。 得点 この課題の目標は、可能な限りいくつかのパーツを使用することです。スコアは配置されたパーツの数であり、最も低いスコアが勝ちます。 テストケースは8つしかありませんが、作成したものは理論的にはどのテストケースでも機能するはずです。提供されているテストケースは、デバッグ用です。 例 in: byrgyrbyrrgry out: y in: ggryybrryr out: r in: #don't you love degenerate cases? out: in: gyrbrygbrygbyrb out: b

3
抵抗の計算(オタクの狙撃)
こんにちは、ゴルファー、 今日の私たちの挑戦は、XKCDのコミック356と370に触発されています。抵抗器のグループの抵抗を計算するプログラムを作成します。これはコードの挑戦であることを正当化するのに十分に厳しいものであることを事前に警告しますが、ゴルフ形式で少し複雑なプログラムを書くことには一定の芸術があると思います。最も少ない数のキャラクターが勝利します。 抵抗の計算は、次の2つの式に依存しています。 抵抗が直列の場合、抵抗は各抵抗の抵抗の合計です。 抵抗が並列の場合、抵抗は各抵抗の抵抗の逆数の合計の逆数になります。 だから-例えば: あなたの課題は、可能な限り少ない文字数で、最大64個の抵抗器のグループの抵抗を計算することです。特に入力ルールの複雑さについては、お詫び申し上げます。私は、すべての言語が使用できるようにそれらを定義しようとしました。 各抵抗は2つ以上の他の抵抗に接続されます。 入力は有効であることが保証され、1つのエントリと1つの出口ポイントのみが接続されます ネットワークは、提示されているものよりも多くの数学を必要としないようにするために直列並列になります 入力は、言語に適したものに応じて、ファイル、引数、またはstdinを介して行われます。 入力は、一連の改行またはスラッシュで区切られた、抵抗の抵抗の整数からなるステートメントと、抵抗の片側が接続されている抵抗のIDを区切るスペースで構成されます。 最初の抵抗のIDは1で、連続する抵抗ごとに1ずつ増加します。 開始のIDは常に0になります 最終的な抵抗は常に0オームの抵抗を持ち、そのラインで定義された接続のみを持ちます 例えば: 次のように表すことができます 3 0 6 1 1 0 5 0 0 2 3 4 出力は、標準出力またはファイルにすることができます。次のいずれかの方法で表すことができます。 小数点以下2桁以上の数字とそれに続く改行 整数(分子)、スラッシュ、別の整数(分母)で構成され、その後に改行が続く分数。分数は最低の形である必要はありません-たとえば4/4または10/8は許容範囲です。分数は1/100以内で正確でなければなりません。完全に正確であることにはボーナスはありません。これは、固定小数点演算や浮動小数点演算のない言語が競合できるようにするための松葉杖です。 それがすべての点をカバーしているといいのですが。幸運を!

3
ロゼッタストーンチャレンジ:箱ひげ図を描く
ロゼッタストーンチャレンジの目標は、できるだけ多くの言語でソリューションを作成することです。プログラミングの多言語性を自慢して見せてください! チャレンジ 課題は、できるだけ多くのプログラミング言語で、数値のリストを入力し、データの箱ひげ図を出力するプログラムを実装することです。箱ひげ図は、データの四分位数と外れ値を表示し、スケールも表示されます。これは主に言語のショーケースであるため、言語が持つあらゆる種類の標準ライブラリ関数を使用できます。 「箱ひげ図」とは何ですか? ボックスプロットは、データをグラフ化する方法です。ボックスプロットにはいくつかの重要な機能があります。最初の特徴はボックスで、どちらの側もデータの最初と3番目の四分位数にあります。ボックスプロットの中央には、中央値を示す線があります。ボックスプロットの両端には、データの分散を示すのに役立つ「ひげ」があります。ひげはボックスから外れ値を除いてデータセット内の最小および最大のポイントまで伸びます。外れ値は個別の点としてプロットされます。 まず、データの中央値を取ります。次に、中央値よりも厳密に小さいすべてのデータポイントを取得し、このセットの中央値を計算して、最初の四分位数(Q1)にします。中央値よりも厳密に大きいすべてのデータポイントを取得し、このセットの中央値を計算して3番目の四分位数(Q3)にします。の値を見つけますR = 1.5*(Q3 - Q1)。Q1 - Rこれより少ない数値は異常値です。より大きい数値Q3 + Rは外れ値です。外れ値ではないすべてのデータポイントのセットを取り、このセットの最小値と最大値によって2つのひげの端が決まります。 入力 入力はn=数字で始まります。次にn、1行に1つずつ数値が表示されます。すべての数値は0から63までの整数です。 n=8 29 1 22 18 12 16 16 22 出力 出力はボックスプロットのレンディションになります。プロットを描画する1つの可能な方法は、それをASCIIでレンダリングすることです。ボックスプロットは、ASCII以外のさまざまな方法でレンダリングできますが、主な要件は、重要なフィーチャの正確な位置を特定できるように十分に大きく描画されることです。箱ひげ図は、等間隔に配置された約5〜10個の数値で構成されるスケールを持つ必要があります。上記のデータのプロット例を以下に示します。 +--+----+ | | | X +-+ | +------+ | | | +--+----+ 0 0 1 1 2 2 3 0 5 0 5 …

2
メール検証
コメントを無視したり、空白()を折り畳んだり、一般化されたアドレスリテラルを緩和したりして、RFC 5321(5322に見られるいくつかの文法規則)に対して電子メールアドレスを検証する関数またはプログラムを記述しますCFWS。これは文法を与えます Mailbox = Local-part "@" ( Domain / address-literal ) Local-part = Dot-string / Quoted-string Dot-string = Atom *("." Atom) Atom = 1*atext atext = ALPHA / DIGIT / ; Printable US-ASCII "!" / "#" / ; characters not including "$" / "%" / ; specials. Used for atoms. …

1
キーとモードからスケーリング
あなたのほとんどはおそらくCメジャースケールを知っています: C D E F G A B C 主音階は、隣接する音符の間隔によって特徴付けられ、半音単位で測定されます。 2 2 1 2 2 2 1 これらの間隔から、任意の音符(音階のキー)で始まる任意の主音階を作成できます。12トーンの平均律チューニングシステムの12音は次のとおりです。 C C♯ D D♯ E F F♯ G G♯ A A♯ B 同等に(いくつかの調和の同等物を置き換える): C D♭ D E♭ E F G♭ G Ab A B♭ B 隣接するノートの各ペアの間に半音があります。 各音階には、キーから始めて、7つの音符が順番に並んでいる必要があります。そうしないと、五芒星の同じ行に2つの音符が含まれる可能性があり、混乱を招きます。したがって、G#メジャー/イオニア語では、GではなくF ##になります。ミュージシャンは五芒星のどこが音符であるかを見るだけです。彼らはすでに各スケールの臨時記号を学びました。実際、G#メジャーでは、F ##は臨時記号なしでF ##の行で表されます。臨時記号は調号にありますが、その調号はFに2つの鋭角を必要とするため、通常、Abメジャーと表記されます。 2 2 …
10 code-golf  music 

2
正多角形の領域
すべての対角線が描かれた通常のNゴンが与えられた場合、対角線はいくつの領域を形成しますか? たとえば、正三角形は正確に1、正方形は正確に4、五角形は正確に11、六角形は24です。 スコアはソリューションのバイト数に反比例します 実行時間に基づいて、スコアに小さなファッジファクターを追加できます。 ポリゴンを囲む領域はカウントされません

10
非推移的サイコロゲーム
Numberphileが好きな人は、彼のチャンネルで非推移的なサイコロゲームについて説明した James Grime博士に精通しているでしょう。 ゲームは3つの6面サイコロで構成されています。 ダイ1:3、3、3、3、3、6 ダイ2:2,2,2,5,5,5 ダイ3:1,4,4,4,4,4 2人のプレイヤーがそれぞれ使用するダイスを選択します。彼らはそれらを転がし、より高いサイコロが何よりも勝ちます。 確率的に、ダイ1がダイ2を打つ> 50%の確率。同様に、ダイ2はダイ3を打ち、興味深いことに、ダイ3はダイ1を打ちます。 プログラムの撮影を書く1、2または3入力など。これは、ユーザーが選択したサイコロを示します。次に、プログラムはユーザーを倒すサイコロを選択し、21のロールの結果を出力しますComputer/User wins with x points。 ルール コードゴルフ、タイブレーカーとして投票 実際にサイコロを振るには、RNG(またはその類)を使用する必要があります。 私は出力フォーマットにあまり厳格ではありません。サイコロを見せて、なんとか21のロールを(同じロールでサイコロを分ける方法とは異なる方法で)分け、上記の文を出力する限り、問題ありません。 入力は、標準入力、コマンドライン引数、画面からなどです。 例 入力 1 出力 4 3 4 3 4 3 4 3 4 3 4 3 4 3 4 3 4 3 4 6 1 3 4 3 4 3 …
10 code-golf  game  random 

12
ランダムジェネレーターの変更によるダイス
前書き 次の実装でランダムな整数ジェネレータが与えられます 最初の呼び出しは常に1を返します。 2番目の呼び出しは、1と2の間のランダムな整数を返します。 3番目の呼び出しは、1〜3のランダムな整数を返します。 n番目の呼び出しは、1以上n以下のランダムな整数を返します。 上記の関数に基づいて、完全にランダムなランダムダイスジェネレーターを記述し、1から6までの値を等しい確率で返します。 ルール プログラム/関数の結果は、1から6までのランダムな整数になり、使用可能な形式で、つまり標準出力に、または関数の戻り値として返されます。 上記の昇順乱数ジェネレーターは、プログラムの「フリー」関数として定義できます(つまり、文字カウントにカウントされません)、または状態(n)が永続的であると想定して、必要に応じて実行される別のスクリプト/プログラムとして定義できます呼び出しの間。 プログラムの1つのユースケースで1000を超えるダイスロールが要求されることはないと想定し、最初の乱数ジェネレータ1を1000のダイスロールの最後にリセットして、のオーバーフローを回避することができますn。 あなたのプログラムが使用することはできません任意の上記で定義された昇順乱数発生器を除いて、乱数の他のソースを。もちろん、単一のサイコロロール出力ごとに、乱数ジェネレータから複数の乱数を要求することもできます。 これはコードゴルフなので、同点の場合、勝者は最短の回答またはほとんどの票です。1000未満の生成された乱数を使用して1000のサイコロを生成できる場合、10ポイントの効率ボーナスを自分に与えます。 例 ./asc-rand 1 # random integer between 1 and 1 ./asc-rand 1 # random integer between 1 and 2 ./asc-rand 3 # random integer between 1 and 3 ./asc-rand 4 # random integer between 1 and 4 …
10 code-golf  random 

6
音楽の内部の間隔のサイズを印刷する
バックグラウンド 洋楽では、すべての音符に名前が割り当てられています。各オクターブ内には、「CC#/ Db DD#/ Eb EFF#/ Gb GG#/ Ab AA#/ Bb B C」の順序で12の一意のノートがあり、最後のCは最初の1オクターブ上にあります。 異なるオクターブの音符の違いを伝えるために、数字(このチャレンジでは1桁に制限されています)が音名の最後に追加されます。したがって、C5はC4より1オクターブ高い音です。Bb6はB5の上にあります。 重要な事実は、B5とC6が隣り合っているノートであり、C0とB9が最低と最高のノートであることです。 2つの音符の間には、それらの間の半音の数である距離があります。Bb4はB4の1半音下にあり、それ自体がC5の1半音下にあります。1オクターブには12の半音があるため、Bb4はA#3から12の距離にあります。 チャレンジ あなたの課題は、STDINから音符のリストを取得し、間隔の変更のリストをSTDOUTに出力できる最短のプログラムを作成することです。 入力は、スペースで区切られた音符のリストです。各メモは、大文字のAG、オプションのbまたは#記号、および1桁の数字で構成されます。E#/ FbまたはB#/ Cbを処理する必要はありません。入力例: C4 D4 E4 F4 G4 A4 B4 C5 C4 出力は、連続する各ノート間の距離を表す整数のスペースで区切られたリストになります。常に前に+または-が付いて、ノートが前のノートと比較して昇順か降順かを示します。入力されたノートよりも常に1つ少ない数が出力されます。上記の入力の出力例: +2 +2 +1 +2 +2 +2 +1 -12 さらにいくつかの入力例: E5 D#5 E5 B4 E5 F#5 E5 B4 C0 B0 …

13
リストを使用した操作
この質問に触発されました。 数値を含むリストを指定して、印刷します。 リストの数値の合計と積 平均と中央値 リスト内の各用語の違い(例[1,2,3] -> [1,1]: 1+1=2, 2+1=3) 昇順で並べ替えられたリスト リストの最小値と最大値 リストの標準偏差 参考のために: 標準偏差 ここで、μは平均の平均、x iはiリストのth番目の項、リストNの長さです。 最短のコードが勝ちます。幸運を!

17
ハノイの塔ソルバー
ハノイの塔とは何かを参照するには、グーグルで見るか、ウィキペディアのページをご覧ください。 あなたのコードは2つのことをすることができるはずであり、それらは次のとおりです: ハノイタワーの始点にあるディスクの数を指定するユーザー入力を受け入れる タワーパズルの解決策を示すために、(何らかの形で論理的である限り)選択した方法で出力を作成します。 論理出力の例は次のようになります(4ディスクの開始を使用)。 L1L2C1L1R-2R-1L1L2C1C-1R-2C1L1L2C1 Lは、左のペグ、C中央のペグR、右のペグを表し、数字は、そのペグ上でディスクをどれだけの距離、どの方向に動かすかを示します。正の数は、右端のペグに向かって移動するペグの数を表します(ディスクが左端のペグから始まるため)。 ハノイの塔へのルールは簡単です: 一度に移動できるディスクは1つだけです。 各移動は、ペグの1つから上部ディスクを取り出し、それを別のペグに、そのペグに既に存在する可能性がある他のディスクの上にスライドさせることで構成されます。 小さいディスクの上にディスクを配置することはできません。 ディスクは、左端のペグから始まり、一番下が最大、一番上が最小です。
10 code-golf  stack 

6
n個のノードを持つすべての二分木を列挙する
整数nを指定すると、n個の内部ノードを持つすべての可能な完全な二分木を列挙します。(完全な二分木は、すべての内部ノードにちょうど2つの子を持ちます)。ツリー構造は、1が内部ノードを表し、0が外部ノード(Null)を表すツリーの事前注文トラバーサルとして出力される必要があります。 最初の数nの例を次に示します。 0: 0 1: 100 2: 11000 10100 3: 1110000 1101000 1100100 1011000 1010100 これは、最も少ないキャラクターに賞金が支払われるコードゴルフです。ツリーは、1行に1つずつ標準出力に出力されます。プログラムは、コマンドラインまたは標準入力からnを読み取る必要があります。

4
迷路で壁をノックダウンする
ルール: このゲームでは、壁とオープンスペースで構成されるサイズN x Mの長方形グリッドの上部から開始します。入力はM文字のN行で、a .はオープンスペースをx指定し、aは壁を指定します。プログラムは、Kの壁を横切る左上隅から右下隅(対角線なし)へのパスが存在するように、最小数Kを出力する必要があります。 たとえば、次の入力があるとします。 ..x.. ..x.. xxxxx ..x.. ..x.. あなたのプログラムは出力する必要があります2。 その他の例: 出力4: xxxxx x.x.x x.x.x x..xx 出力0: .xxxxxxxx .x...x... .x.x.x.x. .x.x...x. ...xxxxx. 出力6: xx xx xx xx xx 追加のヒント: 作業が楽になる場合は、コマンドラインパラメータとしてNとMを指定できます。 プログラムにパスを何らかの形で印刷させることができる場合は、追加のクレジット。
10 code-golf  maze 

7
文字列が双子のシャッフルであるかどうかを確認する
説明 2枚のカードの山をシャッフルして1枚の山を作るのと同じように、2つの文字列を混ぜて新しい文字列を形成します。 例えば、文字列HELLOとをWORLD形成するようにシャッフルすることができHWEOLRLLOD、またはHEWORLLLDO恐らく単に、又はHELLOWORLD。 それはない文字の元の順序が保存されていない場合はシャッフル。たとえば、シャッフルされた後、DインWORLDが表示されることはありませんR。これはEHLLOWRDLO、たとえば、元の文字がすべて含まれていても、HELLOとのシャッフルではないことを意味しますWORLD。 ストリングは、2つの同一ストリングをシャッフルして形成できる場合、双子のシャッフルです。たとえばABACBDECDE、双子のシャッフルは、シャッフルABCDEやで形成できるためABCDEです。DBEACBCADE2つの同一の文字列をシャッフルして形成できないため、双子のシャッフルではありません。 プログラムの詳細 入力文字列を指定して、0双子のシャッフルでない場合は出力し、双子のシャッフルである場合は双子文字列の1つを出力します。 入力文字列は4文字から20文字までの長さで、すべて大文字のアルファベット文字で構成されていると想定できます。妥当な時間、たとえば10分未満で実行できるはずです。 これはコードゴルフなので、最短のソリューションが優先されます。 I / Oの例 > ABACBDECDE ABCDE > DBEACBCADE 0 > FFFFFF FFF > FFGGG 0 > ABBA 0 > AABB AB > AABAAB AAB (ゴルフではない)実装例があります。

1
Code 39バーコードスキャナー
1974 年に開発されたCode 39は、バーコードの最も一般的に使用される記号またはタイプの1つですが、小売販売で最も頻繁に見られるのはUPC / EANシステムです。Code 39バーコードは、大文字、数字、および一部の記号をエンコードでき、特別なフォントを使用してコンピューターソフトウェアから印刷するのは簡単です。これにより、商業および産業での幅広い利用が可能になりました(会社IDバッジ、資産追跡、ファクトリオートメーションなど)。 512x512ピクセルのグレースケール画像からあらゆる方向のCode 39バーコードを読み取るための最短のプログラムまたは関数を作成します。バーコードが水平または垂直に配置されていない可能性があります。 プログラムは、標準のイメージファイル形式を受け入れ、バーコードでエンコードされたデータを標準出力または戻り値(開始/停止文字を含まない)として生成する必要があります。 有効なCode 39バーコードを複数含む画像はなく、スペース文字(ASCII 32)をエンコードするバーコードはありません。 画像に有効なCode 39バーコードが表示されない場合、プログラムは単一の疑問符(?)を出力する必要があります。 有効なバーコードを使用した場合と使用しない場合の両方で、JavaScriptリファレンス実装と画像のテストスイートをPNG形式で準備しました。最新のWebブラウザーでは46のテストケースのうち3つだけが失敗するリファレンス実装は、上記の仕様に厳密に準拠するのではなく、1つの可能なデコードアルゴリズムを示すことを目的としています。 有効な送信は、これらのテストの少なくとも80%(37/46)に合格し、適度に高速なCPU(例:2.6 GHzクアッドコア)の各イメージで1分以内に完了します。私のリファレンス実装はテストの93%に合格し、各イメージを10秒以内に処理します(Google Chromeを実行しているデスクトップPCで)。 (この質問は2011年5月28日にメタで提案されました。)
10 code-golf 

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