![]() |
Генератор случайных чисел без повтора
Здравствуйте, пользователи форума flasher.ru!
Хочу задать вопрос и надеюсь на ваш ответ:) Как создать генератор случайных чисел, я знаю. Но мне непонятно, как сделать, чтобы числа не повторялись?:( |
Если у вас не дробные случайные числа, то записывайте "1" (или что угодно) в массив, в поле с индексом нового случайного числа. Если, когда вы получаете новое число, вы обнаруживаете, что в массиве под этим индексом уже есть запись, то генерите еще раз число, пока в массиве не останется пустых элементов (если задан диапозон случайных чисел). Это проще, чем сохранять в массив новое случайное число, и потом каждое следующее сравнивать со всем массивом.
Если дробные числа, то домножайте их на несколько порядков, чтобы получились целые. Я не уверен, что такой способ будет оптимальным, может вам еще что-нибудь подскажут. :) |
Вы не совсем поняли
Генератор встроен в функцию, которая повторяется раз в секунду, т. е. раз в секунду генерируется новое число. Надо чтобы ОДНО число повторялось ОДИН раз. Например, если есть пять чисел, то они шли так: 1 2 3 4 5 или 3 2 4 5 1. |
Создайте массив [ 1, 2, 3, 4, 5 ]. И выбирайте из него числа. Выбранное, удаляйте из массива через Array#splice().
|
Я начинающий пользователь и ПОКА ЧТО мало что понимаю в массивах:(
Нет конечно я знаю как создать:) Но если Вы скинете код, то мои познания увеличатся!:):D |
Код AS1/AS2:
|
13:26
проверяю код... Добавлено через 2 минуты 13:28 Ура!!! Всё работает!!! Спасибо всем, кто мне помог! Правда, есть небольшие нюансы, но их я додумаю сам! |
Код AS1/AS2:
Вот сравнение скорости: Код AS1/AS2:
getRandomNum1 3ms getRandomNum2 40ms Только в моем способе из-за рекурсии могут быть проблемы. Если я в чем-то ошибаюсь — поправьте :) |
Увы, не получилось...:(:confused:
А как сделать, чтобы згачения не выводились, а их принимало текстовое поле?:) Помогите новичку плиз!:):) |
Цитата:
Если значений не много, то лучше из массива выбирать: Код AS1/AS2:
|
| Часовой пояс GMT +4, время: 02:35. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.