問題タブ [iec61131-3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arrays - 並べ替えられた非順次要素のルックアップ テーブル
私は要素の配列を持っています。配列は要素の ID でソートされますが、ID 番号にギャップがあるなど、ID は不連続です。
現在、特定の ID を見つけるために二分探索を使用しています。
ID は 3 バイトで、約 1600 万の可能性があります。特定の配列内の ID の数ははるかに少なく、おそらく 10 000 です。
これは組み込み/plc プラットフォームです。つまり、16 MB のルックアップ テーブルを使用できず、メモリを大量に消費します。私はそのようなビットセットを見てきましたが、それが正しいアプローチであるかどうか、またはそれから配列オフセットを計算する方法がわかりません。
古き良き「メモリの速度」のトレードオフを行いたいので、これは難しいかもしれませんが、メモリがほとんどなく、おそらく2MB以下しかありません。しかし、ハードウェアは固定されています。
編集:配列の要素は特定のアプリケーションに対して固定されており、配列要素の挿入または削除はありません。
ID の検索を高速化するためにルックアップ テーブルなどを作成/事前計算するにはどうすればよいですか?
ありがとう
plc - 文字の 2 つの配列を比較し、S7 1500 (PLC) で一致を見つける
私は現在、ST(SCL) を使用して S7 1500 で小さなコーディング演習に取り組んでおり、2 つの配列 A (長さが大きい方) と B が互いに比較され、一致する要素がチェックされます。
ただし、配列 B は英数字と特殊文字 (セミコロン) で構成されています。例: "12345;12346B;12347A" など、セミコロンを持たない配列 A とは異なります。Delimiter または EndSeparator が「;」である分割機能を実装したいと考えています。数値の束を分離し、分割された数値を配列 A 要素と比較して、配列 A にも 12345 が存在するかどうかを確認します。
配列 A の範囲が定義されていないため、配列の制限に LOWER_BOUND と UPPER_BOUND を使用しました。
どうすればいいですか?任意のポインタは本当に高く評価されます. :)
参照用: