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

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

4
ロゴでのゴルフのヒント
ロゴは1967年に設計されたプログラミング言語であり、他の言語に比べて比較的少ないバイト数でグラフィックを作成できる可能性が非常に高いです。 ロゴは、タートルグラフィックスを利用した教育用プログラミング言語です。 ロゴには、次のような興味深い実装がいくつかあります。 Appleロゴ アタリロゴ LibreLogo(私の個人的なお気に入り) Texas Instrumentsロゴ UCBLogo そして他の多くの ... さらに、複数のロゴインタープリターをオンラインで見つけることができます。 このページは、ロゴプログラミング言語の実装に関するコードゴルフのヒントのハブとなることを目的としています。 出典:ジム・マラーによるグレート・ロゴ・アドベンチャー(1998)
9 code-golf  tips 

6
ポリグロットクインを後方に転送します。
あなたは一つの言語でそのソースコードとソースコードを出力ポリグロットしなければならない後方別では。通常のルールとは異なり、現在のファイルを読み取るか、組み込みを使用して提出物のソースコードを取得し、1つの言語でそれを逆にすることができます。ソースコードを回文にすることはできません。 たとえば、ソースコードがの場合、ある言語と別の言語でabcxyz出力する必要があります。コードがの場合、回文であるため無効です。abcxyzzyxcbaabcxyzyxbca 幸運を!

15
これは何色ですか?
入力としてファイル名を使用するプログラムをゴルフし、ファイルの色を出力する必要があります。 ファイルにはこれらの拡張子のいずれかが含まれますが、プログラムでサポートする必要があるのは1つだけです。答えのどれを言ってください。 .jpg .png .svg .gif .bmp そして今、クラシックなレイアウトに。 入力 上記の拡張子のいずれかが付いたファイル名。 代わりに、画像オブジェクトまたは既にエンコードされた画像を使用することもできます。 出力 そのファイル内の唯一の色は、オプションのリーディング付きの6桁の16進コードで、#たとえば#000000黒です。 RGBカラーの10進数または16進数の値を含むリスト/タプル/文字列を、数値 , |などの明確な区切り文字などで出力することもできます。 透明度は出力できません。 ファイルがすべて1色でない場合は、偽ではない偽の値を出力し、何も印刷せず#000000に終了する必要があります。これは、単にファイルを開いて最初のピクセルのRGB値を取得できないようにするためです。STDERR ルール 16進コードは、ファイルがすべて1色の場合にのみ出力する必要があります。 ファイルは500x500ピクセルになります ピクセルの透明度はすべて0%です。 これはコードゴルフなので、最短のコードが勝ちます! 例 #16C293 #8B16C2 #959090 #84F00C 偽の値

22
三角信号を生成
仕事: 与えられたサンプルインデックスxを使用して、周期4サンプルおよび振幅1の三角波のサンプル値f(x)を計算します。オフセットは負にすることができ、サンプル値は{0、1、-1}のいずれかになります。 テストケース: -5 -> -1 -4 -> 0 -3 -> 1 -2 -> 0 -1 -> -1 0 -> 0 1 -> 1 2 -> 0 3 -> -1 4 -> 0 5 -> 1 個人的に私はCで2つのアプローチを知っています。1つはルックアップテーブルを使用する方法、2つ目は条件付き命令を使用する方法です。ブラウニーポイントについて、純粋な「数学」アプローチで私を印象づけることができますか?(つまり、条件付き命令を使用したり、LUTにメモリを使用したりしない、純粋な機能的アプローチを意味します。)しかし、これは制限ではありません。できない場合、または言語がサポートしていない場合-解決策を投稿してください

14
多次元座標のインデックスを評価する
N次元座標のコレクションが提供されます。以下に例を示します。 {2,3,4} これは、2x、3y、4zの3次元配列と考えることができます。次元はいくつあってもかまいません。この例では、合計24のノードがあります。各ノードには、{x、y、z}を使用してインデックスを付けることができます。5番目のノードにアクセスするために提供されるインデックスは、以下の表に基づいて{0、1、0}になります。 ## | x y z 0 1 2 ----------- 0 | 0 0 0 1 | 0 0 1 2 | 0 0 2 3 | 0 0 3 4 | 0 1 0 5 | 0 1 1 6 | 0 1 2 7 | 0 …

15
オイラー法を実装する
この課題の目標は、オイラー法を使用して、形式f (n)(x)= cの微分方程式の解を近似することです。† 入力は、n番目の値がf (n)(0)の値を表す整数のリストになります。最初の整数はf(0)、2番目の整数はf '(0)のようになります。このリストの最後の整数は定数であり、常に同じままです。 また、ターゲット値を表す正の(ゼロ以外の)整数xも入力として提供されます(f(x)を推定しようとしています)。オイラー法のステップサイズは常に1になります。したがって、合計xステップを取る必要があります。 あなたはオイラー法とunfamliarている場合は、ここでの入力のための説明と詳細な例である[4, -5, 3, -1]、X = 8。 x f(x) f'(x) f''(x) f'''(x) 0 4 -5 3 -1 1 4-5 = -1 -5+3 = -2 3-1 = 2 -1 2 -1-2 = -3 -2+2 = 0 2-1 = 1 -1 3 -3+0 = -3 0+1 …

5
白い鍵盤上のピアノの和音
バックストーリー[これは真実ではありません] ピアノは次のように設定されています。 しかし、私のピアノでは、黒い鍵がすべて壊れています! それでも壊れたピアノでコードを弾きたいと思っています。 音楽では、コードは一緒に演奏されるノートのグループです。コードの入力を可能にするために、最初に半音とは何かを定義します。 半音とは何ですか? 半音は、西洋音楽で最も短い距離です。ピアノの上部を見ると、通常は黒鍵から白鍵に、またはその逆に移動できることがわかります。ただし、Band CとEandの間Fには黒いキーはありません。 コードとは? この課題の目的のために、コードを、特定の数の半音を間に挟んだ一連の音符と定義します。たとえば、4-3-3コードから始めてみましょうC(音楽の人にとって、これはFメジャーのV 7コードです)。から始めCます。私たちは4つの半音をカウントアップ:C#、D、D#、E。次のノートがありE、我々はその後3つの半音をカウントアップ:F、F#、G。次のノートがありG、我々はその後3つの半音をカウントアップ:G#、A、Bb。だから、私たちは得るC-E-G-Bb。わーい!しかし、待って... Bbは黒い鍵であり、それらは壊れています...しかし、から始めるとG、G-B-D-F!わーい! 入力 入力は、適切な形式の整数のリストとして提供されます。これは、上記のコードを表します。 出力 出力は、白いキーを使用するだけで開始できるメモのリストになります。キー名はすべて1文字であるため、これは最大7つのノートすべての文字列にすることもできます。空の出力も処理できる必要があります。 テストケース input -> output // comments 4 3 -> C F G // this is a major triad 3 4 -> D E A // this is a minor triad 4 3 3 -> …

10
エラーを処理するHello World
次の機能を持つプログラムまたは関数を記述します。 プログラム/関数は、最初に文字列Hello, world!を標準出力ストリームに書き込もうとします。(プログラム自体の些細な動作ではなく、I / Oに重点が置かれているため、この課題では他の形式の出力は受け入れられません。)成功した​​かどうかによって、次のようになります。 出力に成功した場合Hello, world!、プログラム/関数はそれ以上動作せずに終了します。 エラーのために正しい出力を生成できなかった場合、プログラム/関数は文字列Error writing "Hello, world!"を標準エラーストリームに書き込もうとします。(この課題では、エラー処理自体にエラー処理は必要ありません。) 明確化 プログラム/関数は入力なしで実行されます(動作するために入力が絶対に必要な言語で記述されている場合を除きます。その場合、可能な限り単純な入力で実行されます)。 出力を生成する場合、必要に応じて単一の末尾改行を生成することもできますが、これは必須ではありません。 プログラムが実装する「標準出力への書き込みエラー」の定義では、少なくとも以下のケースをエラーとして扱う必要があります。 標準出力が存在しない(つまりstdout、閉じたファイルハンドルであり、ファイル記述子1が存在しない、またはこれらのケースが、使用している言語とOSに変換される)。 空き領域が残っていないディスク上のファイルを参照する標準出力。 接続の終わりをすでに閉じている別のプログラムに接続する標準出力。 そして、少なくとも以下のケースを成功(すなわち、エラーではない)として扱う必要があります: 標準出力は端末に接続され、Hello, world!画面に表示されます。 標準出力はファイルに接続し、ファイルにHello, world!書き込まれます。 上記のルールに準拠している限り、出力エラーとして数える詳細を選択できます。 上記のエラー状況が発生しても、プログラム/関数がクラッシュすることはありません。使用する終了コードはあなた次第です。 プログラム/関数は、標準エラーストリームで発生したエラーの性質を記述しないでください。上で指定した文字列を出力するだけです。エラーが発生したかどうかに関係なく、標準エラー(コンパイラの警告など)の無関係な出力は、無条件に生成された場合にのみ有効です。 プログラムは1つのオペレーティングシステムでのみ動作する必要があります(ただし、上記のエラーが理にかなっている必要があります。ほとんどのマルチタスクコンシューマーオペレーティングシステムで動作するように十分に一般的なものにしようとしましたが、より奇妙なオペレーティングシステムでもかまいません。このチャレンジから除外されました)。プログラムが移植性がない場合は、提出するタイトルに、実行する必要がある前提条件をリストします。 このタスクは、すべての言語で可能であるとは限りません(すべての言語でプログラムがカスタムの方法で出力エラーを処理できるわけではありません)。可能な場合は言語を選択する必要があります。 プログラム/関数が機能することを確認してください!ライブラリ関数のドキュメントを信頼して、彼らが言うことを実行しないでください。単純な出力関数のエラー処理は、理論的には関数がエラーを処理すると主張している場合でも、実際には壊れていることがよくあります。 テストケース bashLinuxで上記の各エラー状態をシミュレートする方法を次に示します(Linuxを使用する必要はありませんが、これをテストするのが最も簡単なシステムである可能性があります)。 your_program_here >&- # nonexistent stdout your_program_here > /dev/full # out of disk space mkfifo test # note: change "test" …

4
画像の「監視」
問題: この挑戦は私が抱えていた本当の問題から来ています。職場でデュアルモニターをセットアップしていて、壁紙として次の画像を使用したいと考えています。 しかし、私のモニターにはかなり重要なベゼルがあり、背景を設定すると、次のようになり、桟橋が表示されます(appiers?)。 以下の画像のように、中央を切り取った画像を作成し、元のサイズに戻すことでこれを解決できました。 チャレンジ: 画像を取り込み、デュアルモニターセットアップで使用するために "監視"するプログラムを作成します(つまり、画像の中央部分を削除します(ベゼルがある場所))。ルールは次のとおりです。 パス(文字列引数など)として、またはファイル選択ダイアログの形式で画像を受け入れる完全なプログラムである必要があります。 プログラムは、画像の中心から切り取るための垂直線の数(幅が1ピクセル)を入力として受け取る必要があります。 トリミングは元の画像の中央(幅方向)から行う必要があります 結果の画像は、入力画像の元のサイズに再スケーリングする必要があります。(半分を個別にスケーリングしてから連結したり、連結してからスケーリングしたりできます。個別にスケーリングすると、より良いイメージ/効果が得られますが、現実の世界ではほとんど目立ちません) 背景画像は一般的に均一であるため、この課題を簡単にするために、入力画像のピクセル数は偶数になり、削除する線の数も均一になります。 この挑戦はコードゴルフです-バイトで最短のコードが勝ちます 幸運を!

2
双方向クインチェーン
PPCGはすでに十分な数のクインを持っていません... チャレンジ: あなたの仕事はプログラム「A0」を作成することです。このプログラムを入力なしで実行すると、何も出力されません。このプログラムを入力して実行すると、「A1」が出力されます。「A1」を入力なしで実行すると、「A0」が出力されます。"A1"を入力で実行すると、 "A2"が出力されます。「A(k)」は、入力なしで実行すると「A(k-1)」を出力し、入力付きで実行すると「A(k + 1)」を出力します。 細部 この課題は十分に単純だと思います。本当に他のルールはありません。ところで、すべてのプログラムには、少なくとも1バイトが含まれている必要があります。入力はASCII文字のみで構成されると想定して、必要に応じて空白を無視してもかまいませんが、特定の入力を指定することはできません。出力はSTDOUTまたはSTDERRのいずれかになりますが、プログラムはすべて同じものに出力する必要があります。もう1つにもテキストが含まれている可能性があります(そのため、STDOUTに出力してエラーで終了する場合があります)。それを指摘してくれた@Dennisに感謝します。 すべてのプログラムは同じ言語である必要があり、各プログラムは他のプログラムとは異なる必要があります。 スコアはプログラム「A0」の長さに等しい。これはコードゴルフのチャレンジなので、最低のスコアが勝ちます!

4
ミアセットの順序
サイコロゲームMiaは、サイズ2のセットの非常に重要な順序を導入します。 {3,1} < {3,2} < {4,1} < {4,2} < {4,3} < {5,1} < {5,4} < {6,1} < {6,5} < {1,1} < {2,2} < {6,6} < {1,2} 一般に、タプル内の順序は重要{x,y}={y,x}で {1,2}はなく、何よりも大きく、ペアは非ペアよりも大きく、同数の場合は数値によって決定されます。 ここで、nサイコロを使用したいとします。また、サイコロにはm顔があります。 例: {1,5,3,4} < {1,2,6,3} 5431 <6321以降 {1,2,3,5} < {1,1,5,6} < {1,1,5,5}, {1,1,6,6} < {1,1,1,3} < {2,2,2,3} < {1,1,1,1} < {1,2,3,4} {2,2,5} …

3
非単純なリーマンゼロの虚数部
前書き リーマン仮説によれば、リーマンゼータ関数のすべてのゼロは、負の偶数の整数(トリビアルゼロと呼ばれます)または1/2 ± i*t実t数値の形式の複素数(非トリビアルゼロと呼ばれます)のいずれかです。この課題では、虚数部が正である非自明なゼロのみを考慮し、リーマン仮説が真であると仮定します。これらの重要なゼロは、それらの虚数部の大きさによって並べ替えることができます。最初のいくつかはおよそ0.5 + 14.1347251i, 0.5 + 21.0220396i, 0.5 + 25.0108576i, 0.5 + 30.4248761i, 0.5 + 32.9350616iです。 チャレンジ 整数与えられN、出力の虚部Nリーマンゼータ関数の番目の非自明なゼロは、最も近い整数に丸め(丸い半アップ、そう13.5に丸めることになります14)。 ルール 入力と出力は、ご使用の言語で表現可能な整数の範囲内になります。 先に述べたように、この挑戦​​の目的のために、リーマン仮説は真実であると仮定されます。 入力がゼロインデックスか1インデックスかを選択できます。 テストケース 次のテストケースは、インデックスが1つあります。 1 14 2 21 3 25 4 30 5 33 6 38 7 41 8 43 9 48 10 50 50 143 100 237 …

4
ウェブカメラのライトを点滅させてください!
この課題は、ツェッペリンによるブリンクザキャップスロックに触発されました。 ほとんどのウェブカメラは、スパイを防止するためのハードウェアメカニズムによって制御され、ウェブカメラが使用されているかどうかを示す小さな統合LEDライトを備えています。 あなたの仕事はそれを点滅させることです: それをオン。 0.5(±0.1)秒待ちます。 もう一度オフにします。 0.5(±0.1)秒待ちます。 繰り返す。 可能であれば、GIFまたはWebカメラの点滅のビデオを含めてください。回答にGIFがない場合は、実行中のプログラムのGIFを追加してください。 ルール 言語に1秒未満のsleepコマンドがない場合、プログラムは追加のバイトのペナルティで、代わりに1秒の遅延を使用することがあります。(置換.5で1) 言語が何らかの理由でをサポートしていない.5場合、ペナルティは2バイトです。(置換0.5で1) ユーザーが停止しない限り、プログラムはループする必要があります。 LEDはオンまたはオフのどちらでも起動できます。より有益な方を使用できます。 LEDに消灯遅延がある場合、追加のバージョンを提供する場合を除いて、それを考慮する必要はありません。 詳細については、このコメントとその回答を参照してください。 得点 これはcode-golfであり、バイト単位での最短の回答が優先されます。

11
次数nまでの可変グループのすべての組み合わせを作成する
仕様 与えられたm変数は、次までのすべての組み合わせを作成しますn。例えば、 2つの変数(aおよびb)を順序にマッピングする出力は次の1ようになります。 a b ab 2つの変数(aおよびb)を順序にマッピングする出力は次の2ようになります。 a a 2 b b 2 ab a 2 b ab 2 a 2 b 2 2つの変数(aおよびb)を順序にマッピングする出力は次の3ようになります。 a a 2 a 3 b b 2 b 3 ab a 2 b a 3 b a 3 b 2 ab 2 ab 3 a …

4
終了しますが、Windowsファイルです!
実行時に自分自身を現在のディレクトリに、自分自身という名前のソースファイルに作成するクインを書き込みます。ここではWindowsを使用するため、ファイル名(したがってクイン)には次の制限が必要です。 これらの文字はどれも \ / : ? * < > | 211 255文字未満 制限と仮定 あなたのコードは完全なプログラムでなければなりません(結局それは実行されるでしょう)。 ソースファイルからのコピーはありません。 名前にQuineが含まれている別のファイルがないと想定できます(Quine(1)が生成されるため)。 エラーは許可されます(エラーがソースコードに入らない限り) これはcode-golfで、バイト単位の最短コードが優先されます。 編集する 多分私ははっきりしていませんでした、クインの名前のファイルは実際にクインを含まなければなりません。私の悪い。

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