Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Создание случайных неравных целых чисел (http://www.flasher.ru/forum/showthread.php?t=121942)

Slamk2 26.02.2009 20:24

Создание случайных неравных целых чисел
 
Как создать N неравных целых чисел в определённом диапазоне?
Например нужно создать два неравных числа от 0 до 3;

var x = random(4);
var y = random(4);
................

FaNaT1K 26.02.2009 21:50

Цитата:

Сообщение от Slamk2 (Сообщение 801422)
Как создать N неравных целых чисел в определённом диапазоне?
Например нужно создать два неравных числа от 0 до 3;

var x = random(4);
var y = random(4);
................

случайные числа он N до M вычисляются по формуле
Код AS1/AS2:

(M-N)*Math.random()+N;

а в твоем случае, я думаю что примерно так.
Код AS1/AS2:

var x:Number=(3)*Math.random();
var y:Number=null;
onEnterFrame=function():Void{
  y=(3)*Math.random();
  if(y==x){
      y=(3)*Math.random();
};

вот, где то так...я думаю, что
если надо округленное число, то тут c функцией Math надо использовать метод округления : round(), еще есть floor() и ceil().

Slamk2 26.02.2009 22:17

Цитата:

var x:Number=(3)*Math.random();
var y:Number=null;
onEnterFrame=function():Void{
y=(3)*Math.random();
if(y==x){
y=(3)*Math.random();

};
А есле результат функции опять тоже число что x = y ?

qazwsx 26.02.2009 22:50

Код AS1/AS2:

var numbersRange:Array = [];
var range:Number = 5;
 
for(var i:Number = 0; i < range; i++)
{
        numbersRange.push(i);
}
 
function getRandom():Number
{
        var index:Number = Math.floor(Math.random() * numbersRange.length);
        var ret:Number = numbersRange[index];
        numbersRange.splice(index, 1);
 
        return ret;
}
 
trace(getRandom());
trace(getRandom());
trace(getRandom());
trace(getRandom());


Slamk2 26.02.2009 22:55

Пасиба!!!

FaNaT1K 27.02.2009 00:13

Извиняюсь,...за предыдущий пост =)

У меня вот так еще получилось)
Код AS1/AS2:

var x:Number = Math.floor((3)*Math.random());
var y:Number = Math.round((3)*Math.random());
if (y == x) {
        y=Math.ceil(y+0.5);       
}
trace(y);
trace(x);



Часовой пояс GMT +4, время: 23:28.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.