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

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

30
配列に2以外のものが含まれているかどうかを判別
数値または配列で構成される配列を取得し、2s のみが含まれる場合に出力します。 出力は真実または偽の値である必要があります(これにより回答が破壊される場合はご容赦ください) 真実のテストケース [2] [2,2] [[2],[2,2],2] [] [[],[]] Falseyテストケース [1] [22] [2,2,2,1] [[1,2],2] 標準の抜け穴は禁止されています。 デフォルトのIOルールが適用されます。 コードゴルフ、最少バイトが勝ちます!

6
Quandle QuandaryエピソードI:有限カンドルの識別
与えられた行列がカンドルを表すかどうかを判断するプログラムを作成します。quandleは以下の公理に従う単一(非可換、非会合)操作◃を備えたセットです。 操作は閉じられます。つまり、a◃b = cは、セットの要素である場合a、常にセットのb要素です。 操作は、自己分散型です(a◃b)◃c = (a◃c)◃(b◃c)。 操作は右割り可能です:aおよびの任意のペアに対して、次のようなb単一の一意性cがあります。c◃a = b 操作はべき等です: a◃a = a 有限のカンドルは正方行列として表すことができます。以下は、5次カンドル(source)の例です。 0 0 1 1 1 1 1 0 0 0 3 4 2 4 3 4 2 4 3 2 2 3 3 2 4 n番目の行とm番目の列(0から始まる)にある値は、n◃mの値です。たとえば、このカンドルでは、4◃1 = 3。この行列から、カンドルプロパティの一部を簡単に確認できます。 この5x5マトリックスには値0〜4のみが表示されるため、閉じられます。 行列の対角が0 1 2 3 4であるため、べき等です。 列に重複値が含まれていないため、右分割可能です。(行は可能であり、通常はそうなります。) …

20
リストの「再帰サイズ」を見つける
リストの「ラップされていないサイズ」を見つけます。 RS長さ(含まれるアイテムの数)としてリストを含まないリストの再帰サイズ、および長さとそれらのリストの再帰サイズの合計としてリストを含むリストの再帰サイズを定義します。 チャレンジ 特定のリストの再帰サイズを可能な限り少ないバイト数で出力するプログラムまたは関数を作成します。 入力はリストであり、数字、文字列(言語に含まれている場合)、および同様のリストを含めることができます。 例えば: RS([]) = 0 RS([[]]) = 1 RS([4, 5, 6]) = 3 RS(["four", "five", "six"]) = 3 RS(["[[[[]]]]", "[][][][][]", "][][[[]]][]["]) = 3 RS([[4, 5, 6]]) = 4 RS([["four", "five", "six"]]) = 4 RS([["[[[[]]]]", "[][][][][]", "][][[[]]][]["]]) = 4 RS([[4], [5], [6]]) = 6 RS([["four"], ["five"], ["six"]]) …

29
最大偏差を見つける
この問題は、Quoraで最初に尋ねられた質問から「インスパイアされた」ものです(コードゴルフではありません)。私はそれを皆さんに挑戦したいだけです(そして、ここでの私の最初の問題提出)。 整数要素の配列vと整数d(dは配列の長さ以下であると仮定します)が与えられた場合、配列内のd連続した要素のすべてのシーケンスを考慮します。各シーケンスについて、そのシーケンス内の要素の最大値と最小値の差を計算し、偏差と名付けます。 あなたの仕事は、上記で考慮したすべてのシーケンスのすべての偏差の中で最大値を計算し、その値を返すか出力するプログラムまたは関数を作成することです。 実施例: v: (6,9,4,7,4,1) d: 3 The sequences of length 3 are: 6,9,4 with deviation 5 9,4,7 with deviation 5 4,7,4 with deviation 3 7,4,1 with deviation 6 Thus the maximal deviation is 6, so the output is 6. これはコードゴルフであるため、バイト単位の最短回答が優先されます。

18
複数キーの並べ替え
インデックスのリストと0個以上の整数のリストが与えられた場合、最初の入力からのキー優先度で昇順でソートされた整数のリストを出力します。 例 キー入力をとし[1, 0, 2]、リスト入力をとします[[5, 3, 4], [6, 2, 1], [5, 2, 1]]。これらのリストは、2番目の要素、1番目の要素、3番目の要素の順に昇順で並べ替える必要があります。 最初に、indexの値でソートします1。[[6, 2, 1], [5, 2, 1], [5, 3, 4]] 次に、indexの値を使用して、最初の並べ替えの関係を解除します0。[[5, 2, 1], [6, 2, 1], [5, 3, 4]] 最後に、indexのvluesとの残りの関係を解除します2(これは実際には何も変更しません。関係が残っていないためです)。 詳細 ソートは安定しています。2つの要素が指定されたソートキーに関して同等に比較される場合、それらは出力内で同じ相対的な順序のままである必要があります。たとえば、指定されたソートキーの下でAとBが等しく、入力がであった[..., A, ..., B, ...]場合、出力のA前Bに配置する必要があります。 ソートキーは、入力リストのいずれかに存在しない要素を参照することはありません。 ソートキーは繰り返されません。したがって、[1, 2, 1]ソートキーの有効なリストではありません。 ソートキーによって参照されない要素は、ソート順を考慮しません。出力の順序は、初期相対順序とソートキーによって参照される要素の値のみが決定します。 ソートキーをゼロインデックスにするか1インデックスにするかを選択できます。 ソートキーには負の値はありません。1インデックスを使用することを選択した場合、ソートキーにもゼロはありません。 整数値は、言語のネイティブ表現可能な範囲を超えません。選択した言語がネイティブに任意の精度の整数(Pythonなど)に対応している場合、メモリの制約を条件として、任意の整数値を入力に含めることができます。 リファレンス実装(Python 2) #!/usr/bin/env python …

19
全単射ベースでのカウント62
タスクは、次のような大文字を含む「a」から「999」までのすべての文字列を生成することです。 'a', 'b', 'c' ... 'y', 'z', 'A', 'B', 'C' ... 'Y', 'Z', '0', '1', 2' ... '8', '9', 'aa', 'ab', 'ac' ... 'az', 'aA', 'aB' ... 'aZ', 'a0' ... 'a9', 'ba' など(ギャップを埋める)、オプ​​ションで空の文字列で始まります。 入力: プログラムが印刷しなければならない連続文字の量。 出力: 各文字列または行ごとに1つの文字列を含む配列 明確化: 順序は関係ありません。必要に応じて、最初に大文字または小文字を印刷できます。 出力はあらゆる種類の列挙型を返すことができ、特に配列である必要はありませんが、すべての組み合わせを印刷するのが最も簡単な方法ではないことを疑います。 入力3からすべての文字列を印刷することになる'a'(または'')へ'999'の入力、5最大'99999'のように。

15
マトリックスのダイヤモンド化
マトリックスが与えられたら、左上の要素が上にあり、反対角線が中央の行で、右下の要素が下にあるマトリックスの表現を出力します。 たとえば、次のマトリックスを考えます。 1 2 3 4 5 6 7 8 9 このマトリックスのひし形バージョンは次のとおりです。 1 4 2 7 5 3 8 6 9 入力と出力 入力マトリックスは、リストのリスト(または選択した言語で類似したもの)として提供されます。出力はリストのリストでもあります。 行列には正の整数のみが含まれます。 入力行列は必ずしも正方形ではありません。 入力行列は少なくとも1×1です。 テストケース Input: [[1]] Output: [[1]] Input: [[1,2],[3,4]] Output: [[1],[3,2],[4]] Input: [[1,2,3],[4,5,6]] Output: [[1],[4,2],[5,3],[6]] Input: [[11,2,5],[3,99,3],[4,8,15],[16,23,42]] Output: [[11],[3,2],[4,99,5],[16,8,3],[23,15],[42]] 得点 これはcode-golfであるため、バイト単位の最短回答が優先されます。

4
「仕上げ作業」をできるだけ早く
バックグラウンド ちょっとした退屈な仕事があると想像してください。毎朝、その日に作業すべきタスクのコレクションが提供されます。各タスクには一定の期間があり、一度開始すると、一度に完了する必要があります。上司はアイドリングを許容しないので、家に帰る前にまだ完了できるタスクがある場合は、そのうちの1つで作業する必要があります(どちらを選択するかは選択できます)。逆に、残りのすべてのタスクで残業が必要な場合は、早めに帰宅してください!したがって、あなたの目標は、賢明なスケジューリングにより、勤務時間を最小限に抑えることです。 楽しい事実:これは、怠zyな官僚のスケジューリング問題の 1つのバリアントであり、NPハード(ソース)です。 入力 2つの入力があります:就業日の「時間単位」の数(正の整数L)、およびタスクのコレクション(Tタスクの継続時間を表す、空でない正の整数の配列)。それらは、任意の順序で、合理的な形式で服用できます。配列にTは、期間がを超えるタスクが含まれることがありますが、期間が最大Lで少なくとも1つのタスクが含まれることが保証されますL。 出力 有効なスケジュールは、タスクのサブセットであるS ⊆ Tようにsum(S) ≤ Lしていない、そしてすべてのタスクS(カウント多重度)、厳密以上の持続時間を有しますL - sum(S)。あなたの出力は、有効なスケジュールの可能な限り最小の合計となります。言い換えれば、今日作業しなければならない時間単位の最小数を出力しなければなりません。 例 入力を検討する L = 9 T = [3,4,4,4,2,5] 1日をスケジュールする1つの方法は、[4,4]2つのタスクを8つの時間単位で完了し、1つの単位を残すことです。1ユニットのタスクは利用できないため、家に帰ることができます。ただし、スケジュール[2,5]はさらに優れています。7時間単位で作業すると、残りのタスクはすべて3時間単位以上かかります。[2,4]6時間単位で作業した後でも、3単位タスクを完了するのに十分な時間があるため、スケジュールは無効です。7ユニットが最適であることが判明したため、正しい出力は7です。 ルールとスコアリング 完全なプログラムまたは関数のいずれかを作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。時間制限はないため、ブルートフォースは完全に受け入れられます。 テストケース これらは形式で与えられますL T -> output。 1 [1,2] -> 1 6 [4,1] -> 5 7 [7,7,9] -> 7 9 [3,4,4,4,2,5] -> 7 20 [6,2,3,12,7,31] -> 17 …

4
アレイ内の磁気プル
バックグラウンド 私は強力な磁石の列とそれらの間にたくさんの金属オブジェクトを持っています。磁石はどこに引っ張りますか? 入力 入力は負でない整数の配列で、少なくとも1つ含まれてい1ます。任意の合理的な形式を使用できます。 0配列のsは空のスペースを1表し、sは固定磁石を表します。他のすべての数字は、磁石によって引っ張られる金属のオブジェクトです。すべてのオブジェクトは、最も近い磁石に向かって引っ張られ(タイがある場合、オブジェクトは右に引っ張られます)、磁石または別のオブジェクトに当たるまでその方向に移動します。最終的に、すべてのオブジェクトが磁石の周りに集まっています。オブジェクトの順序は保持されます。 出力 出力は、すべてのオブジェクトが可能な限り最も近い磁石に引き寄せられた配列です。入力と同じ形式にする必要があります。 例 配列を考える [0,0,2,0,1,1,0,2,0,3,0,5,0,1,0] 左端2は、2番目の磁石と同様に、最初の磁石のペアに向かって引っ張られ2ます。34つのステップ離れて両方の方向に磁石を持っているので、それが右に引っ張られます。また5、右に引っ張られ3、磁石と磁石の間に入ります。正しい出力は [0,0,0,2,1,1,2,0,0,0,0,3,5,1,0] ルールとスコアリング 完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。 テストケース [0,1,0] -> [0,1,0] [1,0,2,0,0,1,0] -> [1,2,0,0,0,1,0] [7,0,5,0,0,1,0] -> [0,0,0,7,5,1,0] [1,0,3,0,1,0,3,0,1] -> [1,0,0,3,1,0,0,3,1] [1,0,0,0,0,0,0,7,3] -> [1,7,3,0,0,0,0,0,0] [1,2,3,4,5,6,7,8,9,10,11,0,0,0,1] -> [1,2,3,4,5,6,7,0,0,0,8,9,10,11,1] [12,3,0,0,1,0,1,3,0,0,6,12,0,0,0,1] -> [0,0,12,3,1,0,1,3,6,0,0,0,0,0,12,1]

18
座標とその質量のリストからの重心
これは月曜日の朝の簡単なチャレンジです... 以下の最小バイト数で関数またはプログラムを作成します。 入力として[x,y]座標のリストを取ります 入力として[x,y]座標のそれぞれの質量のリストを取ります 計算された重心をの形式で出力します[xBar,yBar]。 注意: 配列が使用されている限り、入力は任意の形式で取得できます。 重心は、次の式で計算できます。 平易な英語で... を見つけるにはxBar、各質量にそれぞれのx座標を乗算し、結果のリストを合計し、すべての質量の合計で除算します。 を見つけるにはyBar、各質量にそれぞれのy座標を乗算し、結果のリストを合計して、すべての質量の合計で除算します。 簡単なPython 2.7の例: def center(coord, mass): sumMass = float(reduce(lambda a, b: a+b, mass)) momentX = reduce(lambda m, x: m+x, (a*b for a, b in zip(mass, zip(*coord)[0]))) momentY = reduce(lambda m, y: m+y, (a*b for a, b in zip(mass, zip(*coord)[1]))) xBar …

2
90°自動回転プログラム
前書き ASCII文字の長方形ブロックを時計回りに90度回転する完全なプログラムを作成します。プログラム自体が時計回りに90度回転すると、ASCII文字のブロックが反時計回りに90度回転します。 ルール 多くの場合、行列を回転または転置する組み込み関数を使用しません。たとえば、MATLAB / Octave rot90および転置演算子'では許可されていません。 STDINとSTDOUTまたはそれに最も近いものを使用する完全なプログラムを作成する必要があります。 プログラムは長方形でなければならず、入力も長方形であると仮定する必要があります。 入力と出力は改行で区切られた文字列であり、末尾の改行はありません。 ソースコードを入力として実行する場合、プログラムは時計回りに90度回転する必要があります。出力は、入力を反時計回りに90度回転させる同じ言語の2番目のプログラムでなければなりません。回転したプログラムに入力としてソースコードが与えられると、元のプログラムのソースコードが出力されます。 注:両方のプログラムは、独自のソースコードだけでなく、あらゆる入力に対して機能する必要があるため、1文字のクインは許可されません。 例 次の例は、仮想言語ExampleLangで入力を90度回転させる有効なプログラムです。 ^f a2% 3 lk (^_^& v D8 $4 / 自分自身を入力として実行すると、入力を反時計回りに回転させる別の有効なプログラムを出力します。 D l^ 8 kf $ (a 4 ^2 _% ^ /v&3 この2番目のプログラムは、入力として自分自身に与えられると、元のプログラムを出力します。空白行には4つのスペースが必要であり、2行目から最後の行にマークダウンでレンダリングできない後続スペースがあることに注意してください。明確にするために: $ examplelang program < program > rotProg $ examplelang rotProg < rotProg > program1 …

9
各次元の合計
整数の多次元配列が与えられます。各次元のサイズは固定です(2Dの場合は常に長方形になります)。プログラムは、各ディメンションの合計を計算し、そのディメンションの新しい最後のアイテムとして合計を追加する必要があります。 入力配列と出力配列がAとBであり、A の次元iのサイズがn iであると仮定します。BはAと同じ次元数を持ち、次元iのサイズはn i +1になります。B j 1、j 2、...、j mは、A k 1、k 2、...、k mの合計です。ここで、 kはiは J = iが jの場合、I <= N Iを 0 <k i <= n i j i = n i +1の場合 入力用: [[1 2 3] [4 5 6]] プログラム(または関数)が出力するはずです: [[1 2 3 6] [4 5 6 15] …

27
*の通訳を書く
タスクは簡単です。言語*のインタープリターを作成します。 wikiへのより大きなリンクがあります。 有効なプログラムは3つだけです: * 「Hello World」を印刷します * 0〜2,147,483,647の乱数を出力します *+* 永遠に実行します。 3番目のケースは、この質問の仕様に従った無限ループでなければなりません 入力: 入力は、標準のI / Oルールで受け入れ可能な任意の入力方法で取得できます。 上記のプログラムのいずれかになります 出力: 最初のケースではHello World、末尾の改行の有無にかかわらず、正確に印刷する必要があります。 2番目の場合、言語の整数の最大値が2,147,483,647より小さい場合は、言語の整数の最大値を使用します 最初と2番目のケースは、標準のI / Oルールで受け入れ可能な出力に出力できます。 3番目のケースでは、出力は行われません。 得点: これはcode-golfであるため、バイト単位の最短回答が勝ちです。
20 code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

3
1つが上がり、もう1つが下がる
前書き この課題では、与えられた数字のシーケンスを2つのサブシーケンスに分割できるかどうかを決定します。1つは増加し、もう1つは減少します。例として、シーケンスを考えます8 3 5 5 4 12 3。次のように、2つのサブシーケンスに分割できます。 3 5 5 12 8 4 3 最初の行のサブシーケンスは増加しており、2番目の行のサブシーケンスは減少しています。さらに、このタスクを効率的に実行する必要があります。 入力 入力は、L0〜99999の範囲の整数の空でないリストです。言語のネイティブ形式で指定されるか、単にスペースで区切られます。 出力 出力はL、増加するサブシーケンスと減少するサブシーケンスに分割できる場合は真の値であり、そうでない場合は偽の値です。サブシーケンスは厳密に増加または減少する必要はなく、いずれかが空でもかまいません。 ルールとボーナス 完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。さらに、このチャレンジではブルートフォーシングは禁止されています。入力の長さの多項式時間でプログラムを実行する必要があります。 2つのサブシーケンスを実際に返す必要はありませんが、返すと-20%のボーナスがあります。静的に型付けされた言語でボーナスを請求しやすくするために、偽のインスタンスに対して空のリストのペアを返すことは許容されます。 テストケース input -> None偽の入力および真実の入力の形式で与えられますinput -> inc dec。ここでは、可能な1つのサブシーケンスのペアのみを示します。もっとあるかもしれません。 [4,9,2,8,3,7,4,6,5] -> None [0,99999,23423,5252,27658,8671,43245,53900,22339] -> None [10,20,30,20,32,40,31,40,50] -> None [49,844,177,974,654,203,65,493,844,767,304,353,415,425,857,207,871,823,768,110,400,710,35,37,88,587,254,680,454,240,316,47,964,953,345,644,582,704,373,36,114,224,45,354,172,671,977,85,127,341,268,506,455,6,677,438,690,309,270,567,11,16,725,38,700,611,194,246,34,677,50,660,135,233,462,777,48,709,799,929,600,297,98,39,750,606,859,46,839,51,601,499,176,610,388,358,790,948,583,39] -> None [0,1,2,3,4] -> [0,1,2,3,4] [] [4,3,2,1,0] -> [] [4,3,2,1,0] …

10
並べ替えられたサブセットに基づいてマスターリストを並べ替える
最近、職場で解決すべき問題がありました。マスターリストと、マスターリスト内のアイテムのサブセットが異なる順序で含まれている可能性がある2つのリストがありました。リストにないアイテムの順序を変更せず、可能な限り同じ場所にアイテムを保持することなく、サブセット内のアイテムが同じ順序で表示されるように、マスターリストを並べ替える必要がありました。さて、それはおそらく混乱を招くように聞こえるので、私はそれを分解します: マスターリストは、アイテムのデフォルトの順序を定義します。 サブセットリストは、特定のアイテムの相対的な順序を定義します。 マスターリストに2つの要素があり、サブセットリストに従って順序が狂っている場合、マスターリストの前の項目は、サブセットリスト内の他の項目に対して正しい位置にある最も早いインデックスに移動する必要があります。(つまり、後の項目の直後) あなたの仕事は、この並べ替えアルゴリズムを実装することです。 テストケースの例 Master: [1, 2, 3] Subset: [] Result: [1, 2, 3] Master: [9001, 42, 69, 1337, 420] Subset: [69] Result: [9001, 42, 69, 1337, 420] Master: [9001, 42, 69, 1337, 420, 99, 255] Subset: [69, 9001, 1337] Result: [42, 69, 9001, 1337, 420, 99, 255] …

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