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

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

25
メビウス関数
メビウス関数 メビウス関数は重要な数論関数です。 提出は正の整数nを受け入れ、で評価されたメビウス関数の値を返す必要がありますn。 定義 メビウス関数μ(n)は次のように定義されます。 | 1 if n is squarefree and has an even number of distinct prime factors μ(n) = | -1 if n is squarefree and has an odd number of distinct prime factors | 0 otherwise nnの素因数分解の指数がすべて厳密に2よりも小さい場合、平方自由と呼ばれます。(または、2つの除算の累乗に対する素数はありませんn)。 テストケース ここで、μの最初の50個の値を確認できます。 ウィキペディアのパブリックドメイン画像 メビウス関数は、OEISのシーケンス番号A008683です。 これらは最初の77の値です: 1, -1, -1, 0, …

1
3つの相互のクイン
タスク この課題では、あなたの仕事は、一種の相互に似たシステムを形成する3つのプログラムを作成することです。プログラムを呼ぶことにしましょうA、BとC。プログラムの1つに別のプログラムのソースが入力として与えられた場合、3番目のプログラムのソースを出力します。たとえば、AがB入力として与えられた場合、を出力しますC。プログラムは、入力として、独自のソースを与えている場合は、出力3つの文字列はなら"three"、"mutual"と、"quines"(引用符なし)。いずれの場合でも、1つの追加の末尾の改行を出力できます。他の入力については、プログラムはクラッシュを含め、何でもできます。 例 例えば、のソースコードを仮定しA、BそしてCありaSdf、ghJkそしてzxcV。その後、プログラムは次のように動作するはずです。 Source Input Output -------------------- aSdf aSdf three aSdf ghJk zxcV aSdf zxcV ghJk ghJk aSdf zxcV ghJk ghJk mutual ghJk zxcV aSdf zxcV aSdf ghJk zxcV ghJk aSdf zxcV zxcV quines ルールとスコアリング ソリューションA、BおよびCは、機能または完全なプログラムのいずれかですが、完全に独立している必要があります。共有コードは許可されません。 標準の抜け穴とクインルールが適用されるため、プログラムは独自のソースコードにアクセスできません。 あなたのスコアはの組み合わせバイト数でA、BかつC、低いスコアは良くあること。
23 code-golf  quine 

30
数値を16進数に変換します
チャレンジ これは簡単なものです。 入力として基数10の数値が指定されたときに関数またはプログラムを作成すると、その数値の値が16進数で返されるか出力されます。 例 15 -> F 1000 -> 3E8 256 -> 100 ルール 組み込みの16進関数は一切ありません 文字は小文字でも大文字でもかまいません あなたは非負の整数だけを心配する必要があり、負の数や厄介な小数はありません 言語のデフォルトタイプの制限までの任意の大きな数で動作するはずです。 改行は必須ではありません いつものように、これはcode-golfなので、バイト単位で測定された最短コードが勝ちです!

2
配管のランダムパス
width w、height h、およびstep countの3つの整数を受け取るプログラムまたは関数を作成しますs。あなたは、非自己交差描画されるランダムウォーク sに長いステップを5*wすることにより5*h、すべての5により画素セルが空にされるか(ピュアベージュ)、またはこれらの12の簡単な「パイプ」の1ピクセルの画像: 上の画像は詳細を示すために拡大されています。実際のサイズのパイプは次のとおりです。 (灰色の線は、パイプタイプを区別するためのものです。) ランダムウォークは、1つのパイプエンドポイント(下から4つのパイプタイプの1つ)で始まり、別のパイプエンドポイントで終わる単一の連続パイプパスになります。 空で開始wすることによりh、グリッドとランダム開始点であることを一つのセルを選択してください。次に、開始する4つの方向のいずれかをランダムに選択し、対応するパイプエンドポイントを描画します。この開始セルは、ウォークの最初のステップをマークし、新しいセルを描画するか、既存のセルを上書きするたびに、別のステップとしてカウントされます。 ここで、選択された方向が有効な場合、適切なパイプセルを描画して、繰り返しランダムに右、左、または直線に進むことを選択します。完全なsステップパスが形成されるまで方向が有効でない場合は、バックトラックして再選択します。パスは、パイプエンドポイントで終了する必要があります。パイプエンドポイントは、パスがたどった経路に応じて、グリッド上のどこかにある場合があります。 2つの直線パイプセルのみを上書きでき、反対方向の直線パイプセルによってのみ上書きできることに注意してください。結果は交差セルになります。それ以外の場合は、すべてのパイプを空のセルに配置する必要があります。 交差点が描画されるとき、開始セルからさらに遠いパスの部分が一番上に描画されます。 グリッドに周期的境界条件(PBC)があるかどうか、つまり、グリッドの片側から出るパイプが反対側に出るかどうかはあなた次第です。PBCがない場合、グリッドの境界は、他のパイプと同様に遭遇する可能性のある障壁としてカウントされます。 特殊なケース s0の場合、パイプは描画されず、出力はイメージごとに空白5*wになり5*hます(つまり、すべてベージュ)。 場合s1つの管スタブであります (実寸:) ランダムに選択された開始セルに描画する必要があります。 その他の詳細 あなたはそれsがせいぜいw*hパスであると仮定するかもしれません。(ただし、交差点により長いパスが可能です。) wそしてh常にポジティブです。 すべてのランダムな選択は、一様にランダムでなければなりません。たとえば、問題が簡単になったとしても、可能であれば交差点を作成することを避けるべきではありません。疑似乱数ジェネレーターが許可されています。 黒、青、ベージュの代わりに、視覚的に異なる3色を使用できます。 彼らは実際にあるように、あなたの出力画像が拡大される5*w*kことにより、5*h*k画素のk正の整数です。(あなたkが1 歳であっても、投稿するサンプルを拡大することをお勧めします。) 一般的なロスレス画像ファイル形式を使用でき、画像をファイルに保存したり、表示したり、生のまま標準出力に吐き出したりできます。 バイト単位の最短コードが優先されます。 例 (すべて500%拡大)。 入力がw=2, h=1, s=0その場合、出力は常に次のようになります。 入力がw=2, h=1, s=1その場合、出力はこれらの画像のいずれかであり、同じチャンスがあります。 入力がw=2, h=1, s=2次の場合、出力は または多分 グリッドにPBCがあると想定されている場合。 (このようにパスを開始すると、2番目のステップが不可能になることに注意してください。) w=3, h=2, s=6PBCを想定した、の可能な出力を次に示します。 w=3, h=3, s=9PBCを想定した場合の可能な出力は次のとおりです。 交差点が2つのステップとしてカウントされるため、パスがすべてのセルをカバーする必要がないことに注意してください。また、交差点の陸橋は後で描かれている必要があるため、コーナーの端点が開始セルであると推定できます。したがって、行われたランダムな選択のシーケンスを推測できます。 start at …

5
正方形から六角形へのシームレスな変換
グリッドでプレイされる多くのゲームでは、六角形がClearly Superior Choice™です。残念ながら、多くの無料ゲームアートサイトには、正方形のマップ用のシームレスなタイルセットしかありません。過去のプロジェクトで、これらのいくつかを使用して、手動で六角形に変換しました。 しかし、私は老後は怠け者になりました。小さなスクリプトでプロセスを簡単に自動化できるはずです。 しかし、私は老後は怠け者になりました。だから私はあなたにそれをアウトソーシングし、コードゴルフチャレンジ1としてそれを偽装しています。 入力 入力は、24ビットRGBカラーが可能な一般的な画像形式の正方形の画像です。画像データ自体の代わりに、入力としてファイル名を使用することもできます。 画像が正方形で、辺の長さが4の倍数であると仮定できます。 出力 出力は入力タイルですが、六角形に変換されます(画像自体は透明な領域のある正方形になります)。ファイルに保存したり、画面に表示したりできます。 繰り返しになりますが、一般的な画像形式ならどれでもかまいません。使用している形式が透明度をサポートしている場合、背景領域は透明でなければなりません。そうでない場合は、代役として色#FF00FF(恐ろしいフクシアの1つ)を使用できます。 方法 それではどうすればいいのでしょうか?私が2つ使用する方法は、画像を少し垂直に押しつぶしますが、全体的にはほとんどの場合にかなり良く見えます。この入力画像を使用して例を示します。 拡大縮小:画像を3:2の比率に拡大縮小します。画像は正方形になるため、幅75%、高さ50%に拡大縮小するだけです。入力例は200x200なので、この150x100の画像になります。 タイル:スケーリングされた画像のコピーを2x2グリッドに配置します。 切り抜き:この2x2グリッドの任意の場所から適切なサイズの六角形を取得します。さて、タイリングを簡単にするために、この六角形は厳密には規則的ではありません。元のサイズの正方形(ここでは200x200)をトリミングした後、コーナーをトリミングします。切り取り線は、(おおよそ)左右の各辺の中央から上/下の端から4分の1の位置まで伸びる必要があります。 それがあなたの出力です! 以下は、タイル表示されたときの外観の例です(ここで拡大表示されています)。 これはコードゴルフであるため、バイト単位の最短コードが優先されます。標準的な抜け穴などが適用されます。 1これを信じても信じなくても構いません。 2 この役立つサイトの方法1 。

20
Nスラブスラッシュケーキ
正の整数Nを取り込むプログラムまたは関数を作成します。 Nが1の場合、出力 /\ \/ Nが2の場合、出力 /\/\ \/ / / / \/ Nが3の場合、出力 /\/\/\ \/ / / / / / \/ / / / \/ Nが4の場合、出力 /\/\/\/\ \/ / / / / / / / \/ / / / / / \/ / / / \/ より大きなNの場合、パターンは継続し、Nがインクリメントされるたびに新しいレイヤーが追加されます。 「出力」は、スラッシュパターンを印刷するか、文字列として返すことを意味します。 出力では単一の末尾の改行が許可されます。 出力の末尾のスペースは許可されますが、先頭のスペースは許可されません。 バイト単位の最短コードが優先されます。

5
ChevronsをSolidusesに変換する
スペース、改行、山かっこのみを含む文字列を取り込むプログラムを作成します:<、>(chevrons)。出力スペース、改行、およびスラッシュの列:/、\(soliduses形状入力に対応する)が、元の入力の各列の間に挿入されたスペースの列と、4分の1回転時計回りに回転(美学のために)。 たとえば、入力が次の場合: <> 出力は次のようになります。 /\ \/ 入力がこれである場合: ><<<> <>< 出力は次のようになります。 \/ /\ /\ \/ /\ /\ /\ \/ 入力がこれである場合: >> << <> <> < >< 出力は次のようになります。 /\ \/ \/ \/ \/ /\ /\ /\ /\ \/ /\ 最後の2つの例の元の入力行の間にスペースの単一の列があることに注意してください。 入力を通常の方法(コマンドライン、stdin)で取得して出力を出力する完全なプログラムを作成するか、出力を出力または返す文字列引数を使用して関数を作成します。 入力の空白の先頭および末尾の空の行または列は、出力に存在する必要はありません。さらに、結果の形状が正しい限り、出力の任意の場所に任意の量の先頭および/または末尾のスペースおよび/または改行が存在する可能性があります。言い換えると、アスキーアートの翻訳は問題ではなく、形状とそれらの相互関係だけが重要です。 オプションで、入力の末尾に改行があると想定することもできます。 バイト単位の最短コードが優先されます。

10
* Overwrit * labels
本当に密集したプロットにラベルを追加しようとしたことがある場合、ラベルが互いに重なり合って読みにくくなることがあります。同様のことを1Dで行います。 入力は(label, x-coordinate)ペアのシーケンスになり、出力は各ポイントとラベルを所定の順序で描画した結果になります。*ポイントを表すアスタリスクは、指定されたx座標に配置され、ラベルが続く必要があります。既存の文字はすべて上書きされます。 たとえば、入力が Hello 0 World 8 Fizz 3 Buzz 5 PPCG 16 X 9 その後、次のことが起こります。 *Hello *Hello *World *He*Fizz*World *He*F*Buzzorld *He*F*Buzzorld *PPCG *He*F*Buz*Xrld *PPCG 最後の行が出力されます。 I / Oルール 入力は、任意の数のペアで構成できます。各ラベルは大文字と小文字のみで構成され、ラベルの長さは最大で127文字です。各x座標は0から127の間です。 入力は、ペアが明確であり、ラベル/ x座標が入力内で交互になるように、任意の便利なリストまたは文字列形式にすることができます。たとえば、[("Hello", 0), ("World", 8) ...]またはのような形式[0 "Hello" 8 "World" ...]は問題ありません。ただし、ラベルとx座標の2つの別個のリストを想定することはできません。 機能と完全なプログラムはどちらも大丈夫です。 ラベルで覆われていないスポットはスペースで表す必要があります。ただし、単一のオプションの末尾の改行を除いて、余分な先頭または末尾の空白はない場合があります。 例 入力: OneLabel 10 出力: *OneLabel 入力: …
23 code-golf  string 

18
シンプルな印刷矢印
ゴルフの練習のために、私は私のガールフレンドのPython入門クラスで課題を行っています。この割り当てには、文字数が非常に近い複数の戦略があり、ここの人々はさらに良い方法を見つけることができると確信しています。私はPythonでこれを行う方法に最も興味がありますが、このプログラムが得ることができる最もゴルフを知りたいので、これはコードゴルフであり、最短回答が勝ちます。 ルール: 割り当ての概要は以下のとおりです。ユーザーは2回入力するように求められる必要がありますが、プロンプトは何も言わなくてもよく、別の順序でもかまいません。 標準の抜け穴が適用されます。 課題3:矢印 ユーザーに複数の列の入力を求めるプログラムを作成すると、次のようにパターンが印刷されます。ユーザーが正数を提供すると想定できます。プログラムは、左矢印と右矢印の両方を処理する必要があります。以下にいくつかのサンプルランニングを示します。 How many columns? 3 Direction? (l)eft or (r)ight: r * * * * * How many columns? 5 Direction? (l)eft or (r)ight: l * * * * * * * * *

30
チェス盤を作る
これをPHPチャレンジで見ました。目的は、最小限のコードで64マス(8 * 8)のチェス盤を作成することです。簡単なことですが、私は356バイトでPHPで作成しました(印象的ではありませんが、私は知っています)。これは、バニラを保持する限り、選択した言語で作成できるため、インポートはできません。最小のバイトカウントが優先されます。 出力は次のようになります。 そして私のコード: <table><?php $c='black';function p($c,$n){echo'<td style="width:50px;height:50px;background:'.$c.'"></td>';if($n==1){echo"<tr>";}}for($i=1;$i<=64;$i++){if($i%8==0&&$c=="black"){$c="white";$n=1;}elseif($i%8==0&&$c=="white"){$c="black";$n=1;}elseif(isset($n)&&$n==1){$n=0;}elseif($c=="black"){$n=0;$c="white";}elseif($c=="white"){$n=0;$c="black";}p($c,$n);} または読み取り可能: <table><tr> <?php $color = 'black'; function printcolor($color, $nl) { echo '<td style="width:50px; height:50px; background:' . $color . '"></td>'; if ($nl == true) { echo "</tr><tr>"; } } for ($i=1; $i<=64;$i++) { if ($i % 8 == 0 && $color == …


23
州および首都
入力として文字列を指定すると、州都の場合は首都である米国の州、州の場合は州の首都、またはArstotzkaどちらでもない場合は州の首都が出力されます。 例: Austin -> Texas Alaska -> Juneau The Nineteenth Byte -> Arstotzka すべての首都とそれぞれの州: Baton Rouge, Louisiana Indianapolis, Indiana Columbus, Ohio Montgomery, Alabama Helena, Montana Denver, Colorado Boise, Idaho Austin, Texas Boston, Massachusetts Albany, New York Tallahassee, Florida Santa Fe, New Mexico Nashville, Tennessee Trenton, New Jersey Jefferson, Missouri Richmond, …

25
ベルヌーイ数
ベルヌーイ数(具体的には、第二のベルヌーイ数)は、次の再帰的定義によって定義されます。 どこ意味の組み合わせを。 m入力として負でない整数を指定すると、10進数表現またはm2番目のベルヌーイ数の小数部を出力します。10進表現を出力する場合、少なくとも6桁の小数点(小数点以下の桁)の精度が必要であり、小数点以下6桁に丸めたときに正確でなければなりません。たとえばm = 2、0.166666523はに丸められるため、for は許容され0.166667ます。0.166666389はに丸められるため、受け入れられません0.166666。末尾のゼロは省略できます。10進表現には科学表記法を使用できます。 以下は、m小数点以下6桁に丸められた科学表記法で、最大60を含む小数部の入力と期待される出力です。 0 -> 1.000000e+00 (1/1) 1 -> 5.000000e-01 (1/2) 2 -> 1.666667e-01 (1/6) 3 -> 0.000000e+00 (0/1) 4 -> -3.333333e-02 (-1/30) 5 -> 0.000000e+00 (0/1) 6 -> 2.380952e-02 (1/42) 7 -> 0.000000e+00 (0/1) 8 -> -3.333333e-02 (-1/30) 9 -> 0.000000e+00 (0/1) 10 -> 7.575758e-02 …

14
色の色相
色のRGB値が与えられます。あなたのタスクは単純です:最も単純な定義で色相を計算することです。 最高、中、最低の値を持つチャネルがX、Y、Z(赤、緑、青のいずれか)であり、それらの値がx、y、zであるとします。この色の色相は(h(X)-h(Y))*(1 +(xy)/(xz))/ 2 + h(Y)です。ここで、 h(red) = 0 (or 360 if one of X or Y is blue) h(green) = 120 h(blue) = 240 入力は、0〜255の3つの整数で構成されますが、これらはすべて同じではなく、一貫した順序です。出力は、浮動小数点数、または整数を切り上げまたは切り捨てることができますが、一貫している必要はありません。出力の整数部が0または360の場合、どちらかを印刷できます。 画像の操作中などの暗黙的な変換を含む、色空間変換用の組み込み関数を呼び出すことはできません。 これはコードゴルフです。最短のコードが優先されます。 例 Input: 0 182 255 Output: 197 (or 198) Input: 127 247 103 Output: 110 Input: 0 0 1 Output: 240 Input: …
23 code-golf 

2
接続文字
文字列として表される文字のブロックを受け取り、アルファベットで隣接する文字が接続された同様の文字列を出力または返すプログラムまたは関数を作成する必要があります。 視覚的な例(の形式input => output): b d b d |\ /| | \ / | => | X | | / \ | e |/ \e c a c a 詳細 入力は、スペース、改行、および最初のN小文字をそれぞれ1つだけ含む文字列になります。1 <= N <= 26 入力の行にはスペースが埋め込まれ、完全な長方形のブロックが作成されます。 アルファベットで隣接する文字のペアはすべて、同じ行、列、または対角線上にあり、を使用して直線のアスキー線で接続する必要があります\ / | or -。(行の長さは0である場合があります。) 次のタイプの2行オーバーラップを処理する必要があります。 / and \ become X | and - …

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