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

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

30
最後の桁の大きな数字
番号の指定されたリストは、x x x … x n 3 2 1の最後の桁を見つける 例:[x1,x2,x3,...,xn][x1,x2,x3,...,xn][x_1, x_2, x_3, ..., x_n]xxx…xn321x1x2x3…xnx_1 ^{x_2 ^ {x_3 ^ {\dots ^ {x_n}}}} [3, 4, 2] == 1 [4, 3, 2] == 4 [4, 3, 1] == 4 [5, 3, 2] == 5 なぜなら。3(42)=316=430467213(42)=316=430467213 ^ {(4 ^ 2)} = 3 ^ {16} …
12 code-golf  math 

12
分布図を描く!
チャレンジ 入力として3つの整数が与えられます- min_value, max_value, sample_size、配列またはいくつかのパラメーターとして答えに渡すことができます。 あなたの仕事は、である出力任意の便利な形式の図を示していることで数字の周波数、(min_value, max_value)乱数場合範囲は、最大表示(min_value, max_value)範囲を撮像しますsample_size回。乱数列は回答内で生成する必要があります。 範囲とサンプルサイズが大きい場合、表現が正確である限り、ダイアグラムで使用するステップを自由に変更できます。 例 と[1, 5, 10]を入力として: o o o x o x o x x x x x x x x 1 2 3 4 5 [1, 100, 15](00番組1-9、図10に示す10-19、等そう10の工程において、)として入力: xx oo oo xx oo xx oo oo oo oo xx oo oo xx …
12 code-golf  random 

1
自己推定パングラム
パングラム 素早い茶色のキツネが怠zyな犬を飛び越えました。 これはパングラムの例です-アルファベットのすべての文字を少なくとも1回含む文。 自己列挙パングラムは、独自の文字の数の分析を生成することによってパングラムする基準を満たす文です。 これを達成する例は、文です このパングラムには、4つのAs、1つのB、2つのC、1つのD、30のE、6つのF、5つのG、7つのH、11のI、1つのJ、1つのK、2つのL、2つのM、18のN、15のO、2つのPが含まれます、1つのQ、5つのR、27のS、18のT、2つのUs、7つのV、8つのW、2つのX、3つのY、および1つのZ。 チャレンジ 入力が文字目録につながる文字列である関数を生成します。この例では、入力は「このパングラムに含まれています」です。各文字の数量は、書面に記載され、表示される文字数に貢献する必要があります。 ルール オックスフォードコンマはオプションです Zの前にアンパサンドを使用します(または、ハードモードの場合、関数で「&」と「and」を切り替える機能を含めます) すべての文字は合計文字数にカウントされます 書かれていない数字はありません これはコードゴルフですので、バイト単位の最短コードが勝ちます HONOでのuこの週末R夫婦の、数字は女王の英語で書かなければなりません。たとえばnine hundred and ninety-nine Gs、文字Gの999回の出現およびnine hundred and nine Gs909の出現。 桁は、標準の短いスケールの命名規則で記述されます エッジケース コードがループでスタックする場合があります。たとえば、2つのOがある場合、コードはカウントを3つのOに増やします。これにより、コードは再び2つのOをカウントします。これに戻る前に1文字おきに計算しても問題を解決できない場合は、入力が誤ったスターターおよび出力false、nullまたは空の文字列であると考えてください。 文字に999を超える出現がある場合、入力は誤ったスターターと見なされる必要があります。 テストケース 「このパングラムに含まれる」は、例文を出力する必要があります

9
各CSVレコード内のフィールドの数を数える
各csvレコードのフィールド数が異なるテキストファイルを想像してください。タスクは、ファイルの各レコードにあるフィールドの数を出力するコードを記述することです。ファイルにヘッダー行がなく、選択に応じてファイルまたは標準入力から読み込むことができると想定できます。 ファイルの各行の定義について以下で説明するcsvルール用のrfc4180のバージョンを想定できます。以下は、仕様の関連部分を軽く編集したバージョンです。 CSV形式の定義 各レコードは、改行(CRLF)で区切られた個別の行に配置されます。例えば: aaa,bbb,ccc CRLF zzz,yyy,xxx CRLF ファイルの最後のレコードには、終了改行が含まれる場合と含まれない場合があります。例えば: aaa,bbb,ccc CRLF zzz,yyy,xxx (ルール3はこのチャレンジには適用されません) 各レコード内には、コンマで区切られた1つ以上のフィールドがあります。スペースはフィールドの一部と見なされるため、無視しないでください。 各フィールドは、二重引用符で囲まれていてもいなくてもかまいません。フィールドが二重引用符で囲まれていない場合、フィールド内に二重引用符が表示されない場合があります。例えば: "aaa","bbb","ccc" CRLF zzz,yyy,xxx 改行(CRLF)、二重引用符、およびコンマを含むフィールドは、二重引用符で囲む必要があります。例えば: "aaa","b CRLF bb","ccc" CRLF zzz,yyy,xxx 二重引用符を使用してフィールドを囲む場合、フィールド内に表示される二重引用符は、その前に別の二重引用符を付けてエスケープする必要があります。例えば: "aaa","b""bb","ccc" 例 入力: ,"Hello, World!" "aaa","b""bb","ccc" zzz,yyy, "aaa","b bb","ccc","fish","" 出力を与える必要があります: 2, 3, 3, 5 最も便利な方法で出力値を指定できます。 図書館 任意のライブラリを使用できます。 これまでのところ素晴らしい答えですが、特にクールなコマンドライン/ bashの回答がありません。
12 code-golf 

1
Octaveで匿名の再帰関数を定義する最も短い方法は何ですか?
Octaveの関数型プログラミングは大好きですが、実際には扱いにくいです。匿名の再帰関数を定義する最短の方法について疑問に思っています。 私はいくつかのアイデアを持っていますが、これらのアイデアを組み合わせてさらに短くする方法(または同様に短いがより汎用性の高い方法)があるかどうか疑問に思っています。この質問のために、再帰的にゼロまでカウントダウンしましょう(ペイロードをできるだけ単純に保つためです)。 私の推論が正しければ、次の例で使用した変数名は重複しません。目的の関数はでq(n)、常にゼロを返します。iは、カウンタ変数として使用され、のローカルスコープでf呼び出した再帰関数gですf。 44バイト、「のインライン定義f」 q=@(n)(f=@(g,i){@()g(g,i-1),i}{~i+1}())(f,n) 44バイト、「の引数リスト定義f」 q=@(n,f=@(g,i){@()g(g,i-1),i}{~i+1}())f(f,n) 44バイト、「の別個の定義f」 f=@(i,g){@()g(i-1,g),i}{~i+1}();q=@(n)f(n,f) 41バイト、「戻り値として必要な関数」 f=@(g)@(n){@()g(g)(n-1),n}{~n+1}();q=f(f) 現在の「勝者」は、flawrによるこの答えに触発されています。ただし、これを行うためのさまざまな方法が広範に考えられるため、おそらく誰かがさらに短い方法の組み合わせを考えることができます。 もちろん、目標は「フル」機能のために39バイト未満にすることです。オンラインで試してください!
12 code-golf  tips  octave 

11
隣人の合計が最も高い数を見つける
チャレンジ 数値のグリッド(10 <= N <= 99)が与えられた場合、それに隣接する4つの数値の合計が最も大きい数値を返します。それは数字の上、下、右、左の数字ですが、それ自体ではありません。 数自体はカウントされず、その4つの近隣のみがカウントされます。 端の数字は、欠落している数字が0であるかのように扱われるべきです。 関係を避けるためにテストを設計します。 数字は繰り返されません。 これはcode-golfです。 例 与えられた 56 98 32 96 12 64 45 31 94 18 83 71 戻る 18 実際のテスト 与えられた 98 95 67 66 57 16 40 94 84 37 87 14 19 34 83 99 97 78 50 36 18 …

8
チャチャスライドのインデックス作成
前書き: もともとオランダ語の歌が頭にありましたが、歌詞は次のとおりです:「Doe 'n stapje naar voren、en' n stapje terug」(これは「少し前へ、少し後ろへ」と訳されています)完全な歌詞を検索しましたが、歌詞が前後に移動するだけで、決して横にならないことに気付きました。 だから、代わりにこの挑戦のためにMr C The Slide Man別名DJ Casper-Cha-Cha Slideの歌詞を使うようになりました。 他のすべてを無視し、言及された量を含む「左」、「右」、「戻る」、および「ホップ」(「ホップ」を前方としてカウントしました)の単語だけを見ると、完全な歌には次のリストがあります(私はここで略語LRBHを使用しています): LBHRLLBHRLBHHRRLLLRLBHHHHRRLLLBHHHHHRLRLRLHRLLBHHLRLBHH ここでは、スペースを節約するために隠されたJavaScriptコードスニペットで完全な曲の歌詞が表示されます。ここでは、動きと量がブロックされた括弧で囲まれています。 コードスニペットを表示 To the [left], take it [back] now y'all One [hop] this time, [right] foot let's stomp [Left] foot let's stomp, cha cha real smooth Turn it out, to the [left] …

8
数字の出現
入力: 整数のリスト(ゼロを含むことはありません) 出力: 以下に基づくカウントを持つ同じサイズのリスト: 現在のアイテムが負の場合:このアイテムの前にあるすべてのアイテムを調べ、それらの他の数字で数字が発生した回数をカウントします 代わりに現在のアイテムが正の場合:このアイテムの後のすべてのアイテムを見て、それらの他の数字で数字が発生した回数を数えます ねじれが1つあります:リストのサイズが偶数の場合、すべての数字を1回だけカウントします(複数の数字と一致する場合でも)、サイズが奇数の場合、現在のアイテムの各数字の数字のすべての数字をカウントします(複製されます)数字は複数回カウントされます)。 これを少し明確にするためにいくつかの例を挙げましょう。 偶数リストの例: Input: [4, 10, 42, -10, -942, 8374, 728, -200] Output: [3, 2, 4, 1, 2, 1, 1, 5 ] リストのサイズは偶数なので、各番号を1回だけカウントします。 4:ポジティブだから、楽しみにしています。数字を含む3つの数字があります4(42、-942、8374)。ですから、から始め3ます。 10:ポジティブだから、楽しみにしています。数字のいずれか含む二つの数字があり1、および/または0(は-10、-200)。したがって、2番目の出力は2です。 42:再び肯定的です。数字のいずれか含む4つの数字があり4、および/または2(-942、8374、728、-200)。したがって、3番目の出力は4です。 -10:今回はマイナスなので、後方を見る。数字1および/または0(マイナス記号は無視し10ます)を含む数字は1つだけです()。したがって、4番目の出力は1です。 等 奇数リストの例: Input: [382, -82, -8, 381, 228, 28, 100, -28, -2] Output: [13, 2, 2, 4, …

5
ブレゼンハムのラインラスター化によるマトリックスのトレース
これに触発された。 2年生のアガサスティーブンデールは、ラスターグラフィックスに真剣に取り組んでおり、線形代数のコースを取りました。今、彼女はマトリックスを長方形として想像していますが、彼女の芸術的な精神では、彼女はそれらの長方形に対角線を付け、それらに沿ってトレースを計算しようとします。実際、彼女は正方行列だけでなく、すべての行列のトレースを計算したいと考えています。 Agathaはアーティストであるため、お気に入りの画像エディターで線を描く方法を知っています。後者はBresenhamのアルゴリズムを使用して線をプロットします。彼女はウィキペディアもチェックして、擬似コードを見つけました。 function line(x0, y0, x1, y1) real deltax := x1 - x0 real deltay := y1 - y0 real deltaerr := abs(deltay / deltax) // Assume deltax != 0 (line is not vertical), // note that this division needs to be done in a way that preserves the …

15
時間内にビニング
この課題のタスクは、配列の要素を時間ビンに入れることです。入力は、イベントの時間を表す正の整数の非減少配列と、各ビンのサイズを表す整数になります。例から始めましょう。入力配列Aと出力配列を呼び出しますO。 `A = [1,1,1,2,7,10]` and `bin_size = 2`. `O = [4,0,0,1,1]`. なんで?bin_size = 2:、我々は次のような間隔がありませんよ(0,2], (2,4], (4,6], (6,8], (8,10]、4つの項目は、(1,1,1,2)最初の区間内にあるが(0,2]、第二と第三の間隔、1でどれ7間隔で(6,8]、1 10時間間隔でを(8,10]。 コードは、bin_size先頭から始まるすべての間隔を考慮し、それぞれに含まれる0数字の数をカウントするA必要があります。間隔の右端を常にビンに含める必要があるため、上記の例2ではのカウントに含まれます4。コードは、入力と出力の長さの合計で線形時間で実行する必要があります。 その他の例: `A = [1,2,7,12,15]` and `bin_size = 5`. `O = [2, 1, 2]`. `A = [1,2,7,12,15]` and `bin_size = 3`. `O = [2,0,1,1,1]`. 入力および出力は、便利な任意の形式で指定できると想定できます。好きな言語とライブラリを使用できます。

14
配列をビンに入れます
この単純なチャレンジでは、L負でない整数の入力配列と、b0より大きく、の長さ以下のビンの数が与えられますL。コードはM、長さがbで、配列をビニングした新しい配列を返す必要がありLます。これは例で簡単に説明できます。 L = [1,0,5,1]をb = 2返しますM = [1,6]。 L = [0,3,7,2,5,1]をb = 3返しますM = [3,9,6]。 これまでのところ、とても簡単です。ただし、この質問でbは必ずしも分割する必要はありませんlen(L)。この場合、最後のビンはそれを補うための数が少なくなります。 おそらく最後のビンを除く各ビンは、その合計に寄与する数と同じ数でなければなりません。最後のビンには、他のビンよりも多くの数字が含まれてはなりません。最後のビンには、他のルールに従って、できるだけ多くの数字が含まれている必要があります。 L = [0,3,7,2,5,1]をb = 4返しますM = [3,9,6,0]。 M = [10,8,0,0]3番目のビンにはビン1ととして名前の番号が含まれていないため、出力は受け入れられません2。 L = [0,3,7,2,5]をb = 2返しますM = [10,7]。 M = [3, 14]最後のビンには3要素が含まれていますが、最初のビンには2。 L = [1,1,1,1,1,1,1]をb = 3返しますM = [3,3,1]。 最後のルールとして、コードは線形時間で実行する必要があります。 任意の言語またはライブラリを使用でき、便利な方法で入力が提供されると想定できます。 解決できない入力がいくつかあることがわかります。たとえば[1,1,1,1,1]とb=4。あなたのコードは、それらの入力に対して好きなものを出力できます。

2
多項式の分解
厳密に1より大きい次数の積分多項式が与えられた場合、それを厳密に1より大きい次数の積分多項式の合成に完全に分解します。 詳細 整数多項式は係数として整数のみを持つ多項式です。 2つの多項式を考えるpと、組成物は、によって定義されます。q(p∘q)(x):=p(q(x)) 分解の積分多項式のはp不可欠な多項式の有限順序付けられたシーケンスであるすべてのためにと、すべてさらに分解性ではありません。分解は必ずしも一意ではありません。q1,q2,...,qndeg qi > 11 ≤ i ≤ np(x) = q1(q2(...qn(x)...))qi たとえば、係数のリストを使用したり、入力および出力として組み込みの多項式タイプを使用したりできます。 このタスクの多くの組み込み関数は、実際には整数ではなく、特定のフィールド上の多項式を実際に分解しますが、この課題には分解整数多項式が必要です。(一部の整数多項式は、有理多項式を含む分解と同様に整数多項式への分解を許可する場合があります。) 例 x^2 + 1 [x^2 + 1] (all polynomials of degree 2 or less are not decomposable) x^6 - 6x^5 + 15x^4 - 20x^3 + 15x^2 - 6 x - 1 [x^3 - 2, …

19
ダブルのベース
バックグラウンド IEEE 754倍精度浮動小数点形式は、64ビットで実数を表現する方法です。次のようになります。 実数nはdouble、次の方法でa に変換されます。 s数値が正の場合、符号ビットは0、それ以外の場合は1です。 の絶対値はnの形式2**y * 1.xxxで表されます。つまり、baseの2のべき乗倍です。 指数eはy(2 のべき乗)-1023です。 画分がfあるxxx最も重要な52ビットを取る部分(基部の小数部分)。 逆に、ビットパターン(sign s、exponent eおよびfraction fで定義され、それぞれ整数)は数値を表します。 (s ? -1 : 1) * 2 ** (e - 1023) * (1 + f / (2 ** 52)) チャレンジ 実数を指定するnと、のdouble表現の52ビットの小数部をn整数として出力します。 テストケース 0.0 => 0 1.2 => 900719925474099 (hex 3333333333333) 3.1 => 2476979795053773 (hex …
12 code-golf 

30
整数対数
整数が与えられるとN , P > 1、Mそのような最大の整数を見つけるP ^ M ≤ N。 I / O: 入力は2つの整数Nとで与えられますP。出力は整数になりMます。 例: 4, 5 -> 0 33, 5 -> 2 40, 20 -> 1 242, 3 -> 4 243, 3 -> 5 400, 2 -> 8 1000, 10 -> 3 ノート: 入力は常に有効です。つまり、常に1より大きい整数になります。 クレジット: 名前の功績は@cairdcoinheringaahingにあります。最後の3つの例は@Nitrodonによるもので、説明を改善した功績は@Giuseppeにあります。

5
スパース分度器
何らかの正の整数が与えられた場合n、マークの数が最も少ない分度器を設計します。これにより、2π/n(それぞれの測定で)の整数倍であるすべての角度を測定できます。 詳細 出力として、各マークの位置を表す0to n-1(または1to n)の範囲の整数のリストを出力できます。別の方法としては、長さの出力文字列/一覧表示することができますnと#、各マークの位置との_何もありません(アンダースコア)。(または2つの異なる文字をより便利になります。) 例:についてn = 5、あなたはすべての角度を測定することができるように、正確に3マークが必要2π/5, 4π/5, 6π/5, 8π/5, 2πで(例えば)1つのマークを設定することにより、01つのマーク、2π/5および1つのマークがで6π/5。これをリスト[0,1,3]または文字列としてエンコードできます##_#_。 例 出力は必ずしも一意ではないことに注意してください。 n: output: 1 [0] 2 [0,1] 3 [0,1] 4 [0,1,2] 5 [0,1,2] 6 [0,1,3] 7 [0,1,3] 8 [0,1,2,4] 9 [0,1,3,4] 10 [0,1,3,6] 11 [0,1,3,8] 20 [0,1,2,3,6,10] PS:これはスパースルーラーの問題に似ていますが、線形スケール(両端)の代わりに、円形(角度)スケールを考慮します。 PPS:このスクリプトは、それぞれのマークのセットの一例を計算する必要がありますn。オンラインでお試しください! PPPS:@ngnが指摘したように、この問題は次数の循環グループの最小差分ベースを見つけることと同等nです。最小注文はhttp://oeis.org/A283297にリストされており、いくつかの理論的範囲はhttps://arxiv.org/pdf/1702.02631.pdfにあります

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