次のように配列に数値を挿入したい:
- 数値は 1 ~ 5 の間である必要があります
- 最初の数字を 1 にすることはできず、2 番目を 2 にすることもできません。
- 選択した番号を別のインデックスに挿入することはできません
例えば:
[1,2,3,4,5]
最初の数字をランダム化します: 1 [条件 2 が存在しません: 1 は最初のインデックスに存在できないため、再度ランダム化して 4 を得ました)。
新しい配列:
0 - 4
1 -
2 -
3 -
4 -
2番目のセルに数字をランダム化して4になったが、最初の要素に4が挿入された[条件3]ので、再度ランダム化して2になったが、2番目の要素に2はできない[条件2]ので、ランダム化する再び5を得た。
0 - 4
1 - 5
2 -
3 -
4 -
等
数字(1〜5)でvecを初期化しようとしました:
var array = new Array();
array[0] = 1;
array[1] = 2;
array[2] = 3;
array[3] = 4;
array[4] = 5;
var newarr = new Array();
function getRandomInt (min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
}
$(document).ready(function() {
for (var i = 0; i < 5; i++) {
var rand;
// check condition 2
while((rand = getRandomInt(1, 5)) == (i+1));
newarr[i] = rand;
//array.splice(i, 1);
}
// print the new array
for (var i = 0; i < 5; i++) {
alert((i+1) + '->' + newarr[i]);
}
});
コードに条件 3 を追加する必要があります。
どんな助けでも大歓迎です!