Страница 1 из 1

Генератор неповторяющихся случайных чисел

Добавлено: 15 мар 2007, 22:58
ASZhdanov
Уважаемые господа программисты, помогите пожалуйста составить на JavaScript генератор случайных чисел.
Но условия такие:
Допустим есть набор чисел от 1 до 10 из этого набора генератор выбирает какое-то число, допустим 2, далее генератор должен уже выбирать из 9 чисел, а число 2 никоим образом не должно повториться.

Re: Генератор неповторяющихся случайных чисел

Добавлено: 16 мар 2007, 07:50
sin
у меня такая вот фунцкия на java получилась, может пригодится.

public static void main(String[] args) {
// TODO Auto-generated method stub
int razmer = 10;
int [] mass =new int [razmer] ;
Random rand = new Random();
Arrays.fill(mass,-1);
int j;
for (int i = mass.length -1 ; i >= ;) {
j = rand.nextInt(razmer);
if (mass[j]==-1) {
mass[j]=i;
int key = 0;
for (int k = 0; k < mass.length ;) {
if (mass[k] == -1) {
i--;
k = mass.length;
key=1;
}
k++;
}
if (key == 0) {
i = -1;
}

}
}
System.out.println(Arrays.toString(mass));

}

Re: Генератор неповторяющихся случайных чисел

Добавлено: 16 мар 2007, 12:21
Ster
Есть один скрипт:

<script language="javascript">

function RndPassword(len) {

var str, s, r;

str = "0123456789!@#$]^&*()_[qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
s = "";

while (s.length < len) {
r = Math.floor(Math.random()*(str.length));
s += str.substring(r, r + 1);
}

return(s);

}

function MakePasswd() {
var passwd;
passwd = RndPassword(8);
document.forms[0].passwd.value = passwd;
}
</script>


Здесь из последовательности символов, записанных в переменную str, выбираются символы в зависимости от длины пароля.
Просто надо условие добавить, что бы проверял на повторяемость символы.

Re: Генератор неповторяющихся случайных чисел

Добавлено: 16 мар 2007, 20:04
sin
добавь еще один массив равный по длине исходному,
потом Arrays.fill(newmas,0);


while (s.length < len) {
r = Math.floor(Math.random()*(str.length));
newmas[r]++;
if (newmas[r] !=0)
{s += str.substring(r, r + 1);
}
}