Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Случайное положительное/отрицательное число (http://www.flasher.ru/forum/showthread.php?t=138900)

Universe 18.04.2010 22:06

Случайное положительное/отрицательное число
 
Как сделать так чтобы случайно выпадало то положительное, то отрицательное число, но не ноль?

Zik. 18.04.2010 22:18

Код AS3:

Math.floor(Math.random() * 100) - Math.floor(Math.random() * 100);


Universe 18.04.2010 22:40

Нет, такой способ всеравно выдаёт ноль!

Diestro 18.04.2010 22:48

Код AS3:

Math.random() - 0.5


sltt 18.04.2010 22:50

Код AS3:

for (var i=0; i<10; i++){
        trace( Math.floor(Math.random() * 100) - Math.floor(Math.random() * 100) )
}

Код:

-18
-32
-26
74
16
-85
86
8
26
-6


mikhailk 18.04.2010 22:56

вар 1

Код AS3:

private function nonZeroRandomNumber() {
        var nonZeroNumber:int = 0;
        while (nonZeroNumber==0) {
                nonZeroNumber = -100 + 200 * Math.random();
        }
        return(nonZeroNumber)
}

вар 2

Код AS3:

        var sign:int = ( int( Math.random()*2 )-0.5 ) * 2;        // -1 или 1
        var absValue:int = 1 + int( Math.random() * 100 );        // 1..100
        var nonZeroNumber:int = sign * absValue;


Xero201 19.04.2010 00:36

Код AS3:

while(!(result=int((Math.random()-Math.random())*100)));//:)


VVall 19.04.2010 02:47

Можно примерно так:

result=(Math.random()*99+1)*(Math.random()<.5?-1:1);

wvxvw 19.04.2010 03:18

Зачем 2 раза рандом вызывать?
Код AS3:

function r():int
{
        var n:int = Math.random() * 200 - 100;
        if (!n) return 42;
        return n;
}

:)

Xero201 19.04.2010 10:52

зачем подыгрывать положительным числам и числу 42 вчастности?) (при 10 тыс. запусков 42 выпадает в среднем 150 раз, а остальные числа по 50 раз).
Лучше объединить:
Код AS3:

function r():int{
        var n:int = Math.random() * 200 - 100;
 
        if (n) return n;
        else  return (Math.random()*99+1)*(Math.random()<.5?-1:1);
}



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

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