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

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

3
アスキーアートライトの祭典
ゼロまたは6つのコマンドライン引数を取るプログラムをできるだけ少ない文字で記述します menorah menorah YEAR MONTH DAY HOUR MINUTE SECOND (両方の形式をサポートする必要があります。引数がゼロのバージョンは、ローカルタイムゾーンの現在のシステム日時で引数が6つのバージョンを呼び出すのと同じです。) そして、指定された(グレゴリオ暦)の日付と時刻がハヌカ中に落ちた場合、適切な数のろうそくが点灯したASCIIアート(またはUnicodeアート)の9枝の本枝の燭台を出力します。ハヌカ中にない場合は、単一の改行を出力します。例えば、 ~$ ./menorah 2015 12 7 0 0 0 * | * | | | | +++++++++ | -+- ~$ ./menorah 2015 12 9 0 0 0 * | *** | ||| | ||| +++++++++ | -+- ~$ ./menorah 2015 …

5
その角度は何ですか?
この課題の目標は、画像内の線の角度を決定することです。 画像に関する規則: 画像の背景は白になります(#FFFFFF) 線のストロークは黒になります(#000000) 行はアンチエイリアスされません 画像は100x100ピクセルになります 線は画像の中心から始まります 行は下向きになります(6-OClock) 行は50ピクセルの長さになります 線の角度は、開始位置から反時計回りに測定されます 画像コーデックは、.jpgまたは.png 入力形式は、コマンドライン引数、スクリプト入力、または関数引数によって渡されるファイル名になります。出力形式は単純です-度数(たとえば90)を出力するだけです。 回答は、指定された測定値の±1度です。以下に画像の例をいくつか示します。 背景が灰色の45度の参照画像 0度 45度 50度 130度 230度 324度 画像の作成に使用されるコードは次のとおりです(これはProcessingでコーディングされています)。 int deg = 45; int centX = width/2, centY = height/2; background(255); noSmooth(); line(centX, centY, centX + sin(radians(deg))*50, centY + cos(radians(deg))*50); saveFrame("line-"+deg+".png");// image codec can be changed here. use …

12
反復ダイスローリング
入力nが与えられた場合3 <= n <= 25、n片面のダイ(範囲内の面)から始めて、次の手順を実行します[1, n]。 現在のnサイドのサイコロをプレイ中に転がした結果をフォームに出力しますkdn: X(X結果kはプレイ中のサイコロの数です)。 プレイ中のサイコロの数の倍X以上の場合n/2、サイコロを追加します。それ以外の場合は、ダイを取り外します。 プレイ中のサイコロの数が0またはnに等しい場合、停止します。それ以外の場合は、手順1に進みます。 例の実行(括弧内の出力は説明用であり、必須ではないことに注意してください): 6面: 1d6: 4 (avg: 3.0, add) 2d6: 6 (avg: 6.0, add) 3d6: 9 (avg: 9.0, add) 4d6: 16 (avg: 12.0, add) 5d6: 13 (avg: 15.0, remove) 4d6: 9 (avg: 12.0, remove) 3d6: 5 (avg: 9.0, remove) 2d6: 7 (avg: …
12 code-golf  random 

1
fiには小さすぎる、最も優れた証明!
あなたは家に座って、最も邪悪なやり方で手をこすります。今回は、コミュニティA-SPINを設定できます!ここでこの本の中でこの問題(間違いなく改善可能)を証明したと主張するだけです...最初の関連ページを開きます。あなたはそれらの言葉を走り書きする… もちろん、あなたは邪悪なフェルマーです!はは、ただの冗談さ。あなたはそれがこのように起こらなかったことを知っています。これは単に彼の邪悪な双子、フォーマットの物語です。ここでの形式は、彼の「証拠」を余白に凝縮するのが面倒です。したがって、彼はあなたに彼のためにそれをするように呼びかけました。 目的プルーフ(文字列)とページ(テキストブロック)を指定して、プルーフのマージンに「書き込み」ます。 有効なページルール テキストブロックには、次の要件を満たしている場合にのみページが含まれます。 上部と下部の境界線は次の形式です-{10,}\+$(-a +、それから行末まで少なくとも10回の正規表現)。 すべての非最上行および非最下行は、で終わる必要があり|ます。そのような行が少なくとも1つあります。 |各行の最後から少なくとも5つのスペースがあります。 すべての線は同じ幅です。 したがって、次は有効なページです(.sは最大マージン境界がどこにあるかを示すためのものです)。 -----------------+ Lorem Ipsum. | and other . | latin crud . | . | EOF. | -----------------+ マージンが広い別のページを次に示します。 ------------------------+ Hello world! . | How are you, to. | day? --Mme. B . | . | ------------------------+ できる限り単語を維持しながら、マージンに所定の文字列を書き込む必要があります。たとえばhello、次の行に収まる場合は、現在の行で改行しないでください。 I / …

7
信号中断クイン
Quiningには長い歴史があります。聞いたことがない場合は、タグをクリックして少し読み上げてください。 あなたのタスク の無限級数を出力します 1 sを(他のスペース[改行、スペースなど]なし)UNTIL SIGINT(通常はCTRL-C)が呼び出されます。呼び出されたら、プログラムソースを出力します。 ルール 有効なクインでなければなりません: ディスクからの読み取りソースがありません。 カインに関連する他のすべての標準的な抜け穴を参照してください。 任意の言語を使用できます。 これはコードゴルフなので、最短の回答が勝ちます!
12 code-golf  quine 

1
月曜日のミニゴルフ#7:成分測定の簡素化
月曜日のミニゴルフ:毎週月曜日に(願わくば!)投稿された一連の短いコードゴルフチャレンジ。 遅れてすみません。私は、それが複製であるという別のアイデアを書き出す過程の90%を実現しました。 私の家族はかなり大きいので、たくさんの食べ物を食べます。十分な食料を作るには、通常、2倍、3倍、または4倍のレシピが必要です。しかし、測定値を乗算することは苦痛になる可能性があるため、これを行うプログラムを用意しておくと便利です。 チャレンジ あなたの挑戦は、数値Nと文字Lとして測定値を取り込んで、できるだけ単純化された同じ測定値を返すプログラムまたは関数を作成することです。必要な測定単位(すべて私の家族と同じようにアメリカ人)とそれに対応する文字は次のとおりです。 1 cup (c) = 16 tablespoons (T) = 48 teaspoons (t) 1 pound (l) = 16 ounces (o) 1 gallon (g) = 4 quarts (q) = 8 pints (p) = 128 fluid ounces (f) 「可能な限り簡素化」とは、次のことを意味します。 可能な限り最大の測定単位を使用します。各ユニットには、1 / 4、1 / 3、1 / 2、2 / 3、または3/4の残りがあります。 必要に応じて、結果を混合数値に変換します。 …

3
バルキングシーズンです
私のジムのバーベルは次のように見えます。 =========[]-----------------------[]========= 5種類のサイズ、2.5ポンド、5ポンド、10ポンド、25ポンド、45ポンドのプレートを保持できます。 . . ! | . ! | | | | | | | | ' ! | | | ' ! | ' 安全のために、クリップがある]場合[はすべてのプレートの外側にもクリップを追加します。バー自体の重さは45ポンドです。常に、最も重いプレートを中央に最も近く、プレート間に隙間がないように配置し、両側に同じプレートを配置します。また、可能な限り最小数のプレートを常に使用します。たとえば、1つの10ポンドのプレートではなく、片側に2つの5ポンドのプレートを使用することはありません。したがって、215ポンドを持ち上げたい場合、私のバーは次のようになります。 . . .!| |!. !||| |||! ====]||||[]-----------------------[]||||[==== !||| |||! '!| |!' ' ' コード、関数、または完全なプログラムは、45〜575の整数(常に5の倍数)を取り、その重みを合計するバーを出力する必要があります。例えば: 入力: 45 出力(空のバーにクリップがないことに注意してください): =========[]-----------------------[]========= 入力: 100 出力: ! ! …

4
ソーベルエッジ検出器
あなたの仕事は、入力画像を取得し、エッジ検出を実行して出力画像になるプログラムを作成することです。 エッジ検出は次のように機能します(不明な場合は、sobelエッジ検出を参照してください)。 ピクセルの値はピクセルの合計輝度であるため、カラーの場合は、まずグレースケールに変換する必要があります(物事をシンプルかつゴルフ対応にするために、R、G、およびB)。 ピクセルp (i、j)の G xおよびG yの式は次のとおりです。 G x = -1 * p (i-1、j-1) -2 * p (i-1、j) -1 * p (i-1、j + 1) + 1 * p (i + 1、j -1) + 2 * p (i + 1、j) + 1 * p (i + 1、j + 1) G …

8
多次元ラベルの組版
スチームパンクな多次元の世界では、上司はコングロマリットの多次元ファイルキャビネットの各引き出しに印刷されたインデックスラベルを貼り付けたいと考えています。 ボスは、この目的のためだけに購入したフォントを使用して、ラベルシート全体を単一のフォームとしてタイプセットしたいので、ソート(金属記​​号の断片)を注文する必要があります。ソートは非常に高価であるため、注文は各数字記号の正確なカウントのためでなければなりません。 与えられた(とにかく)次元≥0の長さのセットに対して、すべてのデカルト座標をタイプセットするのに必要な桁の頻度表である順序を(とにかく)返します。キーボードの出現順に並べる必要があります(つまり、9の後の0)。また、並べ替えがまったく行われない場合(次元の長さが0であるため)、並べ替え0の順序は含まれません。何も印刷しません。 コードが0次元も処理できる(つまり何も印刷しない)場合、-3のボーナスがソートされます。 最終的な改行文字は許容されます。 標準的な抜け穴の禁止が適用されます。 前述のように、ソートは高価なので、これはcodecolfです。 親切な魂は、この課題を編集して自動スコアリングを含めることができるため、次のようなヘッダーを含めます。# LanguageName, 123 sorts テストケース 与えられた11、印刷: 1 4 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 0 1 必要なラベルがあるため1、2、3、4、5、6、7、8、9、10、と11。 与えられた2 3、印刷: 1 5 2 5 3 2 必要なラベルがあるため1 1、 1 2、 1 3、 2 1、 …

5
5つの単純なプログラム間で文字を繰り返すことを避けます
あなたが挑戦しているのは、次の5つのタスクのために5つの異なる完全なプログラムを書くことです。 印刷する Hello, World! 入力がSTDINの場合、階乗を出力し、入力が0以上の整数であると仮定できます。 整数Nが与えられた場合、素数の合計<= N STDINで入力が与えられた場合、入力で使用された文字を出力します。たとえば、入力はHello world、出力する必要がありますhelowrd。出力は小文字であることに注意してください。入力は常に空白を含むアルファベットであり、空白は無視されると想定できます。 このように、次のダイヤモンドを出力します。 * *** ***** ******* ***** *** * これらすべての課題はおそらく非常に簡単ですが、キャッチがあります。使用するすべての文字を他のプログラムで再び使用することはできません。これは禁止されていませんが、+ 8バイトのペナルティが与えられます。たとえば、これが最初のタスクのプログラムである場合: print("Hello, World!"); そして、あなたは(大文字または小文字の形で)次の文字を使用することはできません:p、r、i、n、t、h、e、l、o、w、d他のプログラムインチ それらを使用する必要がある場合は、各文字を8バイトで「購入」できます。したがってl、別のプログラムでその文字を再度使用する場合、8バイトのペナルティが発生します。罰金を支払った後、このプログラムで必要なだけ各文字を使用できます。他のキャラクターは関係ありません。また、5つのプログラムはすべて同じ言語である必要があります。 これはcode-golfなので、最小バイト数が勝ちです!

2
ベータ版のスノーフレーク
チャレンジ 15/16シーズンには多くの場所で最初の雪が降る冬が近づいているので、スノーマシンを壊して雪をコーディングしてみませんか? nSTDINを介して整数を指定すると、レベルでASCII表現のベータのスノーフレーク(以下で説明)を出力しますn。 ベータ版のスノーフレーク スノーフレークは、レベル0で1つのxから始まります。 x 次に、各コーナーで次のいずれかの形状を追加します。 x xx 上記の形状を右上隅に追加します。右下隅の場合は、時計回りに90°、左下の場合は時計回りに180°、左上の場合は時計回りに270°回転させます。 そうすると、次のような形になります。 x x xx xx x xx xx x x 形状の向きに注意してください。次に、上記の方向規則を使用して、各コーナーに図形を追加し、レベル2を取得します。 x x x xxxxxxx xx x x xx xxx xxx xx x xx xxx xxx xx x x xx xxxxxxx x x x シェイプはx、2つ以上の露出した側面(上記のコーナーと呼ばれる)を持つs​​にのみ追加されることに注意してください。 L字型は、n1より大きい値で重複する場合があります。たとえば、次のようになります。 レベル0が次の場合: x x 次に、レベル1にオーバーラップが存在する必要があります(で示される、出力にをo含めないoでください): …

1
回転スパイラル
文字のらせんを表すテキストの正方形が与えられたら、それを回転させてください! スパイラルは中央から始まり、反時計回りに外側の端に移動し、中央の左から始まります。 987 216 345 これは文字列に変換されます123456789。回転は左に行われるため、1つの位置に回転すると、になります234567891。これは次のように表されます。 198 327 456 入力 入力は、スパイラルとそれを回転させる距離で構成されます。 距離は常に正の整数またはゼロであり、言語のデータ型の制限で制限できます。 スパイラルは、選択した行区切り文字(区切り文字なしを含む)を持つ文字列として解釈する必要があります。これは常に区切り文字を含まない正方形で、辺の長さが奇数です。 すべての文字が英数字[A-Za-z0-9]であると仮定します。 出力 出力は回転したスパイラルです。これは、複数行の正方形(印刷または返品)である必要があります。 例 入力 3 tne atd bin 出力 bat nit den 入力 18 efilr naepo umshf tootr butte 出力 rettu omseb oofft trliu hpean これはコードゴルフで、スコアは通常どおりバイト単位でカウントされます。
12 code-golf  string 

12
除去ゲームをプレイする
前書き この課題では、タスクは特定の種類の消去ゲームをシミュレートすることです。ゲームでは、参加者は輪になっており、全員が整数を保持しています。ゲームの各ラウンドで、すべての参加者は、保持している数nである場合nは、その人が離れる方向を指しています。n正の場合は右nに数え、負の場合は左に数え、nゼロの場合は自分自身を指します。誰かが彼らを指しているすべての参加者は排除され、円を離れます。これでラウンドが終了します。ラウンドは、参加者がなくなるまで続けられます。 入力 入力は、適切な形式の整数の空でないリストです。ゲームの参加者が保持している数字を表します。 出力 出力は、ゲームが終了するまでにかかるラウンドの数です。 例 入力リストを検討してください[3,1,-2,0,8]。最初のラウンドでは、次のことが起こります。 保持者は保持3者を指さし0ます。 保持者は保持1者を指さし-2ます。 持っている人-2のポイントは、人物保持のまま3。 0自分自身でポイントを保持している人。 保持8している人は、保持している人のすぐ-2近くにポイントを置きます(リストは円を表しているため、端で折り返します)。 これは0、-2と3が削除されることを意味するため、listで2回目のラウンドが実行されます[1,8]。ここでは、を1指して8おり、8自分自身を指してい8ます。3番目のラウンドはlistを使用して行われ[1]、1単純に自分自身を指して排除されます。すべての参加者を排除するのに3ラウンドかかったため、正しい出力は3です。 ルールとスコアリング 完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース [3] -> 1 [0,0,0] -> 1 [-2,-1,0,1,2,3,4,5,6,7] -> 2 [5,5,5,6,6,6] -> 2 [3,-7,-13,18,-10,8] -> 2 [-7,5,1,-5,-13,-10,9] -> 2 [4,20,19,16,8,-9,-14,-2,17,7,2,-2,10,0,18,-5,-5,20] -> 3 [11,2,7,-6,-15,-8,15,-12,-2,-8,-17,6,-6,-5,0,-20,-2,11,1] -> 4 [2,-12,-11,7,-16,9,15,-10,7,3,-17,18,6,6,13,0,18,10,-7,-1] -> 3 [18,-18,-16,-2,-19,1,-9,-18,2,1,6,-15,12,3,-10,8,-3,7,-4,-11,5,-15,17,17,-20,11,-13,9,15] -> 6

3
マンハッタンの数学
次の演算子を定義します。 マンハッタンの加算 a + M b(1桁の数字の場合)は、bをaに連結した結果です。したがって、a + M b = 10a + bです。したがって、一般演算子+ Mは次のように定義されます。 a + M b = 10a + b マンハッタン減算 a – M b(1桁の数字の場合)は、aから最後のbを削除した結果です。したがって、演算子– Mは、擬似コードで次のように定義されます。 a – M b = a最後のbを削除 マンハッタン乗算 a× M bは、aのbのすべてのインスタンスをbのbインスタンスに置き換えた結果です。エルゴ、× Mは擬似コードで次のように定義されます。 a× M b = a-> s / b / <b bのコピー> …

4
パイロットを救え!
質問 私たちは彼らの宇宙ステーションでロボット軍に捕らえられています。私たちの宇宙船パイロットはレベル1の刑務所にいます。脱出する方法は1つしかなく、宇宙船パイロットを救助します。レベルNからレベル1に移行することを意味します。ただし、非常に危険なので、できるだけ少ないステップ数で刑務所に到着する必要があります。 条件 移動する方法は4つあります。 レベルNからレベルN-1に移動する e.g. from 12 to 11 レベルNからレベルN + 1に移動する e.g. from 12 to 13 レベル2kからレベルkまでテレポートを使用する e.g. from 12 to 6 レベル3kからレベルkまでテレポートを使用する e.g. from 12 to 4 テレポートは一方向のみです(12から4まで取得できますが、4から12まで取得することはできません) すべてのアクションは一歩を踏み出します 入力 入力は、STDIN、またはプログラミング言語の最も近い代替から読み取る必要があります。入力は、整数nで構成され1 <= n <= 10^8ます。 出力 出力は、nレベル1 に進むために必要な最小ステップ数でなければなりません。 例 Level Minimum number of steps 1 0 8 …
12 code-golf 

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