タグ付けされた質問 「arrays」

配列は、それぞれが1つ以上のインデックスで識別される要素(値、変数、または参照)のコレクションで構成される、順序付けられた線形データ構造です。配列の特定のバリアントについて質問する場合は、代わりに次の関連タグを使用してください:[vector]、[arraylist]、[matrix]。このタグを使用する場合、プログラミング言語に固有の質問では、使用するプログラミング言語で質問にタグを付けます。

4
オブジェクトをネストされたオブジェクトに分割する方法は?(再帰的な方法)
アンダースコア(_)変数名を含むデータセットがあります。以下のような: const data = { m_name: 'my name', m_address: 'my address', p_1_category: 'cat 1', p_1_name: 'name 1', p_2_category: 'cat 2', p_2_name: 'name 2' } それらをネストされたオブジェクト/配列に分割したいのですが、以下が結果です。 { m: { name: "my name", address: "my address" }, p: { "1": {category: 'cat 1', name: 'name 1'}, "2": {category: 'cat 2', name: 'name …

1
このDelphi動的配列の動作は期待されていますか
問題は、動的配列がクラスメンバーとして設定されている場合、Delphiによって内部的にどのように管理されるかです。それらは参照によってコピーまたは渡されますか?Delphi 10.3.3を使用。 このUpdateArrayメソッドは、配列から最初の要素を削除します。ただし、配列の長さは2のままです。このUpdateArrayWithParamメソッドは、配列から最初の要素も削除します。ただし、配列の長さは正しく1に短縮されます。 ここにコードサンプルがあります: interface type TSomeRec = record Name: string; end; TSomeRecArray = array of TSomeRec; TSomeRecUpdate = class Arr: TSomeRecArray; procedure UpdateArray; procedure UpdateArrayWithParam(var ParamArray: TSomeRecArray); end; implementation procedure TSomeRecUpdate.UpdateArray; begin Delete(Arr, 0, 1); end; procedure TSomeRecUpdate.UpdateArrayWithParam(var ParamArray: TSomeRecArray); begin Delete(ParamArray, 0, 1); end; procedure Test; var r: …

2
複数のアレイにわたる2つの数値間の最大平均距離
あなたが持っていると言うkサイズの配列Nから一意の値それぞれ含有1するがN。 平均してお互いに最も離れている2つの数値をどのように見つけますか? たとえば、次の配列があるとします。 [1,4,2,3] [4,2,3,1] [2,3,4,1] 最初の2つの配列では距離が2離れており、最後の配列では3つの数値が離れているため、答えはitem 1と2になります。 私はO(kN ^ 2)解を知っています(各k配列の数値の各ペア間の距離を測定することによって)が、より良い解決策はありますか? このようなアルゴリズムをC ++で実装したいのですが、ソリューションの説明があれば役に立ちます。

1
楽:要素を区切るスペースなしで配列を文字列に変換する超高速な方法はありますか?
それぞれが1メガバイトの長さの何千ものバイナリバイト文字列をASC文字列に変換する必要があります。これは私がやっていることであり、遅すぎるようです: sub fileToCorrectUTF8Str ($fileName) { # binary file my $finalString = ""; my $fileBuf = slurp($fileName, :bin); for @$fileBuf { $finalString = $finalString ~ $_.chr; }; return $finalString; } 〜@ bは@bをすべての要素をスペースで区切った文字列に変換しますが、これは私が望んでいることではありません。@b = <abcd>;の場合 〜@ bは「abc d」です。しかし、私は単に「abcd」が欲しいし、これを本当に速くしたい。 それで、最善の方法は何ですか?最終的な文字列は順番に作成されるため、並列処理にハイパーを実際に使用することはできません。または私はできますか?
8 arrays  string  binary  raku 

1
オブジェクトを結合してプロパティを削除する
このように構造化されたオブジェクトの配列があるとします "err": [ { "chk" : true, "name": "test" }, { "chk" :true "post": "test" } ] このように再構築するにはどうすればよいですか? "err": [ { "post": "test" "name": "test" } ] 私は試した arr.filter(obj => delete obj.chk); chkプロパティは正常に削除できますが、2つのオブジェクトを組み合わせるにはどうすればよいですか?

7
文字列で最も長い単語を見つけて、それらを(重複を除いて)最大長とともに返すにはどうすればよいですか?
文字列内で最も長い単語を見つける方法を知っています。たとえば、このコードはここにあります。しかし、ここでの問題は、「bbbbbb」という単語が見つかったということです。彼が文字列の最初の最長の単語であるためです。その後、6文字で「ジャンプ」という単語も出てきました。私の質問は、この場合と「ジャンプした」という言葉をどのように見つけることができるかです。 更新:一意のリストが必要なので、各単語の1つのみ function longestWord(sentence) { sentence = sentence.split(' '); let theWord = sentence[0]; var longest = 0; for (let i = 0; i < sentence.length; i++) { if (sentence[i] != "") { if (sentence[i].length > theWord.length) { longest = sentence[i].length; theWord = sentence[i]; } } } return { length: longest, …

2
Haskell-numpyの変形を再現
Haskellに入って、リストでnumpyの再形成のようなものを再現しようとしています。具体的には、フラットリストを指定して、n次元リストに再形成します。 import numpy as np a = np.arange(1, 18) b = a.reshape([-1, 2, 3]) # b = # # array([[[ 1, 2, 3], # [ 4, 5, 6]], # # [[ 7, 8, 9], # [10, 11, 12]], # # [[13, 14, 15], # [16, 17, 18]]]) 固定インデックスで動作を再現することができました。例: *Main> reshape23 …
8 arrays  numpy  haskell 

1
オフセット配列のインデックスと値を取得する列挙のような関数ですか?
このような配列がある場合: using OffsetArrays a = OffsetArray(collect(1:5),(11:15)) 私は配列を反復することができます: for (i,x) in enumerate(a) println((i,x)) end そして得る: (1, 1) (2, 2) (3, 3) (4, 4) (5, 5) しかし、私はこれが欲しい: (11, 1) (12, 2) (13, 3) (14, 4) (15, 5) オフセット配列を使用しているため、実際のインデックスを取得する方法はありますか?

4
リストで配列をスライスする
だから、私は派手な配列を作成します: a = np.arange(25).reshape(5,5) array([[0、1、2、3、4]、[5、6、7、8、9]、[10、11、12、13、14]、[15、16、17、17、18、19] 、[20、21、22、23、24]]) 従来のスライスa[1:3,1:3]が戻る 配列([[6、7]、[11、12]]) 2番目のリストを使用する場合と同様 a[1:3,[1,2]] 配列([[6、7]、[11、12]]) ただし、a[[1,2],[1,2]]返品 配列([6、12]) 明らかに、私はここで何かを理解していません。とはいえ、リストを使用してスライスすることは、非常に役立つ場合があります。 乾杯、 ケン
8 python  arrays  slice 

1
最長K順次増加サブシーケンス
重複したスレッドを作成した理由 Kの例外が許可された最長の増加するサブシーケンスを読んだ後、このスレッドを作成しました。質問をしている人は、「1つの変更を許可して最長のサブアレイを増やす」問題を解決するリンクを参照していたため、問題を本当に理解していないことに気付きました。したがって、彼が得た答えは実際にはLIS問題とは無関係でした。 問題の説明 配列Aが長さNで与えられていると仮定します。K例外を許可して、最も長く増加するサブシーケンスを見つけます。 例 1)N = 9、K = 1 A = [3,9,4,5,8,6,1,3,7] 正解:7 説明: 最も長いサブシーケンスの増加は、3、4、5、8(または6)、1(例外)、3、7->合計= 7です。 2)N = 11、K = 2 A = [5,6,4,7,3,9,2,5,1,8,7] 答え:8 これまでに行ったこと... K = 1の場合、許可される例外は1つだけです。O(NlogN)の最長増加サブシーケンスを計算するための既知のアルゴリズムを使用する場合(ここをクリックしてこのアルゴリズムを表示)、配列の各要素に対してA [0]からA [N-1]までのLISを計算できます。 A.結果をサイズNの新しい配列Lに保存します。例n.1を見ると、L配列は L = [1,2,2,3,4,4,4,4,5]になります。 逆のロジックを使用して、配列Rを計算します。各要素には、N-1から0までの現在の最長減少シーケンスが含まれています。 1つの例外を除き、LISはsol = max(sol、L [i] + R [i + 1])です。 ここで、solはsol = L [N-1]として初期化されます。したがって、LISを0からインデックスi(例外)まで計算し、次にN-1まで新しいLISを停止および開始します。 …

2
多次元配列の複製
多次元配列@aを配列に複製したい@b。 私は最も直感的な方法で進み、次のことを思いつきました: my @a = [0, 0, 0], [0, 0, 0], [0, 0, 0]; my @b = @a.clone; @a[0][1] = 1; @b[1][0] = 1; say '@a : ' ~ @a.gist; say '@b : ' ~ @b.gist; そして、プリントアウトは: @a : [[0 1 0] [1 0 0] [0 0 0]] @b : …
8 arrays  clone  raku 

2
マクロを使用して追加の要素で配列を初期化する
マクロに応じて2つの異なる方法で配列を初期化しています。 # if feature_enabled const int v[4] = {1, 2, 3, 4}; #else const int v[5] = {0, 1, 2, 3, 4}; #endif 問題は、割り当てのデータが実際には大きな行列であり、さまざまな理由から、わずかな変更を加えてデータをコピーするだけでは適切な解決策ではないということです(配列の先頭に1つだけ要素があります)。 最後のn-1要素を本質的に複製せずに、ここで行ったのと同じことを行う方法があるかどうか疑問に思っていました。

2
Rakuハッシュ内の配列を反復するにはどうすればよいですか?
これは簡単な質問のようですが、Perl6 / Rakuは期待どおりに動作していません。ハッシュ内の配列への参照を作成しようとしていますが、期待どおりの動作が得られません。Perl5では、答えは参照によって配列にアクセスすることを含みますが、Perl6 / Rakuに対応する構文は見当たりません。 my $jsonstr = q:to/END/; { "arr" : [ "alpha","beta","delta","gamma" ] } END my %json = from-json $jsonstr; my @arr = %json{'arr'}; say "Arr length is " ~ @arr.elems; # Expect 4, get 1 say "Orig length is " ~ %json{'arr'}.elems; # Get expected value of …
8 arrays  json  hash  raku 

2
forループで配列を反復処理することは、C#のスレッドセーフ操作ですか?IEnumerable <T>をforeachループで反復するのはどうですか?
私の理解に基づいて、C#の配列を指定して、複数のスレッドから同時に配列を反復処理の行為は、あるスレッド安全な操作。 することにより、配列を反復処理 Iは、によって、アレイ内のすべての位置を読んで意味昔ながらのforループ。各スレッドは単に配列内のメモリ位置のコンテンツを読み取っているだけで、誰も何も書き込んでいないため、すべてのスレッドが一貫した方法で同じものを読み取ります。 これは、上で書いたことを実行するコードの一部です。 public class UselessService { private static readonly string[] Names = new [] { "bob", "alice" }; public List&lt;int&gt; DoSomethingUseless() { var temp = new List&lt;int&gt;(); for (int i = 0; i &lt; Names.Length; i++) { temp.Add(Names[i].Length * 2); } return temp; } } したがって、私の理解では、メソッドDoSomethingUseless はスレッドセーフでありstring[]、をスレッドセーフタイプ(ImmutableArray&lt;string&gt;たとえば)に置き換える必要はありません。 私は正しいですか? …

3
重複する配列キー(注意:メンバー変数「a」が__sleep()から複数回返されます)
タイトルは少しばかげているように見えるかもしれませんが、私はこれについて完全に真剣です。今日の仕事で、説明できない奇妙なPHPの動作に遭遇しました。幸いにも、この動作はPHP 7.4で修正されているため、誰かがそれに偶然出会ったようです。 私は何がうまくいかなかったかを説明するために小さな例を作りました: &lt;?php class A { private $a = 'This is $a from A'; public $b = 'This is $b from A'; public function __sleep(): array { var_dump(array_keys(get_object_vars($this))); return []; } } class B extends A { public $a = 'This is $a from B'; } $b = new …

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