私は、ユーザーが2セットの情報を入力し、2セットの可能なすべての組み合わせを印刷できるアプリケーションをPHPで作成しています。目標は、質問と回答のさまざまなパターンを練習することにより、言語を学習するための教育ツールとしてそれを使用することです。
たとえば、「試したことはありますか...?」という質問を練習することがあります。さらに、バンジージャンプ、パラセーリング、スカイダイビング、スキューバダイビングなどの4つのアクティビティの1つ。また、4つの可能な答えがあります。
- はい、私は持っています、そして私はそれを楽しんだ。
- はい、ありますが、気に入らなかった。
- いいえ、していませんが、やってみたいです。
- いいえ、私はしていません、そして私はそれを試したくありません。
ユーザーは2つのデータセットを入力し、アプリケーションは質問と回答のすべての可能な組み合わせを含むカードのシートを印刷します。たとえば、カード1は次のようになります。
- スカイダイビング:はい、私は持っています、そして私はそれを楽しんだ。
- スキューバダイビング:はい、ありますが、気に入らなかったです。
- パラセーリング:いいえ、していませんが、試してみたいです。
- バンジージャンプ:いいえ、私はしていません、そして私はそれを試したくありません。
次のカードは次のようになります。
- スカイダイビング:はい、ありますが、気に入らなかったです。
- スキューバダイビング:いいえ、していませんが、やってみたいです。
- パラセーリング:いいえ、私はしていません、そして私はそれを試したくありません。
- バンジージャンプ:はい、私は持っています、そして私はそれが好きでした。
ご覧のとおり、さまざまな組み合わせが考えられます。アイデアは、すべての可能性を印刷できるように、両方のリストが同じ長さになるということです。また、どのカードでも質問や回答が2回以上使用されないようにすること、および2枚のカードを同じにすることができることも重要です。これについて行くための最良の方法は何でしょうか?実際の入出力は問題ではありません-私は以前に同様のことをしました。組み合わせを生成するためのアルゴリズムが必要です。
編集:私が本当に求めているのは、各カードのアクティビティを同じ順序に保つことですが、答えの可能なすべての組み合わせを持っていると思います。したがって、私が本当に必要としているのは、answers配列からデータを取得するための次の一連のインデックスを生成できるようにすることです。だから私は本当にこのようなものが欲しいです:
- 0、1、2、3
- 0、1、3、2
- 0、2、1、3
- 0,2,3,1
- 0、3、1、2
- 0,3,2,1
- 1,0,2,3
- 1,0,3,2
- 1,2,0,3
- 1,2,3,0
...可能なすべての組み合わせが生成されるまで、以下同様です。