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

Обсуждение вопросов клиентского программирования.

Модератор: Duncon

Ответить
ASZhdanov
Сообщения: 2
Зарегистрирован: 30 окт 2006, 21:08
Откуда: Казахстан

Уважаемые господа программисты, помогите пожалуйста составить на JavaScript генератор случайных чисел.
Но условия такие:
Допустим есть набор чисел от 1 до 10 из этого набора генератор выбирает какое-то число, допустим 2, далее генератор должен уже выбирать из 9 чисел, а число 2 никоим образом не должно повториться.
sin
Сообщения: 9
Зарегистрирован: 16 фев 2007, 21:56

у меня такая вот фунцкия на 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));

}
Ster
Сообщения: 6
Зарегистрирован: 17 окт 2006, 07:53
Контактная информация:

Есть один скрипт:

<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, выбираются символы в зависимости от длины пароля.
Просто надо условие добавить, что бы проверял на повторяемость символы.
При правильном подборе литературы в туалете можно получить неплохое образование.
sin
Сообщения: 9
Зарегистрирован: 16 фев 2007, 21:56

добавь еще один массив равный по длине исходному,
потом 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);
}
}
Ответить