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

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

7
セーケレスのシーケンス
定義 a(1) = 1 a(2) = 2 a(n)でのk>a(n-1)3項算術の進行を回避する最小数a(1), a(2), ..., a(n-1), kです。 換言すれば、a(n)最小数でk>a(n-1)存在しないようにx、yここで0<x<y<n及びa(y)-a(x) = k-a(y)。 うまくいった例 の場合n=5: 我々は持っています a(1), a(2), a(3), a(4) = 1, 2, 4, 5 の場合a(5)=6、2, 4, 6算術的な進行を形成します。 の場合a(5)=7、1, 4, 7算術的な進行を形成します。 の場合a(5)=8、2, 5, 8算術的な進行を形成します。 の場合a(5)=9、1, 5, 9算術的な進行を形成します。 の場合a(5)=10、算術の進行は見つかりません。 したがってa(5)=10。 仕事 与えられたn、出力a(n)。 スペック n 正の整数になります。 1インデックスの代わりに0インデックスを使用nできます0。その場合、0インデックスを使用している場合は、回答にそれを明記してください。 得点 私たちは3項算術の進行を回避しようとしているため、3は小さい数なので、バイト数の観点から、コードはできるだけ小さく(つまり、短く)する必要があります。 テストケース …

15
マッピングをシャッフルする
マップをキーと値のペアのセットとして定義します。この課題では、各値を取得し、それらをランダムに選択されたキーに割り当てる必要があります。 値をランダムにシャッフルして、結果のマップを出力する必要があります。つまり、プログラムを実行するたびに、異なる出力が得られる可能性があります。 考えられる値の順列ごとに、出現する可能性がゼロ以外である必要があります。 元のキーと元の値はすべて、結果の配列に含まれている必要があります。繰り返される値は、結果の配列に同じ回数出現する必要があります。 たとえば、マップが次の場合: [0:10, 1:10, 5:5] 次のすべてが表示される可能性があります。 [0:10, 1:10, 5:5] (original map) [0:10, 1:5, 5:10] [0:10, 1:10, 5:5] (technically the same map, but I swapped the two tens) [0:10, 1:5, 5:10] [0:5, 1:10, 5:10] [0:5, 1:10, 5:10] 許容できる入力/出力: 言語のネイティブマップ キーと値のペアの配列を入力できます。キーを含む配列と値を含む配列の2つの配列を入力することはできません。 上記の文字列表現を使用できます 配列またはマップを入力した場合、返す代わりに元のオブジェクトを変更できます 入力タイプは出力タイプと一致する必要があります 配列を入力する場合、キーの順序を維持する必要があります。 キーは一意であると想定できますが、値が一意であるとは想定できません。 これはコードゴルフなので、できるだけ短く答えてください

2
ディレクトリ構造のグラフィカルTreefication
次のような従来のディレクトリ構造を変換します。 config.yml drafts begin-with-the-crazy-ideas.textile on-simplicity-in-technology.markdown includes footer.html header.html これに . ├── config.yml ├── drafts | ├── begin-with-the-crazy-ideas.textile | └── on-simplicity-in-technology.markdown └── includes ├── footer.html └── header.html 4つのスペースは、上記のディレクトリのネストされたフォルダまたはファイルを指定します。 許可されるネストされたカテゴリレベルは異なる場合があります。 更新 ファイル名:有効なLinuxは、スペースや改行せずにファイル名:任意のバイトを除きNUL、/およびspaces、linefeeds 描画文字: | 縦線(U + 007C) ─箱型図ライト水平(U + 2500) ├箱形図は垂直で右が明るい(U + 251C) 勝者:バイトで最短のコードが勝ちます!

6
対称グループSnの「偶数」順列を循環表記で出力します
タスク 定義 ポイント{1,2,3,4,5}とそれらのすべての順列を考慮してください。これらの5つのポイントの可能な順列の総数は、簡単なトリックで確認できます。5つのスロットをこれらのポイントで埋めるイメージ、最初のスロットは5つの可能な数字、2番目のスロットは4つ(最初のスロットを埋めるために使用されているため) 3番目の3など。したがって、順列の総数は5 * 4 * 3 * 2 * 1です。これは5になります。順列または120順列。これは対称群S5と考えることができ、対称群Snにはn! or (n*n-1*n-2...*1)順列があります。 「偶数」の順列とは、偶数の偶数の長さのサイクルがある順列です。(1 2 3)(4 5)順列1->2->3->1などの巡回記法で記述すると、最もわかりやすく、4->5->43つの長さのサイクル(1 2 3)と2つの長さのサイクルが1つずつあります(4 5)。順列を奇数または偶数として分類する場合、奇数長のサイクルを無視し、この順列[ (1 2 3)(4 5)]は奇数であると言います。例でも: (1)(2 3)(4 5)= 2つの2長さサイクル| EVEN | (1 2 3 4 5)=長さのサイクルはありません| EVEN | *長さのサイクルが存在しない場合、順列は偶数であることに注意してください。 奇妙な例: (1 2)(3 4 5)= 1つの2長さサイクル| ODD | (1)(2 3 4 …

6
画像の逆ベイヤーフィルター
ほとんどすべてのデジタルカメラセンサーは、フォトセンサーのグリッドに編成されています。各フォトセンサーは、赤、緑、青のいずれかの原色に敏感です。これらのフォトセンサーの構成は、発明者であるイーストマンコダックのブライスバイエルにちなんで、バイエルフィルターと呼ばれています。画像が撮影された後、4つのフォトセンサーが1つのピクセルのRGB値を結果の画像に構成します。あなたの仕事は、そのプロセスを逆にして、結果のピクセルをそれらのフィルターの色に従って色付けすることです。簡単にするために、ガンマ補正は無視します。 次に例を示します。「通常の」前向きベイヤフィルタの手順は次のとおりです。 Pantone Beeswaxカラーの光線がセンサーに当たります。 BGGR(青-緑/緑-赤)フィルターは、これを4つの光線に分解します。 4つの光線がセンサーに当たると、次のようになります。81-168/168-235(センサー値の範囲は0-255)。 ベイヤーフィルターは、これを色付きの1つのRGBピクセル(235、168、81)に変換します。 逆Bayerフィルターの手順は次のとおりです。 色(235、168、81)のRGBピクセルは、RGB値(0,0,81)-(0,168,0)/(0,168,0)-(235,0,0)の4つのピクセルに分割されます。 チャレンジ 以下を実行する可能な限り短い関数またはプログラムを作成する必要があります。 入力と同じようにファイル名を取り、DeBayered画像を出力します。 出力はファイルに書き込まれるか、画面に表示されます。 出力は、元の画像の2倍の幅と2倍の高さでなければなりません。 入力画像の各ピクセルは、次の図でグラフィカルに説明されているように、BGGR(青-緑/緑-赤)ベイヤーフィルターパターンに従ってマッピングする必要があります。 両方の緑のフォトセンサーが同じ信号を受信すると仮定します。そのため、Bayer行列のG値は両方とも、RGB画像のG値に等しくなります。 結果の画像の配列表現を返すことはできません。出力は、イメージとして表示できるイメージまたはファイル(適切なイメージ形式のファイル)でなければなりません。 例 このファイルを入力として与えます: 結果の画像は次のようになります。 リファレンスPython実装: from PIL import Image import numpy import sys if len(sys.argv) == 1: print "Usage: python DeByer.py <<image_filename>>" sys.exit() # Open image and put it in a numpy array srcArray …

11
ディレクトリツリーハウスを表示するプログラムを書く
C:/stdinから、またはファイルから読み取られたディレクトリ(など)を指定すると、ディレクトリツリーが生成され、各ファイル/フォルダはその深さに基づいてインデントされます。 例 私が持っている場合C:/のみ、2つのフォルダーを含むドライブをfooしてbar、そしてbar空のときにfoo含まれているbaz.txt場合、入力して実行すると、C:/生成します。 C:/ bar/ foo/ baz.txt 入力で実行している間C:/foo/は foo/ baz.txt これはコードゴルフなので、バイト数が最も少ないものが優先されます。ファイル拡張子(などbaz.txt)はオプションです。補足:隠しファイルは無視できます。ディレクトリは実際に存在している必要があります。ファイルには印刷できない文字や改行は含まれていませんが、他のすべての印刷可能なASCII文字は問題ありません(スペースを含むファイル名をサポートする必要があります)。出力はファイルまたはstdoutに書き込むことができます。インデントは、タブ文字または4つのスペースで構成できます。

3
キー言語入力を解析して処理する
キー言語を解析して処理してみましょう!一連のキーボードのキープレスや特殊キーの入力を前提として、すべてのアクションが次のキーボードに基づいて処理されたときに製品を出力するプログラム、関数などを記述します。 +-------------------------------------------------------+ | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | - | + | | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 …

10
既存の重みのセットから選択して、目標合計を作成します
ウエイトリフティングをするとき、バーに数枚のプレートをつけて比重を出したいです。 私は次の皿を持っています: 各1 kgの6つのプレート 各2.5 kgのプレート6枚 各5 kgのプレート6枚 各10 kgのプレート6枚 バー自体の重量は10 kgです。 プレートはペアでのみ取り付けることができます-プレートはバーの両端に取り付けられ、両端の配置は完全に対称でなければなりません(たとえば、2つの5 kgプレートを一方の端に取り付け、1つの10 kgプレートを安全上の理由から、もう一方の端は禁止されています)。 特定の総重量を得るために使用する必要がある各種類のプレートの数を教えてくれるプログラムまたは関数を作成します。入力は11より大きい整数です。出力は4つの数値のリスト/配列/文字列です。既存のプレートを組み合わせて目標重量を取得することが不可能な場合は、ゼロ/空の配列、無効な文字列を出力し、例外などをスローします。 いくつかの解決策がある場合、コードは1つだけを出力する必要があります(ユーザーに選択させないでください-彼は他のもので忙しすぎます)。 テストケース: 12 -> [2 0 0 0] - 2 plates of 1 kg plus the bar of 10 kg 13 -> [0 0 0 0] - a special-case output that means "impossible" 20 …

9
フレッドの水道代
フレッドは準フレンドリーな男ですが、実際には彼は意地悪です。 このため、フレッドはカリフォルニア州ロスアルトスの小さなアパートに一人で住んでいます。フレッドは水にとてもこだわっているので、とても卑劣です。したがって、彼は彼の水道料金が何であるかを理解するためにあなたの助けを必要としています。 あなたの仕事は、入力として使用された水の量(これは常に整数です)が与えられると、彼の水道料金を返す関数またはプログラムを書くことです。 水の消費には段階があります。これは、水の量に応じて価格の範囲があることを意味します。 これらは、ティア、価格、および対応する水の量です。 Tier I First 10 Ccf: $3.8476/Ccf Tier II Next 17 Ccf: $4.0932/Ccf Tier III All subsequent water: $4.9118/Ccf 以下のためのn立方フィート(CCF)の何百、以下の追加料金は同様にあります。 CPUC fee: 1.5% of above charges LIRA quantity surcharge: $0.047*n PBOP amoritization surcharge: $0.004*n Tier I、Tier II、Tier III、CPUC、LIRA、およびPBOP料金の合計が水道料金の合計です。この合計は、小数点以下2桁に四捨五入してコンソールに返すか印刷する必要があります。 次に2つの例を示します。 Input: 15 ... Calculations which you do …
9 code-golf  math 

5
2Dグリッドを塗りつぶします
チャレンジの説明 グリッドを 2次元の長方形配列(すべてのサブ配列が同じ長さであることを意味します)と呼びましょう。グリッドのすべての単位は、空のスペースまたは境界線です。文字のグリッドでは、空のスペースは1つの空白で表されます。他の文字はすべてボーダーとして扱われます。サンプルグリッド(+さん、|さんと-読みやすさのために追加の- 彼らは、グリッドの一部ではありません): +----+ | | | | | | | | | | +----+ an empty 4x5 grid +------+ | | | # | | # | +------+ a 6x3 grid with 2 borders +----------+ | | | | | ##### | | # # | | ## …

2
こちらがバブです。世界クラスではないサッカー選手
これはバブです。バブはサッカー選手です。しかし、彼はあまり上手ではありません。彼はまだネットにボールを蹴ることができません!(気づいていないの@はボールです。 _____ | \ O | \ \|/ | \ | | net \ / ─ @ |_________\ 彼のスキルを伸ばすために、彼はボールを蹴るときのパフォーマンスを評価するのに役立つシステムを開発しました。彼はそれを「10ポイントシステム」と呼んでいます。 しかし、彼はxポイントを達成するために何をする必要があるのか​​知りません。あなたは彼がボールがどこにあるかを視覚化するのを手伝う必要があります、それで彼は彼が獲得し​​たいポイントの数の期待を設定することができます。彼が達成できるラウンドごとに10ポイントがあります。 したがって、これはあなたの挑戦です。 数値xが与えられると、Bubが取得するポイントの数は、フィールド上のボールの位置を出力します。ここにいくつかの有用なマーカーがあります: バブはネットからちょうど50スペース離れています。 バブが獲得する各ポイントで、ボールはネットに5スペース近づきます。したがって、バブが3ポイント獲得した場合、ボールはネットから35スペース離れています。 バブが獲得する3ポイントごとに、ボールは空中で動き始めます!1スペース上に移動します。 バブが獲得したポイント数がボールをネットの後ろに移動する場合、ネット内のどこにでもボールを置くことができます。 覚えておいてください、バブ、ボール、ネットを描く必要があります。 はじめに、ここに例を示します。 ポイント数:5 _____ | \ O | \ \|/ | \ | @ | \ / ─ |_________\ 標準ルールが適用されます。バイト数が最も少ないコードが優先されます!幸せなゴルフ!

10
エッジでのデリバティブ
導関数を近似するための私の好ましい方法は、中央差分であり、その差分は前方差分または後方差分よりも正確です。ただし、中心的な違いは、評価するポイントの両側にデータポイントが必要なことです。通常、これはどちらのエンドポイントにもデリバティブがないことを意味します。それを解決するには、エッジで前方と後方の差に切り替えてください: 具体的には、最初のポイントには前方差分、最後のポイントには後方差分、中央のすべてのポイントには中央差分を使用してください。また、xの値は等間隔であると想定して、yにのみ焦点を合わせることができます。次の式を使用します。 幸運を祈ります。誰かが3つのすべての派生物を適切な場所に再現する簡単なルールを思いつくかどうかを楽しみにしています! EX入力: 0.034 9.62 8.885 3.477 2.38 FD、CD、およびBDを使用して、どのスポットでどのアルゴリズムを使用するかを示します。したがって、5点以上を使用して、 FD CD CD CD BD そして、計算された値は次のようになります: 9.586 4.4255 -3.0715 -3.2525 -1.097 常に少なくとも3つの入力ポイントがあると想定でき、単精度または倍精度を使用して計算できます。 そしていつものように、最も短い答えが勝つ。
9 code-golf  math 

13
RgbからCmykへ
入力として3バイトまたはRGBを指定して、最も近いCMYK値を計算し、出力します。 パラメータと戻り値を持つ関数、またはstdin / stdoutを操作するプログラムを作成する 選択したカラープロファイルを使用しますが、参照を提供します 入力は、範囲[0; 255]の個別の数値または6桁の16進文字列のいずれかです。 出力は、[0; 1]または[0; 100]の範囲の個別の数値である必要があります 標準コードゴルフ:抜け穴なし、最短コード勝利 贅沢なアイデアは大歓迎です サンプルデータ: input output 108,174,106 [0.3793103448275862, 0.0, 0.3908045977011494, 0.3176470588235294] 0,0,0 0,0,0,1 170,255,238 33,0,7,0 0x0088ff 1,0.4667,0,0 [250,235,215] [0,6,14,1.96] #123456 .7907,.3953,0,.6627 未調整のマッピングは問題なく、おそらく最も簡単です 入力検証は不要です。floatは許可されます(範囲は0〜255)が、丸められることもあります 出力形式は、明確にコメントされているか、明白である必要があります。つまり: この順序でCMYK パーセンテージ[0; 100]でも純粋な数値[0; 1]でもかまいません テストには簡単な例[0,0,0]を含める必要があります。 このサイトには、私が見つけることができる最も多くの数のオンラインツールがあります。4桁を超えるツールを知っている人はいますか?

6
合計にインデックスを付けて行列を取り除く
合計にインデックスを付けて行列を取り除く あなたの好みの言語でmatrix / 2d配列を与える 入力: マトリックスは常に奇数の長さになります 行列は常に完全に正方形になります 行列の値は、言語の任意の整数(正または負)にすることができます 例: 1 2 3 4 5 6 7 2 3 4 5 6 7 8 3 4 50 6 7 8 9 4 5 6 100 8 9 10 5 6 7 8 -9 10 11 6 7 8 9 10 11 …

3
日付を簡略化する
これは分数の単純化と似ていますが、日付を使用します! プログラムの入力は次の形式でなければなりませんmm/dd 。例: 3/4 //March 4 12/15 //December 15 1/1 // January 1 入力は有効で、月に次の日数が含まれると想定します。 January 31 February 28 March 31 April 30 May 31 June 30 July 31 August 31 September 30 October 31 November 30 December 31 プログラムの仕事は、想定される有効な入力を受け取り、日付を繰り返し(または再帰的に)単純化し、各反復(0番目を含む)で、上記のように月の完全な名前で日付を出力することです。 例えば: 次の入力が与えられたとします。 12/18 出力します December 18 June 9 February 3 既に簡略化されている入力は、それ自体を出力するだけです。 …

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