Уважаемые господа программисты, помогите пожалуйста составить на JavaScript генератор случайных чисел.
Но условия такие:
Допустим есть набор чисел от 1 до 10 из этого набора генератор выбирает какое-то число, допустим 2, далее генератор должен уже выбирать из 9 чисел, а число 2 никоим образом не должно повториться.
Генератор неповторяющихся случайных чисел
Модератор: Duncon
у меня такая вот фунцкия на 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));
}
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));
}
Есть один скрипт:
<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, выбираются символы в зависимости от длины пароля.
Просто надо условие добавить, что бы проверял на повторяемость символы.
<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, выбираются символы в зависимости от длины пароля.
Просто надо условие добавить, что бы проверял на повторяемость символы.
При правильном подборе литературы в туалете можно получить неплохое образование.
добавь еще один массив равный по длине исходному,
потом 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);
}
}
потом 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);
}
}