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

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

26
等級への整数マーク
正の整数(0以上、最大値なし)が与えられた場合、次の規則に従って等級に変換します。 A = 100+ B = 90 - 99 C = 80 - 89 D = 70 - 79 E = 60 - 69 F = 59 and less. これは少し退屈だと感じたので、グレードが+7,8または9の-場合はa 、0,1または2の場合はaにしてください。FおよびAの場合は無視してください。 例: 入力: 65 出力: E テストケース: 0 -> F 20 -> F 65 -> E 72 -> D- 75 …
30 code-golf 

12
公式Rubyインスペクター
以下は、単純なASCIIアートルビーです。 ___ /\_/\ /_/ \_\ \ \_/ / \/_\/ ASCII Gemstone Corporationの宝石商としての仕事は、新しく取得したルビーを検査し、発見した欠陥についてメモを残すことです。 幸いなことに、可能な欠陥は12種類のみであり、サプライヤはルビーに複数の欠陥がないことを保証しています。 12の欠陥12内の一つの置換に対応する_、/または\空白文字(とルビの文字)。ルビーの外周に欠陥はありません。 欠陥は、どの内部キャラクターがその場所にスペースを持っているかに応じて番号が付けられます。 したがって、欠陥1のルビーは次のようになります。 ___ /\_/\ /_/ _\ \ \_/ / \/_\/ 欠陥11のルビーは次のようになります。 ___ /\_/\ /_/ \_\ \ \_/ / \ _\/ 他のすべての欠陥についても同じ考えです。 チャレンジ 欠陥の可能性のある単一のルビーの文字列を取り込むプログラムまたは関数を作成します。欠陥番号を印刷するか返送してください。欠陥がない場合、欠陥番号は0です。 テキストファイル、標準入力、または文字列関数の引数から入力を取得します。欠陥番号を返すか、標準出力に出力します。 あなたはルビーの末尾に改行があると仮定するかもしれません。後続のスペースや先頭の改行があるとは思わないかもしれません。 バイト単位の最短コードが優先されます。(便利なバイトカウンター。) テストケース ルビーの正確な13種類と、それに続く予想される出力: ___ /\_/\ /_/ \_\ \ \_/ / \/_\/ …

11
印刷、増分、減分、エイリアス-Prindealの解釈
Prindeal(顕著PRIN-ディー-ALは)新しいある難解:4つのつのみコマンド有するプログラミング言語PR INTを、で crement、デ crement、そしてら IAS。4つのコマンドを巧みに組み合わせることにより、Prindealで複雑な数学演算を最小限に抑えることができます。 このゴルフのチャレンジの課題は、Prindealコードを実行できる最短のプログラムを作成することです。 仕様は長いですが、できる限り明確にしようとしました。Prindealを学習するための努力をすれば、非常にエレガントであることがわかります。 Prindealの解釈 前処理 Prindealプログラムを解釈する前に、これらのことを次の順序で削除する必要があります。 #記号の後にある行の最後までのすべてと、#それ自体。(これらはコメントです。) 任意の行の末尾の空白。 完全に空の行。 たとえば、Prindealプログラム p cat #The next line has 7 trailing spaces. p dog #p mouse 前処理されます p cat p dog ここからは、この前処理ステップが完了したと仮定します。 変数 変数の使用方法を示す前に、変数をすばやく定義する必要があります。 変数(および変数への参照)は、Prindealコマンドの引数に渡されるものです。変数は常にグローバルであるため、変数の変更は、それらがどこで発生しても、どこにでも反映されます。 各変数は、負でない任意精度の整数(0、1、2、3、...)を保持します。変数は事前に初期化する必要はありません-変数は、最初に使用または呼び出されるときに常に値0で始まります。 変数名は、数字[a-zA-Z_][0-9a-zA-Z_]*と正規表現で始まらない、英数字とアンダースコアの空でない文字列です。これらは大文字と小文字が区別されるためspiny_lumpsuck3r、Spiny_lumpsuck3r異なる変数です。 実行 Prindealは命令型プログラミング言語です。Prindealプログラムが実行されると、ステートメントが上から下の順に実行され、プログラムが終了します。 Prindealプログラムのインデントされていない行はすべて、引数を取る場合と受け取らない場合がある単一のコマンドの実行を伴うステートメントです。 インデントされた行は、エイリアスコマンドの後にのみ発生します。具体的には、すべてのエイリアスコマンドの後に、単一のスペースでインデントされた正確に3行が発生し 、その一部と見なされます。したがって、別名ステートメントは実際には4行の長さです。(1行にすることもできますが、4行は読みやすいだけです。) 非エイリアスステートメント aliasを除き、Prindealプログラムのすべてのステートメントの形式は次のとおりです。 [command name] [argument 1] [argument …

24
スニペットのN個のコピーを結合して、N ^ 2文字を生成します
チャレンジ コードのN個のコピーを連結すると、出力される文字数がN 2になるように、可能な限り短いコードスニペットを記述します。Nは正の整数です。 たとえば、スニペットがの場合、soln();running soln();はちょうど1文字soln();soln();を印刷し、running はちょうど4文字soln();soln();soln();を印刷し、running はちょうど9文字を印刷します。 文字の総数が正しい限り、任意の文字が出力に含まれることがあります。OS間の混乱を避けるため、\r\n改行は1文字としてカウントされます。 プログラムは、独自のソースを読み取ったり、ファイルサイズを読み取ったり、他のそのような抜け穴を使用したりすることはできません。これを厳しい馬の挑戦のように扱ってください。 出力は、stdoutまたはファイルまたは同様の代替物に送られます。入力はありません。 コード内のコメントは問題なく、実行中に終了します。 任意の文字がプログラムに含まれている可能性があります。バイト単位の最短提出が勝ちです。

3
鉄道線路を構築し、政府をごまかす
あなたは、19世紀のアメリカの鉄道起業家です。列車は、大量の資材を陸路で輸送する最も効率的な手段であるため、人気が高まっています。東海岸から西の最近植民地化された土地を通る鉄道線路に対する国家的なニーズがあります。 このニーズに対応するために、米国政府は鉄道を助成するために税金を徴収する予定です。彼らは敷設された線路のマイルごとにあなたの鉄道会社にお金を払うことを約束しました。丘陵地や山岳地帯にトラックを敷設することは、平らな土地にトラックを敷設するよりも高価なので、彼らはそれに応じて与える量を調整します。つまり、政府は支払います 平らな土地に敷設されたトラック1マイルあたり5,000ドル 丘陵地に敷設された1マイルあたり12,500ドル 山に敷設された1マイルあたり2万ドル。 もちろん、この計画は、トラックを敷設するのに実際にかかる費用を正確に反映していません。 いくつかの地図製作者を雇って、標高を分析するためのトラックを敷設する地域のレリーフマップを描画しました。そのようなマップの1つを次に示します。 S12321 121234 348E96 各数字は1平方マイルの土地を表します。Sは開始点、E終了点です。各数値は、その地域の標高変化の強度を表します。 1〜3番の土地は平坦な土地を構成します。 4〜6番の土地は丘陵地を構成しています。 7-9番の土地は山脈を構成します。 長年の鉄道線路の構築経験を通じて、線路構築のコスト(ドル単位)は次の式を満たしていると評価されました。 Cost_Per_Mile = 5000 + (1500 * (Elevation_Rating - 1)) つまり、特定の標高勾配に基づいて構築すると、政府が提供するよりも多くのお金が必要になります。場合によっては利益があり、場合によっては損益分岐点になります。 たとえば、標高勾配が3の1マイルのトラックの建設費用は8,000ドルですが、支払われるのは5,000ドルだけなので、3000ドルを失います。対照的に、標高勾配7で1マイルのトラックを構築すると14,000ドルの費用がかかりますが、そのために20,000ドルが支払われ、6,000ドルの利益が得られます。 次に、マップの例と2つの異なる可能なパスを示します。 S29 S#9 S## 134 1#4 1## 28E 2#E 2#E 最初のトラックの建設には30,000ドルかかりますが、政府はそれに対して30,000ドルを支払います。このトラックから利益を得ることはありません。 一方、2つ目のビルドには56,500ドルかかりますが、62,500ドルが支払われます。このトラックから6,000ドルの利益を得ます。 あなたの目標:レリーフマップが与えられたら、最初から最後まで最も収益性の高い(または単に最も安価な)パスを見つけます。複数のパスが結び付けられている場合、それらのいずれかが許容可能なソリューションです。 プログラムの詳細 数値の長方形マップと1つの開始点と終了点で区切られたテキスト入力が与えられます。各数値は1から9までの整数になります。それ以外の理由で、必要に応じて入力を提供できます。 出力は入力と同じ形式である必要があり、トラックが構築された番号はハッシュ(#)に置き換えられます。気まぐれな政治家によって課せられたarbitrary意的な規制のため、トラックは水平方向または垂直方向にしか移動できません。つまり、バックトラックしたり、斜めに行くことはできません。 プログラムは、最大6行6列のマップの妥当な時間(10分未満)で解決できる必要があります。 これはコードゴルフチャレンジなので、最短のプログラムが勝ちます。 (ゴルフではない)実装例があります。 サンプルI / O S12321 121234 …

19
簡単に入力可能な単語
この競争は終わりました。 勝者は22文字のCJamで、TwiNightの回答を1文字で破ります。おめでとうデニス! 尊敬すべき言及はFalkoにあり、Falkoは無料の輸入に夢中になりました。 。 少し前に、ノキア3310を使って現代のスマートフォンを打ち抜く方法を知りたかったのですが、いくつかの答えは本当に良かったのですが、それでも我慢できませんでした!たぶん、私は別のアプローチを取り、入力するのが面倒な言葉を書かないでください。 標準レイアウトを前提として、電話キーボードの同じボタンに2つの連続した文字がない場合、簡単に入力可能なテキストを呼び出します。 あなたのタスク あなたのタスクはs、stdin /から文字列をパラメーターとして受け取り、s簡単に入力できる場合は真理値を返し、そうでない場合は偽の値を返すプログラム/関数を作成することです。入力は小文字とスペースのみで構成され、空でないことが保証されます! 得点 これはcodegolfなので、文字数が最も少なくなります。 import文はあなたが使用したいと思っていたそうすれば、あなたの最終的なスコアにカウントされませんstd::set_symmetric_difference、liftM4またはitertools.combinationsあなたのコードでは、今の時間です! -3は、文字0以外のすべてがボタン0にあると仮定して、ソースコードを簡単に入力できる場合です。 テストケース コードが意図したとおりに機能しているかどうかを確認するためのいくつかのテストケースを次に示します。 "x" -> True "aardvark" -> False "ardvark" -> True "flonk" -> False "im codegolfing all day long" -> False "i indulge in minimizing bytecount" -> True "havent heard from you in a long time" -> …
30 code-golf 

9
階乗の逆数を計算する
入力として1より大きい実数を取り、その正の逆階乗を出力する最短コードを記述します。つまり、「この数に等しい階乗の数」という質問に答えます。ここで説明するように、ガンマ関数を使用して、階乗の定義を任意の実数に拡張します。 例えば: input=6 output=3 input=10 output=3.390077654 理由3! = 6と3.390077654! = 10 ルール 組み込みの階乗関数またはガンマ関数、またはこれらの関数に依存する関数の使用は禁止されています。 プログラムは、任意の精度で計算できる理論上の能力を使用して、5桁の10進数で計算できる必要があります(任意の精度を得るために、任意の大小にできる数値を含む必要があります) 任意の言語が許可され、文字の最短コードが優先されます。 ここで実例を作成しました。ご覧ください。

23
複数のセッションでの番号の増分
グッドイブニングゴルフエージェント、 あなたの使命は、悪名高いエンターテイメントの巨人Eviltronic Artsを代表しています。世界の奴隷化と娯楽のための悪質な計画の一環として、彼らはできるだけ多くのSimStation Vのコピーを販売しなければなりません。これは、数回起動した後、ソフトウェアが不思議なことに動作を停止しなければならないことを意味します。 目標は、実行された回数をカウントするプログラムを作成することです。プログラムは、整数をstdoutに書き込む以外は何もしません。初めて実行されたときは、「1」を返します。次の「2」など。プログラムは、少なくとも数値「14」に到達できる必要がありますが、必要な上限はありません。 ただし、プログラムは新しいファイルを書き込まないでください。自分自身、レジストリ、またはインターネットにアクセスすることもできます。しかし、一部のユーザーは新しいファイルを疑っており、単にそれらを上書きするだけです!神経!合法的に購入したソフトウェアの制限を破ります! プログラムは、安定したインタープリターまたはシェルを想定できません-インタープリター全体がシェル実行中にコンピューターが再起動された場合、プログラムは引き続き動作する必要があります。 できるだけ検出できないようにする必要があるため、最短のソースコードが優先されます。 幸運のエージェント。エンターテインメント業界はあなたを頼りにしています。
30 code-golf 

6
化学式のバランスをとる!
ベルントは化学にいくつかの問題がある高校生です。クラスでは、ヘプタンの燃焼など、彼らが行っているいくつかの実験のために化学方程式を設計する必要があります。 C 7 H 16 + 11O 2 →7CO 2 + 8H 2 O 数学は正確にベルントの最強の主題ではないので、彼はしばしば反応のプロダクトとエダクトの正確な比率を見つけるのに苦労しています。あなたはベルントの家庭教師なので、彼を助けるのはあなたの仕事です!有効な化学式を得るために必要な各物質の量を計算するプログラムを作成します。 入力 入力は、量のない化学式です。これを純粋なASCIIで実現するために、サブスクリプションを通常の番号として記述します。要素名は常に大文字で始まり、その後に極小が続く場合があります。分子は+記号で区切られ、ASCIIアートの矢印->が方程式の両側に挿入されます。 Al+Fe2O4->Fe+Al2O3 入力は改行で終了し、スペースは含まれません。入力が無効な場合、プログラムは何でも好きなように実行できます。 入力が1024文字より長くなることはないと想定できます。プログラムは、標準入力、最初の引数、またはどちらも不可能な場合は実行時に定義された実装から入力を読み取ることができます。 出力 プログラムの出力は、追加の数値で増補された入力方程式です。各要素の原子の数は、矢印の両側で同じでなければなりません。上記の例の場合、有効な出力は次のとおりです。 2Al+Fe2O3->2Fe+Al2O3 分子の数が1の場合、ドロップします。数値は常に正の整数でなければなりません。プログラムは、合計が最小になるような数値を生成する必要があります。たとえば、次は違法です。 40Al+20Fe2O3->40Fe+20Al2O3 解決策がない場合は、印刷してください Nope! 代わりに。解のないサンプル入力は Pb->Au ルール これはコードゴルフです。最短のコードが優先されます。 プログラムは、すべての妥当な入力に対して妥当な時間内に終了する必要があります。 テストケース 各テストケースには、入力と正しい出力の2行があります。 C7H16+O2->CO2+H2O C7H16+11O2->7CO2+8H2O Al+Fe2O3->Fe+Al2O3 2Al+Fe2O3->2Fe+Al2O3 Pb->Au Nope!

19
数値を「4」が最も多い基数に変換します
これに触発された。整数、文字列、または数字の配列(任意)として指定された数値があります。数値の表現が最も「4」になるベースを見つけ、そのベースを返します。 番号結果 624 5 444 10 68 16 制限: 返されるベースは、入力を超えてはなりません。 abs(4)以下の数値は有効な入力とは見なされないため、未定義の戻り値は受け入れ可能です
30 code-golf  number 

11
ハイトマップをデプスマップに交換する
説明 あなたの仕事は、「深度マップ」、つまりオブジェクトの高さマップですが、上からではなく正面から見たものを出力することです。 たとえば、画像に示されている次のオブジェクトを考えます。高さマップは左側に表示されます。対応する深度マップは次のとおりです(矢印の位置から見た場合)。 010 211 <- Depthmap 322 矢印の前に立つと、左下のポイントに3つの立方体、左の中央のポイントに2つ、左上の点に0などがあります。 入力 入力は、任意のサイズの2次元配列です(必ずしも正方形ではありません)。 出力 出力は、深度マップを表す別の2次元配列です。推測できるように、そのサイズは(height x width)です。画像では、になります(3 x 3)。キューブの最高の塔が5だった場合、深度マップはの配列になることに注意してください(5 x 3)。 勝利条件 最短のコードが優先されます。 不許可 すべての言語が許可され、明示的な制限はありません。(あなたが何を思い付くことができるかわかりませんが、公正にプレーしてください。) 例 Input: Ouput: 5321 0001 1456 1012 2105 1112 1212 2222 3323 Input: Output: 22 01 13 12 00 22 Input: Output: (of the sample image) 232 …
30 code-golf 

16
数字を使用せずに2つの数字を掛ける
入力として"12345"、10などの正の整数を表す2つの文字列(やなど)が与えられます"42"。"518490"この場合、タスクは製品を含む文字列を出力することです。 ひねりは、コードで数値型を使用できないことです。いいえints、floats、unsigned longsなど、組み込みの複素数型または任意の精度の整数、またはそれらの行に沿ったものはありません。多くの場合、これらのタイプのリテラルも、それらを返す関数、メソッド、演算子なども使用しません。 君は することができ、文字列、ブール値、配列、または通常の数を表すために使用されない何か他のものを使用しています。(どちらの配列へのインデックスもその長さを取得するには。数値型を呼び出すことなく可能である可能性があることをしかしノート)charsは許可されていますが、それらに任意の算術演算やビット演算を実行するか、そうでない場合以外の何か他のものとして扱うないかもしれません文字列の一部を表すトークン。(charsの辞書編集による比較が可能です。) 制限を回避することはできません。これには、eval型関数内での数値型の使用、数値型への暗黙的な型変換、それらをサポートする非数値型での数値演算子またはビット単位演算子の使用、コンテナ型内に格納された数値型の使用、または関数の呼び出しが含まれます(ただし、これらに限定されません)文字列形式で数値結果を返す外部プログラム。(他の回避策が回答に表示される場合、このリストに追加する権利を留保します。)非数値型のみを使用して自分で乗算を実装する必要があります。 データが文字列の形式でコードに出入りする限り、入出力は任意の便利な方法で行うことができます。2つの入力引数のそれぞれにASCII文字のみが含まれており、で[0-9]始まらないと想定でき0ます。出力の先頭にゼロを付けないでください。 もう一つ:あなたのコードがなければなりません正しくまでの入力に扱うの長さの少なくとも10の文字、としなければならないため、現代のコンピュータ上の分の下で実行するすべてのその範囲で入力。投稿する前に、入力9999999999およびを指定したとき9999999999に、プログラムが999999999800000000011分以内にの出力を提供することを確認してください。この制限は、サイズの配列を割り当ててa*bそれを反復することで機能する回答を防ぐために特に存在するため、そのフォームの回答は勝つ資格がないことに注意してください。 これはcode-golfであるため、最短の有効なソリューション(バイト単位)が優先されます。

30
+、-演算を使用せずに、整数が2のべき乗かどうかを確認します[終了]
整数が2のべき乗かどうかをチェックするプログラムを作成します。 サンプル入力: 8 サンプル出力: Yes サンプル入力: 10 サンプル出力: No ルール: +、-操作を使用しないでください。 何らかの入力ストリームを使用して、数値を取得します。入力は、最初は変数に保存されることは想定されていません。 最短のコード(バイト単位)が優先されます。 真実/偽の応答(たとえば、true/ false)を使用できます。入力数がより大きいと仮定できます0。

30
インタラクティブなDeadfishインタープリターを作成する
Deadfishは、4つのコマンドを備えたジョーク「プログラミング言語」です。Esolangページは少し矛盾しており、そのページのインタープリターはまったく同じように機能しないため、次のバリエーションを実装する必要があります。 仕様 少なくとも 16ビットのサイズのアキュムレータがあり、それ以上は許可されますが、それ以下は許可されません。負の数をサポートする必要はありません。アキュムレーターは0、プログラムの開始時にあります。 次の2セットの4つのコマンドがあり、プログラムは両方を同時にサポートする必要があります。 標準Deadfish│XKCDバリアント│意味 ─────────────────────┼──────────────────┼─────────── ────────────────────────────── i│x│累積アキュムレーター d│d│アキュムレーターを減少させる s│k│平方(acc = acc * acc) o│c│数値としての出力アキュムレーター コマンドの実行後、アキュムレータがまたはのいずれ-1かである256場合、アキュムレータをゼロにリセットする必要があります。これは通常のラップアラウンドではないことに注意してください。たとえば、アキュムレータが20であり、sコマンドが実行された場合、アキュムレータは400その後になります。同様に、アキュムレータが257あり、dコマンドが実行されると、アキュムレータはになり0ます。 これらのコマンドのいずれでもない入力は無視する必要があります。 テストプログラム xiskso 出力する必要があります 0 xiskisc 出力する必要があります 289 I / O プログラムにプロンプ​​トが表示されます>>。プロンプトは、新しい行の先頭にある必要があります。次に、ユーザー入力の行を読み取り、指定されたコマンドを左から右に実行します。数字を出力するときは、数字を区切る必要があります。すなわち、12 34大丈夫、12,34大丈夫、 12 34 大丈夫ですが、そうで1234はありません。 プログラムは、少なくともこれにEOF達するまで、ループでこれを実行し続ける必要があります。 セッションの例: >> xiskso 0 >> xiskisc 289 >> ddddo ddddo 285 281 >> ddddo ddddo 277 …

30
猫はあなたの入力を再び食べました!
catプログラムを作成します。別名、入力を受け取って出力するプログラムです。 ...ただし、プログラムは入力から文字をランダムに削除し、代わりに印刷します。 入力の各文字は、プログラムで削除されるオッズが一般的に等しい必要がありますが、それを作成するのは難しいため、各文字のオッズは最大で10%しか変化しません。 プログラムは入力を受け取り、入力から文字をランダムに削除してから、そのバージョンを再度印刷する必要があります。(言語で改行を印刷する必要がある場合は、末尾の改行または他の文字で印刷できます。) 入力がの場合、BOOOWLすべてのOを等しい確率で削除するべきではありません。各文字(一意ではない)を考慮する必要があるため、結合されたすべてのOが1/5の確率を持つ代わりに(たとえば)、各Oは1 / 5のチャンスです。したがって、1/5のチャンスではなくBWL、1/5のチャンスがBOWLありBOOWLます。 入力はSTDINまたはそれに最も近いものに制限されます。 各キャラクターは、最低10%、最高30%の確率で除去されなければなりません。 各キャラクターのオッズは個別に計算する必要があります。 ランダムアクションをサポートする言語の任意のコンポーネントを使用できます。それが機能していても、他のものでもかまいません。 出力はSTDOUTまたは最も近い同等のものである必要があります。言語にSTDOUTがある場合は、他の方法で出力しないでください。あなたの言語が文字列をテキストとして出力できない場合、最も近いものを使用してください(Cの文字配列出力はここでOKです)。 これはコードゴルフです。最短のプログラムが勝ちます。

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