![]() |
random numbers или про массивы
Вложений: 1
проблема, нужно чтото типа жеребъевщика, задаеш число, он генерирует числа от 1 до этого числа
проблема в том чтобы эти чистла не повторялись не знаю че делать, помогите вот что получилось, пока сделал толлько чтбы в паре чисел не было повторов, кароче смотрите сами, исходник там же ъ вот она или с массивами,думаю это дело нужно делать с ними)) |
чтоб цифры не повторялись...
RANDOMIZE :D
(qBasic рулит!) |
RANDOMIZE
а поподробнее?
|
это шутка была...
а что бы не повторялись - делай цикл-проверку. У меня сейчас времени нет, пример не смогу дать. |
не пойдет
a1 = random(b)+1;
c1 = random(b)+1; if (a1 == c1) { a1 = random(b); } если так, то можно сделать чтобы в паре не повторялиь, а мне нада чтобы все числа были разные, думаю больно большой код получится) если чисел 20 или 30они все равно повторяются) |
//init part(add to the first frame!)
max = 26;//number used = []; //main part number = random(max)+1; for(var some in used){ if(used[some] == number) { it_used = 1; break; } } if(it_used != 1){ trace(number); used.push(number); } it_used = null; должно работать, но не проверял.... |
Мой вариант:
max=30; function order (a, b) { var name1 = random(max)+1; var name2 = random(max)+1; if (name1 < name2) { return -1; } else if (name1 > name2) { return 1; } else { return 0; } } r=new Array(); for (n=0; n<max; n++){ r[n]=n+1 }; r.sort(order); r.sort(order); r.sort(order); r.sort(order); r.sort(order); |
вобще говоря, мне часто приходилось сталкиваться с подобными задачами, поэтому я давно для себя написал универсальный класс.
Код:
Object.prototype.RND=function(obj) {значит как работать, все просто: есть массив со значениями, которые необходимо случайно выбирать с условием уникальности выбора. притом что значения массива могут быть любого типа :) ну например: values=["string",2,3,6,7,"c",8]; далее создаем обьект: myRandom=RND(values); для случайного и уникального выбора значения: myVar=myRandom.random(); когда выбор будет исчерпан, функция будет возвращать null для восстановления набора значений: myRandom.randomize(); узнать сколько осталось "нетронутых" значений: myRandom.length пример: Код:
values=[1,2,3,4,5,6,7,8,9]; |
звиняйте, в сорс вкралась ошибка :)
тут правильно Код:
Object.prototype.RNDGenerator=function(obj) {Код:
myRandom=new RNDGenerator([1,2,3,4,5,6,7,8,9]); |
Хочу тоже поучаствовать :) Класов правда не сподобил, но два кусочка положу :p
Просто случайное число с проверкой чтоб подряд не шли. do { new=random (n); } while (new==old); old=new; А вот это интересный кусосочек - просто от сердца отрываю :D Создает псевдослучайный массив. ar=[]; for (i=0; i<20; ++i) { ar.splice(random (10),0,i); } trace (ar); |
| Часовой пояс GMT +4, время: 18:16. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.