タグ付けされた質問 「array-manipulation」

配列の使用と操作を通じて特定の問題を解決するための競争。

2
シールドウォール
歴史的背景 遮蔽壁は、日付がバックにいることを戦術的な戦争の形成である少なくとも 2500 BC。それは、「壁」を形成するために、彼らの盾と仲間の盾を重ねる戦士で構成されていました。戦術の魅力は、最も熟練していない戦士でさえ、盾と武器を持っていれば壁で戦うことができるという事実に由来しています。壁が近接しているため、動き回るスペースがほとんどなく、戦闘は通常、鋭い武器で戦う必殺の試合になりました。 チャレンジ あなたのタスクは、入力として戦士の2つの配列/リスト/ベクトルを与えられ、戦いの結果を決定するプログラムまたは関数を作成することです。リストはシールドの単一行の壁を表し、特定の表記法に従います。 バイキング: 北欧の戦士たちは激しい戦いを繰り広げました。8世紀後半から11世紀半ばにかけて、デンマークのバイキングが英国王国に侵入し、富と農地を探しました。この挑戦のために、これらはバイキングの戦士です: Jarl:通常、壁の中央から部下を率いているのが見つかりました。ジャールはバイキングの大群のリーダーでした。死ぬために15ダメージを受け、ラウンドごとに2ダメージを与えます。 The Berserker:ファンタジーはバーサーカーのイメージを大きく変えましたが、これらの戦士は盾以外の保護なしでトランスのような怒りで戦うことが知られていました。死ぬために6ダメージを受け、ラウンドごとに3ダメージを与えます。 Chieftain:ザ・チーフタンズが彼らのサービスで無料の男性が持っていた金持ちの男性でした。彼らは通常、戦いで大きな栄光と富を獲得していたでしょう。死ぬまでに10ダメージを受け、ラウンドごとに2ダメージを与えます。 フリーMen:族長に仕えた戦士。彼らは死ぬまで領主のために戦うと誓った。死ぬために8ダメージを受け、ラウンドごとに1ダメージを与えます。 Skald:Skalds、通常バードとして翻訳は、北欧の戦士たちの偉業についての詩、物語や歌を書くために雇われた自由人の男性でした。死亡するのに8ダメージを受け、隣接する各戦士に1ボーナスダメージを与えます。スカルドはダメージを与えません。戦士はこの方法で1つ以上のボーナスダメージを得ることができません。 サクソン: 5世紀にローマ帝国が崩壊した後、サクソン人はヨーロッパ大陸からイギリスに定住するようになりました。この挑戦のために、サクソン人の戦士がいます: EARL:Ealdormen、一般アールズと呼ばれるが、高い貴族のメンバーでした。彼らは通常、大規模な土地を持ち、何百人または何千人もの宣誓者がいました。死ぬまでに20ダメージを受け、1ラウンドにつき1ダメージを与えます。 K夜:より良い用語の欠如のために、騎士は、いくつかの土地を所有していたマイナーな貴族でした。ほとんどの場合、騎士は伯爵の宣誓奉公人でした。死ぬまでに10ダメージを受け、ラウンドごとに2ダメージを与えます。 Warrior:一般的な男性、通常はマイナーな貴族の土地や騎士を務めた農民なし。騎士または伯爵に隣接している場合、戦士には+1のダメージボーナスがあります。死ぬまでに8ダメージを受け、ラウンドごとに2ダメージを与えます。 FYRD:Fyrdは、彼らが壁に戦うために持っていた武器(あるいは武器のような実装農業を)持って来るだろうと自由人のグループのような民兵-、通常は貧しい農民でした。死ぬために5ダメージを受け、ラウンドごとに1ダメージを与えます。 P司祭:司祭は神の言葉の先駆者であり、初期のサクソン文化で高く評価されていました。司祭は死ぬために15ダメージを受け、隣接する各戦士に与えられる最大1ダメージを防ぎます。司祭はダメージを与えません。司祭は戦士への1つ以上のダメージを防ぐことはできません。 壁 壁はそれぞれのセンターで出会う。各ラウンドでは、各戦士はその前にいる戦士にダメージを割り当てます。前に生きている戦士がいない場合、残りのヘルスが最も少ない斜めに隣接する生きている戦士に割り当てます。同点の場合は、壁の端に近い戦士を選択します。 例: Vikings [M,M,M,B,B,C,J,C,B,B,M,M,M] [F,F,F,W,W,K,E,K,W,W,F,F,F] Saxons To make matters easier, let's convert these walls into numbers: Round 0: M M M B B C J C B B …

30
私はゴルフ場ですか?
定義と規則 golfyアレイは、各要素が整数の配列であり、より高いまたは等しいすべての前の要素の算術平均。あなたの仕事は、入力として与えられた正の整数の配列がゴルフかどうかを判断することです。 空のリストを処理する必要はありません。 デフォルトの抜け穴が適用されます。 標準入出力メソッドが適用されます。 任意の2つの異なる空でない値を選択できます。それらは一貫している必要があり、他のすべての決定問題ルールを遵守しなければなりません。これはcode-golfで、各言語の最短コードが勝ちます! テストケースと例 たとえば、次の配列: [1, 4, 3, 8, 6] 各項がその前の項の算術平均よりも高いため、ゴルフ配列です。段階的に解決しましょう: 数->前の要素->平均->ルールに従いますか? 1-> []-> 0.0-> 1≥0.0(True) 4-> [1]-> 1.0-> 4≥1.0(True) 3-> [1、4]-> 2.5-> 3≥2.5(True) 8-> [1、4、3]-> 2.(6)-> 8≥2.(6)(True) 6-> [1、4、3、8]-> 4.0-> 6≥4.0(True) すべての要素が条件を尊重するため、これはゴルフの配列です。このチャレンジのために、空のリスト([])の平均はであると仮定することに注意してください0。 その他のテストケース: 入力->出力 [3]-> True [2、12]-> True [1、4、3、8、6]-> True [1、2、3、4、5]-> True [6、6、6、6、6]-> True [3、2]-> False …

18
逆算サイクル
これに触発されて リンクされたチャレンジでは、元の要素と入力配列の逆の要素に加算を適用するように求められます。この課題では、他の基本的な数学演算を導入することで、少し難しくします。 整数の配列が与えられた場合、を通過します+, *, -, //, %, ^。ここで、//は整数除算で、^指数です。配列の逆に適用します。または、言い換えると、上記の関数のいずれかを配列の各要素に適用します。2番目の引数は配列の逆で、適用される関数は上記のリストを循環します。これはまだわかりにくいかもしれませんので、例を見てみましょう。 Input: [1, 2, 3, 4, 5, 6, 7, 8, 9] Reverse: [9, 8, 7, 6, 5, 4, 3, 2, 1] [ 1, 2, 3, 4, 5, 6, 7, 8, 9] Operand: + * - / % ^ + * - [ 9, …

28
範囲内のマトリックス
チャレンジ 以下のテストケースに示されているように、整数n>0出力n+1 X n+1から1までのすべての整数を含む行列2n テストケース n=1 1 2 2 2 n=2 1 2 4 2 3 4 4 4 4 n=5 1 2 3 4 5 10 2 3 4 5 6 10 3 4 5 6 7 10 4 5 6 7 8 10 5 6 7 8 9 …

11
スパース行列を圧縮する
圧縮されたスパース行(CSR、CRSまたはYale形式)を使用してスパース行列を圧縮します。 これらはすべて同じ圧縮形式です(新しいエールを無視します)。 入力は、任意の2Dデータ構造(リストのリストなど)である場合があります:例 [[0 0 0 0], [5 8 0 0], [0 0 3 0], [0 6 0 0]] 出力は出力を示し、3つの1Dデータ構造(リストなど)でなければならないA、IAそしてJA例えば、 [5, 8, 3, 6] [0, 0, 2, 3, 4] [0, 1, 2, 1,] プロセスはウィキペディアで説明されています: 配列Aの長さはNNZであり、Mのすべての非ゼロエントリを左から右、上から下(「行優先」)の順序で保持します。 配列IAの長さはm + 1です。これは、次の再帰的な定義によって定義されます。 IA [0] = 0 IA [i] = IA [i − 1] +(元の行列の(i …

30
リストの平均を比較する
リストの平均値を取得する(例[2,6,7]) リストの長さを取得します。 [2,6,7] -> 3 リスト内の数字を合計します2 + 6 + 7 = 15。 合計をカウントで割ります:15 / 3 = 5。 あなたは、の二つのリストの平均値を比較すべきである正の整数NとMを場合は、値を返すことによって、Nがあればより高い平均、別の値を持つMが同数の場合にはより高い平均、および別のものを持っています。 I / Oルール すべての標準入出力メソッドが許可されています。 入力 入力は、2つの個別のリスト、ネストされたリスト、またはタスクに適していると考えられるその他のものとして受け取ることができます。形式を指定してください。 出力 指定する値は明確である必要があり、少なくとも1つの非空白文字で構成する必要があります。また、実行間で一貫している必要があります(Nの単一値、Mの単一値、Tieの単一値)。回答でそれらを指定してください。値には、空でない文字列、ブール値、整数、または適切と思われるものを指定できます。 スペック リストは必ずしも同じ長さではありません。 リストが空でないことが保証されます。 テストケース 値N wins、M winsおよびを選択しましたTieが、これらはほとんど自明です。 N、M->出力(平均) [7]、[6]-> N勝(Nは7、Mは6) [4,5]、[4,4]-> N勝(Nは4.5、Mは4) [2,3,4]、[4,5,6]-> M勝(Nは3、Mは5) [4,1,3]、[7,3,2,1,1,2]->ネクタイ(両方とも2.666 ...) [100,390,1]、[89,82,89]-> N勝(Nは163.666 ...、Mは86.666 ...) [92,892]、[892,92]->ネクタイ(リストは基本的に同じです) [10,182]、[12,78,203,91]->ネクタイ(両方とも96) デフォルトの抜け穴が適用されます。説明が奨励されています!これはcode-golfなので、バイト単位の最短コードが勝ちです!

28
逆モジュラスを計算する
タスク: の値を出力します。xここでa mod x = b、2つの値がありますa,b。 仮定 aそして、b常に正の整数になります 常に解決策があるとは限りません x 複数のソリューションが存在する場合は、少なくとも1つを出力します。 解決策がない場合は、何も出力しないか、解決策が存在しないという兆候を出力します。 組み込みが許可されています(他の数学的アプローチほど面白くありません) 出力は常に整数です 例 A, B >> POSSIBLE OUTPUTS 5, 2 >> 3 9, 4 >> 5 8, 2 >> 3, 6 6, 6 >> 7, (ANY NUMBER > 6) 8, 7 >> NO SOLUTION 2, 4 >> NO …
18 code-golf  math  number-theory  code-golf  number  integer  code-golf  string  code-golf  music  code-golf  arithmetic  array-manipulation  decision-problem  code-golf  math  rational-numbers  code-golf  code-golf  graphical-output  hardware  code-golf  math  number  code-golf  string  parsing  natural-language  code-golf  tips  brain-flak  code-golf  graph-theory  code-golf  number  polynomials  king-of-the-hill  code-golf  ascii-art  kolmogorov-complexity  animation  king-of-the-hill  code-golf  tips  code-golf  ascii-art  code-golf  string  array-manipulation  data-structures  code-golf  math  number  code-golf  string  base-conversion  binary  code-golf  decision-problem  graph-theory  code-golf  math  polynomials  code-golf  kolmogorov-complexity  physics  code-golf  sequence  number-theory  code-golf  math  integer-partitions  code-golf  array-manipulation  random  permutations  code-golf  string  decision-problem 

21
最長の等しいサブシーケンス
定義 サブシーケンスは連続していない場合があります。たとえば[1, 1, 1]、のサブシーケンスです[1, 2, 1, 2, 1]。 等しいサブシーケンスは、すべての要素が等しいサブシーケンスです。 最長の等しいサブシーケンスは一意ではない場合があります。たとえば [1, 1]と[2, 2]の両方の最長等しいサブシーケンスです[2, 1, 1, 2]。 入力 以下の形式のいずれかの正の整数の空でないリスト: あなたの言語の正の整数の配列のネイティブ実装として 改行で区切られた10進数の整数の文字列として 改行で区切られた単項の整数の文字列として その他の合理的な形式 出力 以下の形式のいずれかで、任意の順序で最長の等しいサブシーケンスのすべて: 言語の2Dネストされた配列として(入力が配列の場合) 等しい要素が連続している平坦化された配列として その他の合理的な形式 得点 私たちは長い間何かを探していますが、これはあることから、使用されるコードは、バイト数の点ではできるだけ短くする必要がありますコードゴルフ テストケース 入力: [1, 2, 3] [1, 2, 2, 1] [1, 2, 3, 2, 1] [1, 2, 1, 2, 3, 4, 1] …

9
ラミーシーケンスを生成する
あなたの仕事は、私が作成したシーケンスであるラミーシーケンスの入力nおよび出力要素を取得することですn(OEISを調べても役に立ちません)。 定義 ラミーシーケンスの各要素は、真偽値のセットです。例:[true, false]。 ラミーシーケンスのメンバーを作成する手順は非常に簡単です。 最初のインデックスから始めます[](これは要素0です)。 左端の偽物を真実に設定します。変更するfalseysがない場合は、リストの長さを1増やして、新しいリストのすべてのメンバーをfalseyに設定します。 elementに達するまで手順2を繰り返しますn。 例 関数を次のように定義してみましょうrummy(int n)({}答えは答えを得るための手順です): >>> rummy(5) {[]} {[false]} {[true]} {[false, false]} {[true, false]} [true, true] ルール 標準の抜け穴が適用されます。 ご使用の言語の数値の上限を超える入力0で機能する必要があります。 出力が真実/偽のセットであることは明らかである限り、適切と思われる方法で出力できます。 トリビア これを「ラミーシーケンス」と呼びます。これは、インデックス2から、プログレッシブラミーの各ラウンドで設定する必要があるセットを定義するためです。 テストケース >>> rummy(0) [] >>> rummy(1) [false] >>> rummy(6) [false, false, false] >>> rummy(20) [true, true, true, true, true] >>> rummy(1000) [true, …

15
g l f a t a n 2
時には、デカルト座標(x,y)を極座標に変換するのは本当に大変です(r,phi)。r = sqrt(x^2+y^2)非常に簡単に計算できますが、角度を計算する際にケースの区別が必要になることがよくあります。phiこれarcsinはarccos、arctanおよび他のすべての三角関数が、それぞれが円の半分のみに広がる共領域を持つためです。 多くの言語には、直交座標を極座標に変換するための組み込みatan2機能があります。または、少なくとも(x,y)角度を計算する関数がありますphi。 仕事 あなたのタスクは、2つ(浮動小数点、両方ではないゼロ)デカルト座標を取るプログラム/関数を記述することで(x,y)、対応する極角出力するphi、phiと(度、ラジアン、またはグレードでなければならないグレード Iは、平均グラジアン 1であります/ 400の完全な円)、あなたにとってより便利な方。 角度は正の方向で測定され、の角度はゼロです(1,0)。 詳細 あなたは、角度計算ビルトインを使用することはできませんphiを含む2点の座標、与えられたatan2、rect2polar、argOfComplexNumberおよび同様の機能を。ただし、通常の三角関数とその逆関数を使用できます。これらの関数は1つの引数のみを取ります。単位記号はオプションです。 半径はr非負でなければならない、とphiの範囲でなければなりません[-360°, 360°](それはあなたの出力かどうかは関係ありません270°か-90°)。 例 Input Output (1,1) 45° (0,3) 90° (-1,1) 135° (-5,0) 180° (-2,-2) 225° (0,-1.5) 270° (4,-5) 308.66°
18 code-golf  math  geometry  trigonometry  code-golf  number-theory  fibonacci  code-golf  math  sequence  fibonacci  code-golf  string  code-golf  math  graphical-output  geometry  code-golf  string  code-golf  math  geometry  code-golf  math  bitwise  number  popularity-contest  graphical-output  image-processing  fractal  code-golf  number-theory  code-golf  date  multi-threading  code-golf  math  code-golf  math  number  sequence  code-golf  math  number  sequence  arithmetic  code-golf  decision-problem  logic-gates  code-golf  decision-problem  balanced-string  code-golf  math  arithmetic  combinatorics  code-golf  expression-building  code-golf  physics  code-golf  abstract-algebra  code-golf  number  arithmetic  integer  code-golf  ascii-art  number  code-golf  number-theory  primes  code-golf  arithmetic  grid  code-golf  code-golf  sequence  code-golf  kolmogorov-complexity  compression  code-golf  math  number  arithmetic  array-manipulation  code-golf  primes  hexagonal-grid  complex-numbers  code-golf  number  counting  code-golf  math  number  arithmetic 

27
カウントアップ、交換、繰り返し!
定義 CURRシーケンスのn 番目の配列を次のように定義します。 シングルトン配列A = [n]から始めます。 各整数のためにKにA、エントリ交換Kを用いてKからカウントアップ、自然数1にK。 前のステップn-1をさらに繰り返します。 たとえば、n = 3の場合、配列[3]から始めます。 3を1、2、3に置き換えて、[1、2、3]を生成します。 私たちは今取り替える1、2、および3と1。1、2および1、2、3(それぞれ)、[ 1、1、2、1、2、3 、]を生成します。 最後に、配列内の6つの整数すべてに対して前のステップと同じ置換を実行し、[ 1、1、1、2、1、1、2、1、2、3 ]を生成します。これは3番目のCURR配列です。 仕事 入力として厳密に正の整数nが与えられると、n 番目の CURR配列を計算する関数のプログラムを作成します。 出力は、ある種のフラットリストである必要があります(関数から返された配列、言語の配列構文の文字列表現、空白区切りなど)。 これはcode-golfです。バイト単位の最短コードが勝つように! テストケース 1 -> [1] 2 -> [1, 1, 2] 3 -> [1, 1, 1, 2, 1, 1, 2, 1, 2, 3] 4 -> [1, 1, 1, …

3
ジグザグ化された行列を再構築する
JPEG標準は、圧縮アルゴリズムの一部として、交互の方向の対角線に沿って行列を展開してベクトルにします。 あなたの仕事は、展開されたベクトルを行列の次元とともに取得し、対応する行列を再構築することです。例として: [1, 2, 5, 9, 6, 3, 4, 7, 1, 2, 8, 3], 4, 3 もたらすべきです [1 2 3 4 5 6 7 8 9 1 2 3] 一方、寸法6, 2は [1 2 6 3 1 2 5 9 4 7 8 3] ルール 入力としてディメンションの1つのみを選択することもできます。個々の入力は任意の順序で取得できます。幅と高さが正であり、指定されたベクトルの長さに対して有効であると仮定できます。 ベクトル要素はより小さい正の整数であると仮定でき10ます。 プログラムまたは関数を作成し、STDIN(または最も近い代替)、コマンドライン引数または関数引数を介して入力を取得し、STDOUT(または最も近い代替)、関数の戻り値または関数(out)パラメーターを介して結果を出力できます。 入力ベクトルは、便利で明確なフラットリストまたは文字列形式で指定できます。 出力マトリックスは、便利で曖昧さのないネストされたリストまたは文字列形式、または両方のマトリックス次元と一緒にフラットリストにすることができます。(または、もちろん、あなたの言語がそれらを持っているなら、マトリックス型として。) 標準のコードゴルフ規則が適用されます。 …

4
圧縮された曜日
曜日のリストの入力が与えられると、リストの最短のソートされた表現を出力します。 入力の形式は、2文字のストリングの一つ以上からなる文字列であるSu(日)、 Mo(月)、 Tu(など)、 、We、Th、 FrおよびSa。入力は必ずしもソートされた順序で与えられるとは限りません。 入力を出力形式に変換するには、 入力を日曜日から始まる曜日で並べ替えます(例ThMoSaSuFrTuWe-> SuMoTuWeThFrSa)。 あいまいさを残さない場合は、略語を1文字に減らします。たとえば、最初のSが土曜日になることができなかったため、にSuMoTuWeなるはずSMTWです。これにより、出力がソートされなくなります(Tと同じ)。しかし、ThFrSaなるはずThFS火曜日と木曜日の両方が金曜日前にそれを減らしてくると、TFSあいまいさを作成します。 出力がnowの場合、代わりMTWTFに出力D(「week day s」を表します)。同様に、SSなるはずE週間のために終了。最後に、 SMTWTFSなるべきAために、すべての日。 入力と出力は両方とも単一の文字列でなければなりません。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 テストケース: In Out | In Out -----------------------|-------------------- SuTu STu | SuTuWe STW SuTuSa STuS | SuWeTh SWT TuThSa TTS | TuThSu STT Su Su | Sa Sa WeTh WT | FrTh ThF WeTu TW …

21
Javascript:1の10x10配列を作成する
明らかに、この課題は関数とライブラリを分離することで簡単になるため、許可されません。 コードはECMAscript仕様に準拠する必要があります(どの仕様でも同じです)ので、ブラウザー固有の回答はありません。 配列は、インスタンス化後にアクセスできる必要があります。 私は今のところ差し控える答えがあります。 注: javascriptで多次元配列を作成するのは不便であるため、この課題はjavascriptに固有のものです。

7
和のセットに適合する配列を見つける
A長さの配列を考えnます。配列には正の整数のみが含まれます。たとえばA = (1,1,2,2)。f(A)のすべての空でない隣接部分配列の合計のセットとして定義しましょうA。この場合f(A) = {1,2,3,4,5,6}。作成する手順f(A) は次のとおりです。 の部分配列はAです(1), (1), (2), (2), (1,1), (1,2), (2,2), (1,1,2), (1,2,2), (1,1,2,2)。それぞれの合計は1,1,2,2,2,3,4,4,5,6です。したがって、このリストから取得するセットはです{1,2,3,4,5,6}。 仕事 S正の整数と配列の長さのみを含むソートされた順序で指定された合計のセットが与えられたn場合、あなたのタスクは、少なくとも1つの配列を出力するXことf(X) = Sです。 例えば、場合S = {1,2,3,5,6}やn = 3、有効な出力がありますX = (1,2,3)。 そのような配列がない場合X、コードは定数値を出力する必要があります。 例 入力:n=4, S = (1, 3, 4, 5, 6, 8, 9, 10, 13)、可能な出力:X = (3, 5, 1, 4) 入力:n=6, S = (2, …

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