要素を選択していくプログラムについて
配列
a[12]={9,10,11,8,1,2,0,5,4,6,7,3}
b[12]={2,0,10,5,8,7,9,11,6,1,3,4}
の2つがあった場合、
各配列の初めから両隣の要素をそれぞれ番号ごとのリストに追加します。
この作業をa,bの配列の最後の要素まで繰り返します。
例.
(aの配列の初めの要素9の場合→両隣の要素は左側3、右側10なので
9の箇所に3と10を追加する。
次、10の場合→両隣の要素は左側9、右側11なので10の箇所に9と11を追加する。
aの配列の最後の要素3の場合→左側7、右側9なので3の箇所に7と9を追加する。)
作業の結果のリスト
0:{2,5,10}
1:{8,2,6,3}
2:{1,0,4}
3:{7,9,1,4}
4:{5,6,3,2}
5:{0,4,10,8}
6:{4,7,11,1}
7:{6,3,8,9}
8:{11,1,5,7}
9:{3,10,7,11}
10:{9,11,0,5}
11:{10,8,9,6}
以上のようになります。
ここから
(1)一番短いリストを選びます。
(ここでは0と2のリストが要素数が3つしかないのでランダムでどちらか選ぶ。
仮に0を選択したとする。)
0→
(2)次に0を選んだので0~11までのリストの中から0を全て消します。
(0を消した事によりリストの長さが変わります。)
(3)0の中のリストの中の要素2,5,10を見てこの中でリストの一番短いリストを選びます。
(ここでは2が一番リストが短いので(先ほど0を消したのでリストの長さ2)2を選ぶ。)
0→2→
(4)2を選んだので0~11までのリストの中か2を全て消す。
(5)2の中のリストの中の要素1,4を見てこの中でリストの一番短いリストを選びます。
(ここでは1と4のリストの長さが等しいのでランダムでどちらかを選ぶ。)
0→2→1
(4)に戻り、同様の作業を繰り返します。
0→2→1→8→5→4→6→7→3→9→10→11
最終的に↑のような結果を得たいのですが、色々考えてみたのですが全然できません。
どなたか教えて頂けないでしょうか?(もしくはヒントだけでも頂けたら助かります。)
よろしくお願い致します。
お礼
VBScriptでは、そのままvector/listとして使えるようなクラスはない、というご意見 (もしくは事実) ですね。了解です。ありがとうございました。 Javaのサンプルや参考URLもありがとうございました。