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

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

19
すべてのサブリストパーティションを生成する
整数の空でないリストが与えられた場合、各パーティションが空でないサブリストであるリストの可能なパーティションをすべて出力します。 リスト[1, 2, 3, 4]の結果は次のとおりです。 [[1, 2, 3, 4]] [[1, 2, 3], [4]] [[1, 2], [3, 4]] [[1, 2], [3], [4]] [[1], [2, 3, 4]] [[1], [2, 3], [4]] [[1], [2], [3, 4]] [[1], [2], [3], [4]] 出力内のリストの順序は重要ではないため、[[1, 2, 3, 4]]最初、最後、またはどこでもかまいません。要素の順序を保持する必要があります。 これはコードゴルフなので、最短の回答が勝ちです。 関連:リストを分割します!

16
面倒な7つのルール
ランダウン 乱数でランダムな長さの配列を生成するプログラムを作成し、配列を変更する一連のルールを適用します。ルールが適用された後、特に指定されない限り、配列の合計を出力します アレイのセットアップ 配列は5〜10のランダムな長さで、1〜20のランダムな整数でなければなりません。各配列の長さは発生する確率が等しく、各整数は要素ごとに選択される確率が等しい必要があります。 7つのルール ルールは順番に適用されたかのように動作する必要があり(たとえば、ルール1はルール2の前に動作します)、一度だけ適用されます。ルールの適用を証明するために、各ルールの適用後、ルールが適用される前に1回、配列をコンソールに出力する必要があります。 配列に7が含まれる場合、すべての要素から1を引きます ルール1が適用され、配列に0が含まれている場合、各要素に1を追加します 配列に13が含まれる場合、13から、およびそれに続くすべての要素を配列から除外します 配列に2が含まれる場合、すべての奇数を除外します 配列に20が含まれ、3番目の要素が偶数の場合、合計として20を返し、終了します。20が存在し、3番目の要素が奇数の場合、合計が終了するときに配列の長さの20倍を返します。 合計が50を超える場合、最後の要素が50以下になるまで繰り返し最後の要素を削除します 配列に16が含まれている場合、合計を10進数と16進数の両方で出力します。 例 これが初期配列です。 [20, 2, 5, 7, 14, 8] ルール1を適用できます: [19, 1, 4, 6, 13, 7] 次にルール3が適用されます。 [19, 1, 4, 6] 他のルールは必要ないため、プログラムは合計として30を返します。 ノート 私は経験豊富なコードゴルファーではありませんが、私の個人的な記録は369バイトの Python 3であると言えます。 ルールを実際に順番に適用する必要はありませんが、実際に適用するかのように動作する必要があります。

18
配列のデルタの並べ替えと再適用
どのように見えるシンプルな 改変一貫性のある機能を使用してデルタのはほとんど常に他のいくつかの行うことができます短い 道、デニスを。したがって、これをより難しくすることを想像できる唯一の解決策は、ある種の一貫性のない機能を導入することです。 並べ替え。 あなたの仕事は、整数の配列を受け取り、それらのデルタをソートし、それを再コンパイルして新しい整数の配列を与えることです。 例えば。 入力用: 1 5 -3 2 9 次のデルタを取得します。 4 -8 5 7 次に、これらのデルタを並べ替え、降伏: -8 4 5 7 そして、それらを再適用します: 1 -7 -3 2 9 入出力 list / array / table / tuple / stack / etcが与えられます。任意の標準入力メソッドを介した入力としての符号付き整数の。 上記のデルタソート方法に従って、変更されたデータを受け入れ可能な形式でもう一度出力する必要があります。 0 < N < 10各数値が範囲内にあるN個の入力を受け取ります-1000 < X < 1000 …

3
事前注文+注文から注文へ
仕事 完全な二分木の先行順および後順トラバーサルが与えられると、その順トラバーサルを返します。 トラバーサルは、それぞれがノードを一意に識別するn個の正の整数を含む2つのリストとして表されます。プログラムはこれらのリストを取得し、適切なI / O形式を使用して、結果の順序トラバーサルを出力します。 入力が有効であると仮定することができます(つまり、リストは実際にはツリーのトラバーサルを表します)。 これはcode-golfであるため、バイト単位の最短コードが優先されます。 定義 完全なバイナリツリーは、有限構造であるノードのユニークな正の整数で、ここで示され、。 完全な二分木は、単一のノードで構成されるリーフのいずれかです。 1 または、2つのサブツリー(左および右サブツリーと呼ばれる)を持つ1つのノードで構成されるブランチ。各サブツリーは完全な二分木です。 1 / \ … … 完全なバイナリツリーの完全な例を次に示します。 6 / \ 3 4 / \ / \ 1 8 5 7 / \ 2 9 完全なバイナリツリーの事前順序走査は、次のように再帰的に定義されます。 ノードnを含むリーフの事前順序走査はリスト[ n ]です。 ノードnとサブツリー(L、R)を含むブランチの事前順序走査は、リスト[ n ] + 事前順序(L)+ 事前順序(R)です。ここで、+はリスト連結演算子です。 上記のツリーの場合、それは[6、3、1、8、2、9、4、5、7]です。 完全な二分木の後順走査は、次のように再帰的に定義されます。 ノードnを含むリーフのポストオーダートラバーサルはリスト[ n ]です。 …

14
最大マキシマ!
この質問に触発され、ルイスメンドーによって洗練されました。 チャレンジ 整数の2Dマトリックスを指定すると、各行には最大値があります。各行の1つ以上の要素は、それぞれの行の最大値に等しくなります。あなたの目標は、それぞれの行の最大値とこれらの列で見つかった行ごとの最大値に等しいエントリが最も多い列を決定することです。 入力 入力は、選択した言語に適した形式の空でないMx N行列(M> 0およびN> 0)になります。 出力 プログラムは、行ごとの最大値の最大数を含む各列のインデックスを返します(個別の値またはリストとして)。0ベースまたは1ベースのインデックスを使用できます(説明で指定します)。 プログラムは、これらの列に存在した最大値の数(単一の数)も返す必要があります。 出力の順序/形式は柔軟ですが、回答に付随するテキストで説明する必要があります。 追加情報 入力行列のすべてのエントリは正の整数になります。 行の最大値がその行の複数の要素で共有されている場合、その値のすべての出現は列の合計にカウントされます。 複数の列に同じ数の最大値が含まれる場合、この数の最大値を持つすべての列のリストを返す必要があります。 例 入力を検討する 7 93 69 35 77 30 行1の最大値は93です。これは1回のみ、つまり列2で発生します。行2:列1で発生します。行3:また列1でも発生します。したがって、出力はになります[1] [2]。入力を 7 93 69 35 77 77 [1 2] [2]両方の列に最大値が2つあるため、出力はになります。 テストケース input => output ( [1-based index array], [nMaxima] ) ---------------------------------------------- 7 93 69 35 …

8
ファイの三角形を描く
明確化:基本的に、これを作成する必要があります オイラーのtotient関数の名前はphiです。 phi(8)を計算してみましょう まず、0以下を含まない、8以下のすべての数字を後方にリストします 8 7 6 5 4 3 2 1 次に、8と因子を共有しない数字を見つけ(1はカウントしません)、その場所にa #を配置します。 8 # 6 # 4 # 2 # 数字を削除します。 # # # # - これを行いますが、出力を三角形にまとめます 9 88 777 6666 55555 444444 3333333 22222222 111111111 --------- 123456789 # 非因子共有番号を出力する 9 8# 7## 6#66 5#### 4#4#4# 3##3##3 2#2#2#2# …

9
古典的な分類コードとゴルフの質問
これはコードゴルフの質問です。 入力 最も便利な任意の形式の非負整数のリスト。 出力 最も便利な形式でソートされた順序で同じリスト。 制限 入力の整数の数が最悪の場合、コードはO(n log n)時間で実行する必要がnあります。これは、例えば、ランダム化されたクイックソートが出ていることを意味します。ただし、他にも多くの選択肢があります。 並べ替えライブラリ/関数/類似物を使用しないでください。また、ヒープライブラリのように、ほとんどの並べ替え作業を行うものは使用しないでください。基本的に、実装するものは何でも、ゼロから実装します。 必要に応じて関数を定義できますが、実際に動作する完全なプログラムでその例を示してください。以下のすべてのテストケースで正常かつ迅速に実行されるはずです。 テストケース In: [9, 8, 3, 2, 4, 6, 5, 1, 7, 0] Out:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] In: [72, 59, 95, 68, 84] Out:[59, 68, 72, 84, 95] In: [2, 2, 1, 9, 3, …

3
マトリックス内の2x2ブロックごとに回転する
チャレンジ 整数で満たされたn x m行列が与えられた場合n > 1m > 1 1 2 3 4 5 6 2x2マトリックス内のブロックと正確に同じ数の値を持つ整数のリスト((n-1)*(m-1)正確な数が必要な場合) [1、2] 2x2リスト内の現在の値で指定された順序で各ブロックを回転させた行列を出力します。上記の例では、 4 6 2 5 3 1 最初のブロックは1回右に回転し、2番目のブロックは2回右に回転します。 ノート 正の整数は、その数のステップだけ右に回転することを意味します。 負の整数は、その数のステップだけ左に回転することを意味します。 ゼロは回転しないことを意味します。 ブロックを行ごとに回転させます。つまり、最初の行から開始して右に移動します。その行のすべてのブロックを回転させたら、次のブロックに進みます。最後に、すべてのブロックが1回だけ回転しました。 ブロックは互いに重なり合っていることに注意してください。上記の最初のマトリックスには、ブロック[[1,2],[4,5]]など[[2,3],[5,6]]があります。 ブロックの各回転は、隣接するブロックの回転に影響します。これが、上記のパターンで回転を行わなければならない理由です。 ルール 最も便利な形式で入力することができます。どちらを使用するかを回答で指定してください。ただし、ブロック単位でマトリックスを読み取ることはできません。 機能または完全なプログラムが許可されます。 入出力のデフォルト規則。 標準の抜け穴が適用されます。 これはcode-golfなので、バイト数が最も少なくなります。Tiebreakerは以前の提出です。 テストケース ここでの入力形式は、マトリックスのリストのリストと値の通常のリストです。 [[1,2]、[3,4]]、[-3]-> [[4,1]、[3,2]] [[1,1,1]、[1,1,1]]、[-333、666]-> [[1,1,1]、[1,1,1]] [[1,2,3]、[4,5,6]]、[1,2]-> [[4,6,2]、[5,3,1]] [[1,2,3]、[4,5,6]、[7,8,9]]、[4,0,12、-20]-> [[1,2,3]、[4、 5,6]、[7,8,9]] [[1,2,3,4,5]、[5,4,3,2,1]、[1,2,3,4,5]]、[2、-3,4,1,6、 24,21、-5]-> …

5
2つのリストの平均化
2つのリストを平均化する チャレンジ 正の整数の2つのリストが与えられた場合、新しいリストが同じ算術平均(平均)を持つように要素を2つの新しいリストに再配置できるかどうかを判断します。 入力 入力は、STDINを介して、または関数の引数として取得できます。入力はリストとして取得できます。または、言語がリスト(または配列/辞書などの類似物)をサポートしていない場合、入力はコンマまたはスペース区切りの文字列として取得できます。あれは、 "1 4 8 2 5,3 1 5 2 5" 次と同じです: [ [1,4,8,2,5], [3,1,5,2,5] ] すべての入力リストは同じ長さになります。 出力 同じ平均で2つの新しいリストを作成できる場合、プログラム/関数は平均を出力するか返す必要があります。できない場合、プログラムは悲しい顔を出力するはず:(です。 等しい手段を使用して再配置されたリストは、存在する場合、同じ長さである必要はありません。新しいリストを作成するために、任意の数のスワップを作成できます。 例 1 4 8 2 5,3 1 5 2 5 -> 1 4 8 2 3,5 1 5 2 5 (swapped 3 and 5) -> 3.6 1 …

1
Golfscript対角配列
Golfscriptで、配列のすべての対角線を単一の配列にする方法はありますか? たとえば、配列の場合 [[1 2 3][4 5 6][7 8 9]] 帰る [[7][4 8][1 5 9][2 6][3]] (必ずしもこの順序である必要はありません)および ["ABCD""EFGH""IJKL"] 帰る ["I""EJ""AFK""BGL""CH""D"] (必ずしもこの順序である必要はありません)。配列の長さが同じであると仮定します。 私はそれを理解するのに苦労しています。文字列のth文字を使用して=繰り返し処理を試みましたが、うまくいき(length+1)ませんでした。誰か助けてくれますか? 可能であれば、これを行う最短の方法が欲しいです。

7
交差シーケンス
交差シーケンス 正の整数のリストが与えられ、各要素が前の要素以上である場合A、それを増加シーケンスと呼びます。そして、各要素が前の要素以下の場合、それを減少シーケンスと呼びます。 いくつかの増加するシーケンス: [1,2,4,7] [3,4,4,5] [2,2,2] [] いくつかの減少するシーケンス: [7,4,2,1] [5,4,4,3] [2,2,2] [] 交差配列は、 2つの互いに素サブ一つ増加配列および他のA減少シーケンスに分解することができるリストです。 たとえば、リスト: [3,5,2,4,1] 次のように分解できるため、交差シーケンスです。 [3, 4 ] [ 5,2, 1] ここ[3,4]で、は増加するサブシーケンスで[5,2,1]あり、は減少するサブシーケンスです。このような(増加、減少)サブシーケンスのペアを交差シーケンスの分解と呼びます。 リスト: [4,5,2,1,3] 交差シーケンスではありません。それを増加するサブシーケンスと減少するサブシーケンスに分解する方法はありません。 あなたの仕事は、正の整数のリストを入力として受け取るプログラム/関数を書くことです。交差シーケンスの場合は、分解の1つで2つのリストを返します。リストが交差シーケンスでない場合は、一貫性のある「誤った」値。 これはコードゴルフです。各言語で最も短いプログラム/機能が勝者です。 ルール: 入力は柔軟です。 通常の抜け穴は禁止されています。 入力を分解する有効な方法が複数ある場合は、そのうちの1つまたはすべてを出力できます。 分解の出力フォーマットは柔軟です。しかし、2つのサブシーケンスの違いに関しては明確でなければなりません。 入力が交差シーケンスではないことを示すために、一貫した出力値を使用できます。交差シーケンスの出力と比較して明確である限り。答えには偽の値を指定する必要があります。 テストケース: False非交差シーケンスを示すために使用: [3, 5, 2, 4, 1] => [3, 4], [5, 2, 1] [3, 5, …

7
奇妙な秘密の力を持つ配列の戦い
これは、比較的単純な2次元配列の課題です。 625人の歩兵の戦場を想像してみてください。あなたはコマンド奇妙な軍隊を、残念ながらの強さも、軍があなたを圧倒する。ありがたいことに、あなたの兵士には秘密の力があります:奇妙な各部隊とそれらを取り巻く仲間の奇妙な同盟国の力が秘密の力の数で割り切れる場合、彼らは最終的な攻撃を解き放ち、勝ちます!あなたは勝利した兵士一人一人を尊敬しなければなりません。 ルール 各要素がそのxとyの位置に1を加えた積を含む25 x 25の整数配列を指定すると、次の基準を満たすすべての「勝利の」奇数要素の座標を返します。 要素の値とそれに隣接する奇数要素(上、下、左、右)の合計は、入力(シークレットパワー番号)で割り切れます。要素は4つの辺すべてに隣接していて、エッジ上にはない必要があります。 提出は、単一の入力を必要とする関数または完全なプログラムのいずれかです。出力は任意の順序にすることができます。 25 x 25の配列、戦場は次のようになります。 1, 1, 1, 1,... 1, 2, 3, 4,... 1, 3, 5, 7,... 1, 4, 7, 10,... etc. 例 以下は3 x 3の例です。 43, 57, 71 46, 61, 76 49, 65, 81 要素(中央の61)が勝るかどうかを判断するには、その要素と隣接する奇数要素の値を合計します。 61 + 57 + 65 = 183 合計が入力で割り切れる場合、要素のxとyの位置が出力されます。入力が3の場合、183は3で割り切れるため、「1、1」が出力されます。 …

7
隣人は敵対的ですか?
前書き この課題の目的のために、私たちが定義する隣人の要素のEEE正方行列であAA(ようにE= A私、jE=Ai,jE=A_{i,j})のエントリがすべてのように に水平または垂直、斜めにすぐ隣接している(すなわちそれらはラップせずにを「囲みます」)。E EあAAEEE EEE pedantsのための近隣の、正式な定義のため matix(0インデックス)である: ここで n×nA N i 、あ私、jAi,jA_{i,\:j}n × nn×nn\times nあAAE i 、Ni,j={Aa,b∣(a,b)∈Ei,j∩([0,n)∩Z)2}Ni,j={Aa,b∣(a,b)∈Ei,j∩([0,n)∩Z)2}N_{i,\:j}=\{A_{a,\:b}\mid(a,b)\in E_{i,\:j}\:\cap\:([0,\:n)\:\cap\:\Bbb{Z})^2\}Ei,j={i−1,i,i+1}×{j−1,j,j+1} \ {i,j}Ei,j={i−1,i,i+1}×{j−1,j,j+1} \ {i,j}E_{i,\:j}=\{i-1,\:i,\:i+1\}\times \{j-1,\:j,\:j+1\} \text{ \\ } \{i,\:j\} インデックスの要素が、そのすべての隣接要素と互いに素である場合(つまり、あれば、敵意を持って生きているとしましょう)。悲しいことに、この貧弱な入り口は、近くの失礼な住民から砂糖を1杯も借りることができません...i,ji,ji,\:jgcd(Ai,j,n)=1∀n∈Ni,jgcd(Ai,j,n)=1∀n∈Ni,j\gcd(A_{i,\:j},\:n)=1\:\forall\:n\in N_{i,\:j} 仕事 十分なストーリー:正の整数の正方行列が与えられると、次のいずれかを出力します。MMM 隣接するが敵対的になるようにいくつかのインデックスを占めるすべてのエントリを示す要素(重複排除されているかどうかにかかわらず)のフラットリスト。M N i 、i,ji,ji,jMMMNi,jNi,jN_{i,\:j} 近傍が敵対的である位置に秒、それ以外の場合は秒のブール行列(と代わりに他の一貫した値を選択できます)。0 0 1111000000111 敵対的な地域を表すインデックスのペアのリスト。i,ji,ji,\:j Physicaのリファレンス実装 – I / OのPython構文もサポートします。これらの抜け穴はデフォルトで禁止されていることに注意しながら、標準的な方法と適切な形式で入力を取得し、出力を提供できます。これはコードゴルフなので、(すべての言語で)バイト単位の最短コードが優先されます! さらに、行列サイズを入力として使用することもできます。また、常に正方形であるため、行列をフラットリストとして使用することもできます。 例 次のマトリックスを考えてみましょう: ⎛⎝⎜642753102258143236⎞⎠⎟(641014272232535836)\left(\begin{matrix} 64 …

4
信じられないトップ10の要素がこの配列にあります
AKA:配列からクリックベイトを生成します。 整数の配列が与えられた場合、その配置と長さに基づいて、価値のないクリックベイトを生成します。 要素数が20以下の場合、上位Xリストを作成できます。パラメータ:配列の長さ。 素数は有名人なので、2つが隣り合っているときはいつでも、ゴシップとして渡されます。パラメータ:2つの隣接する素数が配列に現れる順序で。 配列に2つ以上の数字が表示される場合、それは衝撃的で信じられないほどであり、誰もがそれについて聞く必要があります。複数の数字が2回表示される場合は、それぞれにニュース記事を作成します。一意の番号ごとに1回だけ印刷してください。パラメータ:総外観によって測定された数の出現。 並べ替えられた 単調に増加する順序で3つ以上の要素が表示され、その後突然減少した場合は、それらがどのように並べ替えられているかを説明し、次に何が起こるかについて説明します。これは、ストレートごとに1回だけ実行してください。パラメータ:ストレートの長さ。 これらは、使用する必要があるそれぞれのクリックベイトです。 The Top {{N}} Array Elements {{N1}} And {{N2}} Were Spotted Together, You Won't Believe What They Did These {{N}} Elements Will Blow Your Mind {{N}} Elements Sort Themselves, Find Out What Comes Next 覚えておいてください。あなたは安いメディア会社を代表しているので、これを搾り出し、考えられるすべてのタイトルを印刷する必要があります。同じタイトルが2つある場合は、両方を印刷します。 たとえば、この配列が与えられた場合… 1,2,3,4,2,1,1,5,6 これらすべてを任意の順序で出力する必要があります。 The Top 9 Array Elements …

2
孤独な島々
入力: 2つの異なる(オプション)値を含む2D配列。ルールを説明するときは0と1を使用します。入力フォーマットはもちろん柔軟です。 チャレンジ: ゼロは水であり、ゼロは島です。孤独を確実にするために、あなたの仕事はゼロの行と列を挿入することによってすべての島を水で囲むことです。水を無駄にしたくないので、追加する水の量を最小限に抑える必要があります。同じ量の水を追加する必要がある複数のソリューションがある場合は、行ではなく列を追加する必要があります。これをテストケースで示します。 出力: 新しく変更された2D配列。出力形式はもちろん柔軟です。 テストケース: 入力と出力はダッシュで区切られています。追加されたゼロは太字で示されています。テストケースをより便利な形式に変換する場合は、ここで回答の1つを使用してください。 1 --- 1 1 1 --- 1 0 1 1 1 1 1 --- 1 0 1 0 0 0 1 0 1 1 0 0 1 --- 1 0 0 0 0 1 ゼロの行ではなく、ゼロの列を追加したことに注意してください。これは、必要なゼロの数が等しく、列を優先する必要があるためです。 1 0 0 0 1 0 1 …

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