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

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

1
フロアプランニング!
免責事項:この質問の中で語られたストーリーは完全に架空のものであり、イントロを提供する目的でのみ発明されました。 私には建築家の友人がいて、コードゴルフの概念とこのサイトを彼に説明した後、彼は実際に変更に役立つものをコーディングすべきだと言った。私は彼に何が役に立つと思うかを尋ねました、そして、建築家である彼は、彼が特定のサイズの家の中で特定のサイズの部屋のためのすべての可能な配置を彼に与えたフロアプランナーを持つことを楽しむと答えました。code-golfは結局役に立たないということを証明し、このプログラムを可能な限り最小のバイト数で提供すると思った。 あなたのタスク: 家全体の大きさを含む配列Dと、室内の部屋の大きさを含む2番目の配列Rが与えられたときに、ASCIIアートとして、家の中の部屋のすべての可能な構成を出力するプログラムまたは関数を記述します。 すべての部屋と家の外壁は、標準のASCIIボックスとして形成する必要があります。垂直壁の場合はシンボル、水平壁の場合は-シンボル、角の場合は+シンボル。たとえば、寸法が[4,4]の家は次のようになります。 +----+ | | | | | | | | +----+ ご覧のとおり、角は一連の寸法の一部としてカウントされません。-または|の数 辺を形成する文字は、寸法で指定された数と等しくなければなりません。部屋は壁を共有したり、家と壁を共有したりできます。部屋には小さな部屋を含めることはできません。 たとえば、構成 +--+---+-+ | | | | | | | | +--+---+ | | | | | +--------+ D = [5,8]およびR = [[2,2]、[2,3]]に有効です。 入力: 2つの配列。1つには家の寸法である2つの整数が含まれ、もう1つには部屋の寸法を含む一連の配列が含まれます。 出力: 文字列として可能なすべての家の配列、または一貫した方法で区切られたすべての可能な家を含む文字列。まったく同じ構成のローテーションは1回しかカウントされないことに注意してください。 テストケース: D R -> Output [4,3] [[2,1],[4,1]] …

9
奇妙なオートマトンを実装する
私はセルオートマトンで遊んでいて、いくつかの興味深い動作をしているものを見つけました。仕組みは次のとおりです。 バイナリ文字列を左から右に読み取ります。1その後に2他の値が続く場合0、結果にa を追加して読み取りを続けます。に遭遇した場合0(または、残っている値が3つ未満の場合)、現在の値とaを追加して1読み取りを続行します。文字列の最後1に、結果にシングルを追加します。 これは、1世代の解決例です 01011111 ^ 最初に遭遇する0ので01、結果に追加します 01011111 ^ 01 ここでa 1が発生したため、ゼロを追加して次の2つの値をスキップします 01011111 ^ 010 私たちは別の1ものに遭遇するので、同じことをします 01011111 ^ 0100 現在1、ジャンプするのに十分ではない別のスペースがあるので、現在のセルと1(この場合は11)を追加します 01011111 ^ 010011 最後にいるので、単一を追加して1この世代を終了します 01011111 ^ 0100111 仕事 任意の妥当な形式の入力を指定すると、オートマトンの1世代を計算する関数またはプログラムを作成する必要があります。 これはコードゴルフの質問なので、回答はバイト単位で記録され、バイト数は少ない方が良いでしょう。 サンプル実装 Haskellのサンプル実装を次に示します(関数を定義しますdが、プログラムは無限に繰り返しを出力します)。 d('1':_:_:x) = "0" ++ d x d(a:x) = a:'1':d x d x = "1" r x = x:map …

4
これは……要塞です!
Fortressは、Sun Programming Language Research Group(RIP Fortress)によって開発された言語であり、独自の特性があり、プログラムをさまざまなフォントスタイル(太字、太字、斜体など)でレンダリング(「強化」)することができました。ローマなど)。目標は、HTMLマークアップで1文字のFortress変数を表すことです。 1文字の変数の強化がどのように機能したかを以下に示します(コードゴルフの目的でドキュメントを簡略化/変更)。 変数が繰り返し大文字(つまりZZ)の場合、黒板の太字(𝔸𝔹ℂ𝔻𝔼𝔽𝔾ℍ𝕀𝕁𝕂𝕃𝕄ℕ𝕆ℙℚℝ𝕊𝕋𝕌𝕍𝕎𝕏𝕐ℤ)でフォーマットされます。 変数の前に下線が付いている場合、変数はローマ字フォントでレンダリングされます(そのまま) 変数の後に下線が続く場合、変数は太字フォント(<b>v </b>)でレンダリングされます 変数の前にも下線も付いていない場合、変数は斜体フォント(<i>v </i>)でレンダリングされます 黒板の太字のコードポイントは、𝔸:1D538、𝔹:1D539、 ℂ:2102、𝔻:1D53B、𝔼:1D53C、𝔽:1D53D、𝔾:1D53E、ℍ:210D、𝕀:1D540、𝕁:1D541、𝕂:1D542、𝕃:1D543、𝕄:1D544、ℕ:2115、𝕆:1D546、ℙ:2119、ℚ:211A、ℝ:211D、𝕊:1D54A、𝕋:1D54B、𝕌:1D54C、𝕍:1D54D、𝕎:1D54E、𝕏:1D54F、𝕐:1D550、ℤ:2124。これらはプログラム内でそれぞれ1バイトとしてカウントされます(選択した言語がこれらの文字をまったく処理できる場合) 入力は、繰り返されるASCII大文字、またはアンダースコアなし、先頭アンダースコア、末尾アンダースコア付きの単一ASCII文字のいずれかです(AKA _a_は入力されません)。これはコードゴルフですので、バイト数が最も少なくなります! テストケース: a => <i>a</i> BB => 𝔹 c_ => <b>c</b> _d => d E => <i>E</i> G_ => <b>G</b> _H => H ZZ => ℤ リンク:仕様、バージョン0.1 alphaの直接ダウンロード。 参照実装(これはFortressにありますが、Fortressはほとんどの二重文字を好まないため、この実装はDにあります): dstring fortify(string arg) { import …
11 code-golf 

3
要求された天気に合わせて部族のトーテムをセットアップする
スー族の村があります。トーテムがあります: __ ___| |___ \/ \ / \/ /\ ``| |`` /\ /^^\ | | /^^\ / /\ \ | | / /\ \ '''''''''''''''''''''''''''' トーテムにより、スーはさまざまなタスクを支援するために天気をマスターできます。村人が適切な天気を呼び起こすためにトーテムを適切に装飾するのを助けてください。トーテムにはいくつかの部分があります。 __ ___|AA|___ \/ \BBBBBBBB/ \/ /\ ``|CC|`` /\ /^^\ |DD| /^^\ / /\ \ 13 |EE| 42 / /\ \ '''''''''''''''''''''''''''' A以下のためにある日 ()や雲 ww …

5
コンピューターがさわやかなクッキーを味わうことはありません
github.com/JackToaster/Reassuring-Parable-Generatorに触発され、次にxkcd.com/1263に触発されました。考えられる単語は、そのリポジトリのreassuring.cfgから派生しています。 reassuring.cfgを見て(12回目のコミットを使用)、出力が一致する文法を確認することをお勧めします(出力は、文法に一致するすべての文字列のリストです)。 タスク:プログラムは、pastebin pastebin.com/2SNAJ1VHに含まれる正確なテキストの大文字小文字を区別するすべての7968行を出力する必要があります。pastebinのコピーがWayback Machineに保存されます 以下は、ペーストビンからの33の動機付けされた行のサンプルです。 Computers can't enjoy a salad. Computers can't enjoy a cake. Computers can't enjoy a ice cream cone. Computers can't enjoy a meal. Computers can't enjoy a drink. Computers can't enjoy a steak. Computers can't enjoy a chicken dinner. Computers can't enjoy a piece of …

1
正弦波ASCIIアートアニメーションテキスト
コンピューターがi3、i5、i7の代わりにx86と呼ばれたときのコンピューターの機能を示す古いデモを見逃しています。386で最初に見たものの1つは、現在25周年を迎えているFuture CrewのUnrealデモでした。午前0時43分にデモの最初の部分が開始され、正弦波のパスに沿ってスクロールテキストが表示されます。ASCIIアートでその効果を模倣してみましょう! チャレンジ このパスが与えられた場合: *** *** *** *** ** ** * * * * * * * * ** ** *** *** ****** そして、入力テキスト、このパスに続くテキストを次のように描画します。 Thi Golf! s i de Yay s Co ! P r d o n g a ra s mmi zle ng Puz スペースはパス内の文字としてカウントされ、テキストがサンプルよりも長い場合はパスが繰り返されることに注意してください。 アニメーション部分 テキストを描画したら、100 ms待機して(約10 …

15
繰り返される相互
あなたがする必要があるのは、入力として小数を取り、数が整数になるまで、小数部分の逆数を繰り返し取った結果を出力する関数/プログラムを作成することです。 より具体的には、プロセスは次のとおりです。 xを入力とします xが整数の場合、それを出力します。 そうでない場合:。2に戻ります。x←1frac(x)バツ←1frac(バツ)x \leftarrow \frac{1}{\mathrm{frac}(x)} frac(x)frac(バツ)\mathrm{frac}(x)はの小数成分であり、等しくなります。最大整数未満であるXのある床、。xバツxx−⌊x⌋バツ−⌊バツ⌋x - \left\lfloor x \right\rfloor⌊x⌋⌊バツ⌋\left\lfloor x \right\rfloorxバツx テストケース: 0 = 0 0.1 = 1/10 -> 10 0.2 = 1/5 -> 5 0.3 = 3/10 -> 10/3 -> 1/3 -> 3 0.4 = 2/5 -> 5/2 -> 1/2 -> 2 0.5 = 1/2 -> …

4
不飽和度
不飽和度 これは特に難しいコードのパズルではありませんが、それを解決する複数の方法を見てみたいと思います。 不飽和度は、原子間の二重化学結合の数、および/または化合物の環の数です。 XaYbZc(a、b、cは化合物中のX、Y、Zの原子数)の形式で化合物の分子式が与えられます-式は任意の長さで、任意の化学元素を含むことができます周期表では(ただし、C、H、N、F、Cl、Br以外の元素は、式に含まれていないため無視されます)。化合物には、少なくとも1つの炭素原子が含まれます。不飽和度を計算して表示する必要があります。 たとえば、化合物ベンゼン(下図)は、3つの二重結合(原子間の二重線で表示)と単一の環(ループで接続された原子の数)があるため、DoUは4です。 LibreTextsで定義されているとおり: DoU =(2C + 2 + N − X − H)/ 2 どこ: C は炭素原子の数です N は窒素原子の数です X あるハロゲン原子の数(F、Cl、Br、I) H は水素原子の数です テストケース: C6H6 --> 4 C9H2O1 --> 0 C9H9N1O4 --> 6 U1Pt1 --> Not a valid input, no carbon Na2O1 --> Not a valid input, …

19
HEX2をRGBAに変換する方法は?
アートの世界は色に満ちていますが、ネットワークの世界は、異なる色とそのレンダリングのアートの世界よりもさらに充実しています。そのため、ある形式のカラー形式を別の形式に変換する方法を知る必要があります。 課題は自明です: 与えられた16進コード(#00ff0080など)をRGBA(などrgba(0, 255, 0, 0.5))に変換するプログラム/関数を作成します。 ルール: HEXをRGBAに変換するための外部ライブラリ/ビルトインは許可されていません。ただし、jQueryとそのような構文置換は許容されます。 標準入出力ルールが適用されます。 アルファの形式は、(1 == 100%)またはもう1つ(100 == 100%)の間であり、これはあまり重要ではありません。 4つの変換された値(String、Array、List、選択)を返す限り、出力は柔軟です。 #最初から入力せずに入力することもできます。したがって、入力は#RRGGBBAAまたはとして取得できますRRGGBBAA。16進コード(を除く#)は常に8文字の長さであると想定できます。 アルファを含むすべての値を255で除算する必要があります。最小小数点精度(アルファの場合、小数点以下2桁になります)。 テストケース Input: 00ff0080 Output: 0, 255, 0, 0.5 得点 code-golf、最小バイト数のコードが勝ちます。

5
要因を共有する最小の未使用数
これは、工場の質問のかなりの実行です。シーケンスを定義し、インデックスを指定してエントリを出力するコードをゴルフします。 シーケンスの最初の項目は2です。 シーケンスのn番目の項目は、nと1以外の最小の正の整数で、リストにまだ現れていないn(1以外)と少なくとも1つの因子を共有します。 テストケース シーケンスの最初の25項目は次のとおりです。 1 2 2 4 3 6 4 8 5 10 6 3 7 14 8 12 9 15 10 5 11 22 12 9 13 26 14 7 15 18 16 20 17 34 18 16 19 38 20 24 21 27 22 11 23 …

3
リンドン単語分解
バックグラウンド A リンドン・ワードは、そのすべての他の回転より厳密に辞書的に小さい非空の文字列です。これらのサブワードが辞書式に増加しないように、Lyndonワードの連結として任意のストリングを一意に因数分解することができます。あなたの挑戦はこれをできるだけ簡潔にすることです。 詳細 印刷可能なASCII文字列のLyndonワード分解を順番に列挙する関数またはプログラムを実装し、結果の部分文字列を何らかの配列またはストリームとして出力する必要があります。文字はコードポイントで比較する必要があり、すべての標準入出力メソッドが許可されます。code-golfの場合と同様に、バイト単位の最短プログラムが優先されます。 テストケース '' [] 'C' ['C'] 'aaaaa' ['a', 'a', 'a', 'a', 'a'] 'K| ' ['K|', ' '] 'abaca' ['abac', 'a'] '9_-$' ['9_', '-', '$'] 'P&O(;' ['P', '&O(;'] 'xhya{Wd$' ['x', 'hy', 'a{', 'Wd', '$'] 'j`M?LO!!Y' ['j', '`', 'M', '?LO', '!!Y'] '!9!TZ' ['!9!TZ'] 'vMMe' ['v', 'MMe'] 'b5A9A9<5{0' ['b', …

9
ASCII等高線図を描く
マーチングスクエアアルゴリズムがすべてのセル(0ベースのラベル付きID)で識別する次の3x3ブロックを検討します。 0: ... ... ... 1: ... ... \.. 2: ... ... ../ 3: ... --- ... 4: ..\ ... ... 5: /.. ... ../ 6: .|. .|. .|. 7: /.. ... ... 8: /.. ... ... 9: .|. .|. .|. 10: ..\ ... \.. 11: ..\ ... ... 12: …

7
詳細なIP範囲ジェネレーター
タスクは単純で、2つのIPアドレスaとが与えられb、その範囲内のすべてのアドレスを出力します。 例 例#1: f(a = 192.168.0.1, b = 192.168.0.4) 192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.4 例#2(TIOはこれを切り捨て、テスト時により小さい範囲を使用します): f (a = 123.0.200.0, b = 124.0.0.0) 123.0.200.0 123.0.200.1 ... # Omitted pattern 123.0.200.255 123.0.201.0 ... # Omitted pattern 123.0.201.255 ... # Omitted pattern 123.0.255.255 123.1.0.0 ... # Omitted pattern 123.255.255.255 124.0.0.0 入出力 a < b …

10
私は特別なNボナッチ数ですか?
もともとこの質問で@DJMcMayhemによって発明されたNボナッチ数列は、整数0と1で始まり、前のN数を追加して次の数を生成することによって生成された数列です。特別なN-ボナッチ数列は、0と1以外の数字のペアで始まるN-ボナッチ数列です。XとYという名前になります。Nが既に数列にある用語の数よりも大きい場合は、使用可能なすべてを追加します条項。 たとえば、通常のフィボナッチ数列のNは2(前の2つの項目を取ります)、XとYは0と1、または1と1になります。 あなたのタスク: 入力された整数(A)が次の3つの整数によって生成される特別なNボナッチシーケンスの一部であるかどうかをチェックするプログラムまたは関数を作成します(2番目の入力をN、3番目と4番目をXおよびYとして使用) 。N = 1の特殊なケースを処理するようにしてください。 入力: 4つの非負整数、A、N、X、およびY。 出力: AがN、X、およびY入力によって生成されたNボナッチ数列の一部であるかどうかを示す真偽値。 テストケース: Input: Output: 13,2,0,1->truthy 12,3,1,4->falsy 4,5,0,1-->truthy 8,1,8,9-->truthy 9,1,8,9-->truthy 12,5,0,1->falsy [0,1]>[0,1,1]>[0,1,1,2]>[0,1,1,2,4]>[0,1,1,2,4,8]>[0,1,1,2,4,8,16]>etc. 得点: これはcode-golfであるため、バイト単位の最低スコアが優先されます。

1
I <3条件
最終的に、コードには非常に長く退屈に見える条件がたくさんあります。 if flag == 1: while have != needed: if type == 7: これらは、はるかに愛らしい&lt;3条件付きの対応物に変換できます。 if abs(flag - 1) + 2 &lt;3: while 3 - abs(have - needed) &lt;3: if 2 + abs(type - 7) &lt;3: 仕事 あなたの仕事は、条件を取り、の観点からそれを作ることです&lt;3。重要な唯一の間隔は、&lt;との間に何もないことです3。 条件文は、いずれかの方法で区切ら二つの表現になります==、!=、&gt;、&lt;、&gt;=または&lt;=。 式には、加算、減算、単項否定(-something)のみが含まれます。各変数または数値の前+または-前に1つまたは前があります(最初または何もないまたは-前にあるものを除く)。 番号はになり[0-9]+、変数はになります[a-z]+。答えを使用する必要がある場合|x|(の絶対値x)、abs()関数を使用します。すべての変数が整数であり、入力内のすべての数値定数が&lt;1000であると仮定できます。 出力は、最も単純な形式である必要はありません。上記のような条件付きである必要があります。つまり、1つの条件付き記号で区切られた2つの式のみである必要がありますがabs、有効な式を囲んで関数を使用することもでき、有効性の観点からは変数のように機能します。 入力に変数の値の出力がない場合は、常にfalseであるが、に関しては条件を出力します&lt;3。 課題の一部は、その方法を見つけることですが、have != needed上記の手順は次のとおりです。 have != needed have - …

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