2次元配列の2次元によるソート - ページ 2

 

そのコードを読んでいて、バスケットをループして最大の負けトレードを見つけるコードスニペットをすでに持っていることを思い出しました。 そうすれば、私が必要としていることに対応できます。時には、ただ眠っていることが、最高のコード・ジェネレーターになることもある。 これは一晩でできるかもしれない。 たいした改造じゃない。 一度に全部閉じる必要はないんだ。 あるいは、さっき話したように、別の機能を同時に起動させれば、このようなことができるようになります。 その機能のコーディングに埋め込むだけでいいんです。

ゴードン、ありがとうございました。

 

もし、価格順で配列をソートしたいのであれば、1次元目に価格を、2次元目にチケットをロードすればよいのでは......そうすれば、通常の方法でソートすることができます。

 

はい、それはすでに考えていました。 そして、そのデータを別の配列にコピーして、逆順に並べ替えるだけです。 私が決めたのは、もっと単純で、実際、私のニーズにぴったりなことでした。 私は基本的にオープントレードをループし、最大の勝者と最大の勝者よりも小さい最大の敗者を見つけ、私はそれらを両方とも閉じます。 次のティックまたはキャンドルで、それはプロセスを繰り返します。 うまくいきました。

 
gordon:

どのように呼ぶかは別として、2 次元配列の最初の次元は arr_name[0,1,...,n][0] というベクトルであり、技術的には最初の括弧が最初の次元を保持しています。この本から

ArraySort()の話題のついでに、私が見つけた文書化されていない2つの奇妙な点を挙げておきます。

  1. 最初の次元の要素の一部が同一である場合、必ずしもその順序が維持されるわけではありません。明らかに、これは「設計上」文書化されるべきで、そうでなければ「バグ」と見なすでしょう。
  2. OrderSort() は 4次元配列では動作しません (エラー 4053 を返します)。これも文書化されているはずなのですが、されていません。
返事が遅くなって申し訳ありません。でも、あなた方の回答にはとても感謝しています。
ちなみに、以下は私の回答です('spammy' mode :( ))。
- 1次元配列の場合、疑問は生じません。2次元、3次元、4次元の配列では、一番左の 括弧の組は常に 1次元の ものであるということでよろしいでしょうか?
 
cameofx:
- 1次元の配列では、このような疑問は生じません。2次元、3次元、4次元の配列では、一番左の 括弧の組が常に 1次元に なるのですが、これは正しいのでしょうか?

そうです。

 
gordon:

どのように呼ぶかは別として、2 次元配列の最初の次元は arr_name[0,1,...,n][0] というベクトルであり、技術的には最初の括弧が最初の次元を保持しています。この本から

ArraySort()の話題のついでに、私が見つけた文書化されていない2つの奇妙な点を挙げておきます。

  1. 最初の次元の要素の一部が同一である場合、必ずしもその順序が維持されるわけではありません。明らかに、これは「設計上」文書化されるべきで、そうでなければ「バグ」と見なすでしょう。
  2. OrderSort() は 4次元配列では動作しません (エラー 4053 を返します)。これも文書化されているはずなのですが、されていません。
返事が遅くなって申し訳ありません。でも、皆さんの回答にはとても感謝しています。
ちなみに、これが私の回答です。
- 1次元配列の場合、問題は発生しません。2次元、3次元、4次元配列の場合、左端の 括弧の組が常に 1次元に なります。これは私の理解でもあります。
int    a[50];       // A one-dimensional array of 50 integers.
double m[7][50];    // Two-dimensional array of seven arrays,
                    //each of them consisting of 50 integers
しかし、この説明を見てみると7つの配列からなる2次元配列。各配列は 50個の整数から なる" と説明されています。これはきっと
というのは、50 個の整数がデータの行/メンバーサイズに近く、7個が列/ヘッダであることを示唆しているからです。このことから、私は(誤って)次のように考えていました。
一番右 が行/メンバー部分であり、都合よくリサイズできるはず/できるはずだと信じていました。
- gordonさんの発見を共有していただき、感謝しています。残念ながら、最近、テストは私にとって贅沢なことなのです...。断続的にしかパソコンやインターネットに触ることができないので(複雑です)。
死んだチャートでテストするのさえ、難しいのです...。だから、時々、理解力がおかしくなる。というわけで、ほとんど記憶と参考文献に頼っています。

PS : おっと、前の投稿が入り込んでいたとは知りませんでした。編集しておきました。
 
cameofx:
[...] これは、50個の整数が データの行・メンバーサイズに近く、7が列・ヘッダであることを示唆しているので、誤った説明に違いありません。

何を示唆しているのかよくわかりませんが、ともかく、一番左が最初の次元です。ドキュメントの多くはロシア語からの翻訳で、あまり良い翻訳でないことも多いので、もしかしたらこのようなケースもあるのかもしれません。列/行というのは単なるメタファーで、配列を想像しやすくするためのものですが、実際の実装とは何の関係もありません。最初の次元が「行」であるか「列」であるかは、あなた次第です。

 
1005phillip:


配列のインデックスとディメンションは、表計算ソフトの標準的な方法...Row-Column(ニーモニック「ローマ字」)で見ています。

1次元配列。MyArray[RowNumber-1] (行番号-1)

2次元配列。MyArray[行番号-1][列番号-1] とする。

3次元配列。MyArray[RowNumber-1][ColumnNumber-1][Worksheet-1]・・・・・・。

私もこの方法を想像していました。1次元に関して引用した参考文献が私を混乱させました...(上記の投稿を参照してください)。つまり、論理的には、ColumnNumber や WorksheetNumber、BookNumber のサイズを変更することはできません。
とかBookNumberのサイズを変更することはできないのです...RowNumberだけです。2D、3D、4D配列では、一番左の括弧のペアとなります。
 
cameofx:
だから、論理的にリサイズはできない[...]。

その通りです。

 
gordon:

何を示唆しているのかよくわかりませんが、ともかく一番左が最初の次元です。ドキュメントの多くはロシア語からの翻訳で、あまり良い翻訳ではないことが多いので、このようなケースもあるのかもしれません。列/行というのは単なるメタファーで、配列を想像しやすくするためのものですが、実際の実装とは何の関係もありません。最初の次元が「行」であるか「列」であるかは、あなた次第です。

残念ながら、私たちの多くは-私も多くの初心者のために発言しているつもりですが-、既存のドキュメントに依存しすぎています。- 既存のドキュメントに依存することがあまりにも多いのです...。