私は最近解決しようとしていた問題について多くの進歩を遂げてきましたが、特定の順序付けの問題についてアドバイスを得ることができます。私は、数字のリストの辞書式順序を表す方法を見つけようとしています。それぞれに独自の範囲があります(順序付けが懸念される前に定義されています)。
各リストには7 つの要素があります。各要素は、 0 から 0-3までの範囲を持つことができます。おそらく、具体的な例が役立つでしょう。
7 つの要素 [2、1、0、1、3、2、3] を持つ配列があります。このリストは、辞書編集順序を生成したい多数の可能なリストを抽象的に表しています。(編集:より明確にするために。各桁の値は、その桁が可能なリストのセットに含めることができる最大値を表します。そのため、例の最初の桁は基数 4 の数値と考えることができ、2 番目の桁は 4 進数と考えることができます。このリストの最初のいくつかの要素は次のようになります。
- [0, 0, 0, 0, 0, 0, 0]
- [1, 0, 0, 0, 0, 0, 0]
- [2, 0, 0, 0, 0, 0, 0]
- [0, 1, 0, 0, 0, 0, 0]
- [1, 1, 0, 0, 0, 0, 0]
- [2, 1, 0, 0, 0, 0, 0]
- [0, 0, 0, 1, 0, 0, 0]
- [1, 0, 0, 1, 0, 0, 0]
うまくいけば、パターンは明確です。次に、このシーケンスの m 番目の値を返す関数 f(m)を効率的に呼び出すことができるようにしたいと考えています。私が探しているものに非常に近いと思われるこの記事を見つけました (固定値の組み合わせを持つセットで辞書編集の m 位を取得する効率的な方法を提供します) が、間のギャップを埋めるのに問題があります2 つのアイデア (ただし、この記事で結果を再現しましたが、ある程度は理解できると思います)。
上記の例で提供されているものと同様の7つの要素リストによって定義されたシーケンスでm番目の値を返す関数 f(m) を作成する方法について誰かアイデアがありますか?
PS この問題が別の形で言い直されていて、見つけられなかった場合は申し訳ありません。私はかなりの調査を行いましたが、これに完全に対応するものは何もないようです. リンク、ブレインストーミング、一般的なアイデアはすべて大歓迎です!
編集 2: 最初の要素が 2 ではなく 3 だった私の例のエラーを修正しました。