2011-12-10 15 views
1

私はこのような何かを行く、問題を行うために割り当てられていました:5個のスクランブルものから順序付けられたシーケンスを導出

私のプログラムは、[整数A [1 ... N]、のリストを導き出す必要がありますj]はリスト内のj番目の整数を表します。

私のプログラムには、N個の整数(A [1 ... N]と同じものですがスクランブルされているものと同じもの)のリストが5つ入力されます。これらのリストは次のように生成されます。

リストはA [1 ... N]のように順番に並べられます。リストはスクランブルされます。これは少なくともこのリストから0個の整数を取り除き、リスト内の任意の位置にBACKを置きます。 5つのリストのそれぞれでは、各数字はたかだか1回だけ移動されます(ただし、数字は、他の数字がシフトした結果、異なるインデックスに終わる可能性があります)。

例えば

は、Nが5であると想定し、正しいシーケンスAは、プログラムがこれらの5つのシーケンス入力される{1、2、3、4、5}

ある:

1,2,3,4,5 

2,1,3,4,5 

3,1,2,4,5 

4,1,2,3,5 

5,1,2,3,4 

ターゲット/オリジナルシーケンスが{1,2,3,4,5}であることをどのように判断できますか?

誰かが正しい方向に向いていますか? (宿題問題です)

問題をより明確にするために私が必要かどうかを教えてください。

ありがとうございます!

+0

問題は無意味です( "少なくとも0個の要素を削除する"のようなフレーズを使用していますか?)そして解決できません。 N個の数字のリストを持ち、N個を取り出して新しい位置にスクランブルすることができれば、このスクランブル操作の5つの結果は、入力リストが何であるかを伝えるのに十分な情報ではありません。それらは元の数字を持つ5つのリストになる可能性があるからです。あなたは言及していないいくつかの他の制約が必要です。 – HostileFork

+0

彼は、各位置は一度しかスクランブルできないと述べています。 –

答えて

0

私はサイズNの配列を作成し、それを他の配列のインデックスとして使用します。たとえば、整数配列インデックス[N]を作成した場合、それを操作してその値を他の配列、つまりarray1 [index [N]]のインデックスとして使用できます。このインデックス配列をどのように操作したかに応じて、スクランブリングまたは並べ替えのいずれかに使用できます。

+0

質問に問題の例を入力しました。多分それはそれを明確にするのに役立ちます。 –

+0

この解決策はあまり意味がありません... –

関連する問題