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

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

5
信頼できない友人のための銀行
前書き あなたはあなたの裏庭で、あなたのメイクアップされた国で財務大臣としての仕事を得ました。あなたとあなたの信頼性の低い友人のために、あなたの国であなた自身の銀行を作ることにしました。友人を信用していないため、すべての取引を検証するプログラムを作成して、友​​人が構成通貨を使い果たして経済を台無しにするのを防ぐことにしました。 仕事 開始残高とすべてのトランザクションを考えると、誰かが使いすぎたすべてのトランザクションを除外し、使い過ぎた人(これは閉鎖された口座への使いすぎを含む)がブロックするようになります。 /彼女の銀行口座。 入出力 入力としての2つのリストAと出力としてBのリストC。Aは、形式の各アカウントの開始残高です[["Alice", 5], ["Bob", 8], ["Charlie", 2], ...]。Bフォーマットとの取引のリストである手段ボブがアリスの3通貨単位を支払うことを望んでいます。と同じ形式にする必要があります。、および任意の合理的な形式にすることができます。[["Bob", "Alice", 3], ["Charlie", "Bob", 5], ...]["Bob", "Alice", 3]CBABC テストケース A: [["Alice", 5], ["Bob", 2]] B: [["Alice", "Bob", 5], ["Bob", "Alice" 7]] C: [["Alice", "Bob", 5], ["Bob", "Alice" 7]] A: [["A", 2], ["B", 3], ["C", 5]] B: [["C", …
12 code-golf 

2
このpythonコードを短縮するにはどうすればよいですか?
ここに短縮したいコードがあります。 n=input() while n: s=raw_input() x,r,g,b=(int(x) for x in s.split()) a=x/r%2 c=x/g%2 d=x/b%2 r=((a*10+c)*10)+d if r==0:e="black" elif r==100:e="red" elif r==1:e="blue" elif r==10:e="green" elif r==101:e="magenta" elif r==11:e="cyan" elif r==110:e="yellow" else:e="white" print(e) n-=1 入力:3 4643 5913 4827 9752 5583 5357 5120 9400 2025 5475 4339 8392 出力: black yellow black
12 code-golf  tips  python 

1
文字列を破壊します!
チャレンジ 文字列の入力が与えられたら、その破壊されたバージョンを出力します。 プロセス P r Pr r o o o g g g r r r rogr r a -> a -> a -> a -> a -> -> -> -> -> m m m m m m m m m m mmar m i i i i i i …

7
音部記号間の変換
あなたが去る前に、あなたはこの挑戦をするために多くの楽譜を理解する必要はありません。 説明 標準的な楽譜では、音部記号はページを横切って音符への参照ポイントとして機能し、どの音符を演奏するべきかを知らせます。高音部記号と低音部記号にまだ慣れていない場合は、ここから説明します Wikipediaのください。 音部記号は、音符のピッチを示すために使用される音楽記号です。ステーブの先頭にある行の1つに配置され、その行のノートの名前とピッチを示します。この行は、ステーブの他の行またはスペース上のノートの名前を決定する基準点として機能します。 上の画像では、線の上半分がト音記号であり、 下半分は低音部記号で、 高音部記号を見るとわかるように、一番下の行のノートはEです。(このチャレンジでは、音部記号の外側の音符は数えません)低音部記号の一番下の線は Gです。この課題を完了するには、次のことを行う必要があります。 チャレンジ 次のいずれかの形式の入力(任意)を指定して、反対の音部記号に変換します。高音部記号と低音部記号のどちらであるかは、言語のTruthey / Falsey値(2つの値だけでなく)になります。 F#T または F#True または F#Treble だがしかし F#-1 または F#4 スペースと大文字はオプションであり、フラットは表示されず、末尾の空白は許可されません。 Input Expected Output E Treble G F Treble A F# Treble A# G Treble B G# Treble C A Treble C A# Treble C# B Treble D …

15
入れ子になった数字
正の整数の配列を考えます: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, ... 次に、それらを連結します。 1234567891011121314151617181920212223242526... そして、それらを可変長のチャンクに分割します。各長さは、N番目の正の整数に等しくなります。 [1][23][456][7891][01112][131415][1617181][92021222][324252627][2829303132] ... --------------------------------------------------------------------------- 1 2 3 4 5 6 7 8 9 10 ... 仕事 整数N(1インデックスの場合は正、0インデックスの場合は非負)を指定すると、タスクはN番目のチャンクの数字のデルタの合計(連続する数字の差)を出力します。 デフォルトで禁止されている抜け穴が適用されます。 標準入出力メソッドが適用されます。 Nに対して0または1のインデックスを選択できます。 シーケンスは1で始まる必要があります。 これはcode-golfで、バイト単位の最短コードが勝ちます。 例とテストケース 1インデックス付きテストケース。0のインデックスが必要な場合は、Nを減らします。 N, Chunk, Deltas, Sum 1 -> 1 -> [] …

6
私の「ゴルフ前」のゴルフC
バックグラウンド 私の場合は、コード・ゴルフ Cでの提出、私は処理ツールを必要としています。他の多くの言語と同様に、空白はCソースではほとんど関係ありません(常にではありません!)-それでもコードは人間にとってはるかにわかりやすいものになります。単一の冗長な空白を含まない完全にゴルフされたCプログラムは、ほとんど読み込めません。 そのため、空白やコメントを含むコードゴルフの提出のためにCでコードを書くのが好きなので、プログラムは書き込み中にわかりやすい構造を保ちます。最後のステップは、すべてのコメントと余分な空白を削除することです。これは退屈で心のない作業であり、コンピュータープログラムのインターンが実際に行う必要があります。 仕事 次の規則に従って、「事前ゴルフ」されたCソースからコメントと冗長な空白を削除するプログラムまたは関数を作成します。 \行の最後の文字として(バックスラッシュ)がある行継続。これを見つけた場合は、次の行を同じ論理行の一部として扱う必要があります(たとえば、他の操作を行う前に、\および次の行\n(改行)を完全に削除できます)。 コメントは、で始まる1行形式のみを使用し//ます。したがって、それらを削除するには//、文字列リテラルの外側で遭遇する論理行の残りを無視します(以下を参照)。 空白文字は(スペース)、\t(タブ)および\n(改行なので、ここでは論理行の終わりです)。 空白のシーケンスを見つけたら、その周囲の空白以外の文字を調べます。もし 両方とも英数字またはアンダースコア(範囲[a-zA-Z0-9_])または 両方とも +か 両方とも -か 前のものは/、次のものは* 次に、シーケンスを単一のスペース()文字にます。 それ以外の場合は、シーケンスを完全に削除します。 このルールにはいくつかの例外があります。 プリプロセッサディレクティブは、出力の独自の行に表示する必要があります。プリプロセッサディレクティブは、次で始まる行です#です。 文字列リテラルまたは文字リテラル内では、空白を削除しないでください。任意の"(二重引用符)/ '直接バックスラッシュの奇数が付け加えていません(単一引用符)は、( \)が開始または終了する文字列リテラル / 文字リテラルを。文字列と文字リテラルは、それらが開始した同じ行で終了することが保証されています。文字列リテラルと文字リテラルはので、入れ子にすることができない'内部の文字列リテラルと同様に、"内部の文字はリテラル特別な意味を持っていません。 I / O仕様 入力と出力は、改行文字を含む文字シーケンス(文字列)、または改行文字を含まない文字列の配列/リストのいずれかでなければなりません。配列/リストの使用を選択した場合、各要素は行を表すため、改行は暗黙的です各要素の後にに追加されます。 入力は有効なCプログラムのソースコードであると想定できます。これは、印刷可能なASCII文字、タブ、改行のみが含まれることも意味します。不正な形式の入力に対する未定義の動作は許可されています。 前後の空白/空行は許可されません。 テストケース 入力 main() { printf("Hello, World!"); // hi } 出力 main(){printf("Hello, World!");} 入力 #define max(x, y) \ x > …
12 code-golf  c 

23
2つの整数の平均を合計します
数学には、算術平均、幾何平均など、多くの平均があります... 定義とタスク これらは2つの正の整数の定義であることに注意してください*: 根平均二乗は半分自分の二乗和(の平方根です)。 算術平均は(半分、それらの和です)。 幾何平均は(彼らの積の平方根です)。 調和平均は、ある2それらの逆(の合計で割っ= )。 二つの整数所与及びbは 、その結果、B∈[1、+∞) 、手段の上記合計とB。回答は少なくとも小数点以下3桁まで正確である必要がありますが、丸めや浮動小数点の精度エラーを心配する必要はありません。 テストケース a、b->出力 7、6-> 25.961481565148972 10、10-> 40 23、1-> 34.99131878607909 2、4-> 11.657371451581236 345、192-> 1051.7606599443843 このプログラムを使用して、より多くのテストケースの正しい結果を確認できます。これはcode-golfであるため、標準ルールに準拠した最短の有効な提出が優先されます。 *他にも多くの手段がありますが、この課題の目的のために、「定義」セクションで言及したものを使用します。

11
自己合計数
数字を数字の合計に変換する ない任意の合計:私たちが必要とする最短の和を 任意の数字ではない:あなただけ使用することができます番号の桁数を 例入力として整数 が与えられますn>0 言ってみようn=27。可能な限り短い方法で、数字のみを使用27してsumとして表現する必要があります。指定された番号のすべての数字を使用する必要はありません! [2,7] だから27=2+2+2+7+7+7。それからそれらの数字を数えて数えます:[2,2,2,7,7,7]。 の最終回答n=27は6 以下のためのもう一つの例n=195得るために最短合計私たちは、次の数字を使用する必要があります [5,5,5,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9]と答えがあります23 チャレンジ 整数与えられn>0、出力の最小桁数(番号に含まれる)は、この数まで和 テストケース Input->Output 1->1 2->1 10->10 58->8 874->110 1259->142 12347->1765 123456->20576 3456789->384088 これはcode-golfです。バイト単位の最短回答が勝ちです!

15
ポインターシーケンスを作成する
ような任意の配列であることがポインタ配列を定義することができ(n)は=((N-1) - ((N-1))) FORALL Nいくつかの有限数よりも大きいです。たとえば、シーケンスが 3 2 1 次の項は2、a(n-1)= 1、(n-1)-1 = 1、a(1)= 2であるためです(この例はゼロインデックスですが、計算に使用するインデックスは関係ありません常に同じです。)。プロセスを繰り返すと、無限のシーケンスが得られます 3 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 2 1 2 …

13
カエルのようにスキップ!
以下に説明するように、負でない整数の配列が与えられた場合、タスクはその特定の要素のみを保持することです。 配列がであるとしましょう[1, 3, 2, 4, 11, 5, 2, 0, 13, 10, 1]。 まず、配列の最初の要素を取得しnます。最初のn要素を保持し、次の要素を破棄します(n+1thは破棄します)。新しい配列は[1, 2, 4, 11, 5, 2, 0, 13, 10, 1]です。 次に、削除した要素の次の要素を取得し、まったく同じことを行います。プロセスを再適用すると、[1, 2, 11, 5, 2, 0, 13, 10, 1] 配列の境界の外側に到達するまで、または配列に要素がなくなるまで、このプロセスを繰り返します。11配列の長さよりも大きいため停止します。 次に、結果を出力する必要があります。 入力/出力は、任意の標準形式で取得/提供できます。配列は決して空ではなく、負でない整数のみを含みます。すべての標準的な抜け穴は禁止されています。 これはコードゴルフなので、バイト単位の最短コードが勝ちです! テストケース 入力->出力 [1、2、3、4、5]-> [1、3、4] [6、1、0、5、6]-> [6、1、0、5、6] [1、3、2、4、11、5、2、0、13、10、1]-> [1、2、11、5、2、0、13、10、1] [2、2、2、2、2、2]-> [2、2] [1、2、3、1、2、3、1、2、3]-> [1、2] [3、1、2、4、0]-> [] * …

7
因子の合計数
正の整数n> 1が与えられた場合、積がnである 1より大きい整数を追加することにより、いくつの数値を作成できるかを決定します。たとえば、n = 24の場合、次の方法でnを製品として表現できます。 24 = 24 -> 24 = 24 24 = 12 * 2 -> 12 + 2 = 14 24 = 6 * 2 * 2 -> 6 + 2 + 2 = 10 24 = 6 * 4 -> 6 + 4 = 10 24 …

1
優れた複合数
優れた高度に合成された数は、除数の数と数の累乗の比が可能な限り高い整数です。これを式として表現する: d(n)をnの約数(数自体を含む)とします。特定の整数nについて、整数kごとにd(n)/ n ^ eがd(k)/ k ^ e以上の数eが存在する場合、nは高度に合成された数です。 詳細については、ウィキペディアの「優れた複合番号」またはA002201を参照してください OEISのを。 初期値は次のとおりです。 2, 6, 12, 60, 120, 360, 2520, 5040, 55440, 720720, 1441440, 4324320, 21621600, 367567200, 6983776800, 13967553600, 321253732800, 2248776129600, 65214507758400, 195643523275200, 6064949221531200 課題は、インデックスnを取得し、このシーケンスのn番目の数値を出力することです。 0または1のインデックスを使用できます。また、少なくとも最初の10個の値を処理できる限り、言語のデータ型の制限までのみ正しいプログラムを作成できます。 これはコードゴルフです。標準の抜け穴が適用されます。

5
Mozilla / 1.0 Mozilla / 2.0 Mozilla / 3.0 Mozilla / 4.0 Mozilla / 5.0
最初はNCSA Mosaicがあり、Mosaicは自分自身を呼び出しNCSA_Mosaic/2.0 (Windows 3.1)、Mosaicはテキストとともに写真を表示し、多くの喜びがありました。 15年後... そして、GoogleがChromeを構築し、ChromeはWebkitを使用しました。Safariのようなもので、Safari用に構築されたページを望んでいたため、Safariのふりをしました。したがって、ChromeはWebKitを使用し、Safariのふりをし、WebKitはKHTMLのふりをし、KHTMLはGeckoのふりをし、すべてのブラウザーはMozillaのふりをし、Chromeはそれ自体を呼び出しMozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13、ユーザーエージェント文字列は完全な混乱でした。ほとんど役に立たず、誰もが他の人のふりをして、混乱がたくさんありました。 ここで全文を読む... ユーザーエージェント文字列を指定すると、対応するブラウザーを返します。 以下をサポートする必要があります: クロム/クロム* オペラ Firefox IE 縁 サファリ コードは、これらのテストケースすべてを満たす必要があります。 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36 Chrome Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, …

30
デバイスが誤動作しています...未定義の文字列動作を悪用します!
助けて!デバイスが誤動作し、文字列を繰り返してみると、厄介な結果になります。同じ文字列をN回繰り返す代わりに、NxNの正方形に各文字を塗りつぶし、正方形を積み重ねます。 たとえば、String ではなくString "Test"を指定すると、次の2よう"TestTest"になります。 TT TT ee ee ss ss tt tt しばらくこれを見た後、私はそれを好きになり始めました。今日のあなたの仕事は、この奇妙な振る舞いを再現することです。与えられた非空でのみ印刷可能なASCII文字から成る文字列、および正の整数、出力文字列の私の誤動作デバイス戻ります。 すべての標準ルールが適用されます。 入力と出力は、合理的な手段で処理できます。 これはcode-golfであるため、各言語のバイト単位の最短コードが優先されます。 テストケース 入力 出力 ---------- 「テスト」、2 TT TT ええ ええ ss ss tt tt ---------- 「UuU」、3 ううう ううう ううう うう うう うう ううう ううう ううう ---------- 「A」、5 AAAAA AAAAA AAAAA AAAAA AAAAA ---------- より大きなテストケースはこちらで見つけることができます。がんばって、ゴルフを楽しんでください!
12 code-golf  string 

3
誕生日おめでとう、ケーキを食べよう!
それはすぐに私の友人の誕生日であり、彼はプログラマーでありASCIIアートの愛好家なので、私は彼にASCIIケーキを作ろうと思いました! 悲しいことに、私は彼の現在の年齢を忘れないので、指定した数のキャンドルでケーキを焼くアスキーオーブン用のプログラムが欲しいので、彼と間違っていたらもう一度自分でやる必要はありません年齢。 ASCIIオーブンのメモリとストレージ容量は限られているため、できるだけ少ないバイトを使用する必要があります。 あなたのタスク: 誕生日ケーキをコンソールに出力するプログラムを作成します。入力で指定した数のキャンドルを使用します。 ケーキの要件は次のとおりです。 水平線-と垂直|線、および頂点で構成される境界線が必要+です。 少なくとも5文字の幅(ケーキの境界線を含む|) 少なくとも5文字の高さ(ケーキの境界線を含む-) そのスペースに炎がある場合を除いて、ケーキの境界と最初のキャンドルベース(炎ではなく)の間に、両側に空白文字がなければなりません。炎またはろうそくベースは、ケーキの境界線と重ならないようにする必要があります。 ケーキの最大幅は9文字なので、行ごとに最大5つのキャンドルがあります。 ケーキを2次元にしたくないので、ある程度のボリュームを持たせるには、2行余分に高くする必要があります。下部に別の境界線を追加し、頂点を上部の頂点に接続します。ここでも、上からのASCII文字(-、|および+)を使用します。 キャンドルの要件は次のとおりです。 ベース|と炎*で構成され、ベースの上に炎が積み重ねられています。 キャンドルは、対角線を除き、互いに直接隣接していない場合があります。 ろうそくは、左から右へ、次に上から下へ、最大5行で配置されます。 (注:前の行に5本のろうそくがあった場合、次の行にも5本のろうそくを置くことはできません。それは、それらが隣接するからです。) その他の注意事項: ケーキの幅は、最初の行のろうそくの数に依存しますが、最小5文字、最大9文字の幅にする必要があります。 ろうそくは、一番上の行から左から右に向かっていっぱいになります。1つの行が一杯になると、次の行は最初の行の下の行から始まります。 入力: 好きな(合理的な)形式の番号を受け入れることができます。 この挑戦のために、あなたはこの数字が0から2 31(0を含まない)の間であると仮定するかもしれません。 出力: 文字列を返すか、結果のケーキを出力コンソールに直接書き込むことができます。 ルール: 標準的な抜け穴は禁止されています。 これはcode-golfであるため、どの言語でもバイト単位の最短コードが優先されます。 例: 入力: 8 +-----------+ | * * * * * | | |*|*|*| | | | | | | | | …

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