Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Проблемы с random (http://www.flasher.ru/forum/showthread.php?t=145957)

goldlider 24.10.2010 21:57

Проблемы с random
 
Имеется такой код:
Код AS3:

var numElem:Number = 10;
 
for (var i:int = 0; i < numElem; i++)
{
        var temp:MovieClip = new block;
        temp.x = Math.random()*550;
        temp.y = Math.random()*400;
        trace(Math.random());
        addChild(temp);
}

В цикле на stage размером 550x400 случайным образом добавляются мувики. Вроде бы все ясно. Но не понятны вот эти две строчки:

Код AS3:

temp.x = Math.random()*550;
temp.y = Math.random()*400;

Я знаю, что random от 0 до 1. Но ведь random может принять значение равное, к примеру, 0,0001 и тогда наш мувик не будет виден на сцене ? Хотя этими двумя строчками описанными выше, я указывал случайное расположение наших мувиков в границах нашей сцены. :umnik2:

cleptoman 24.10.2010 22:04

это почему он не будет виден?
и в чем, собсно проблема?

goldlider 24.10.2010 22:15

Sorry !! Ошибся. Неправильно умножил. Я подумал, что при значении начинающимися с
0,0001 мувик по оси x и оси у будет иметь минусовые значения. Но это конечно же глупо.:rolleyes:

Angry_Basic 29.11.2010 20:40

всем здрасьте! можете помочь с функцией Math.random() ? если не трудно, киньте текстовый файлик с 10 000 чисел, выданными этой функцией :)
мыло: basic.mehmat@gmail.com
буду очень признателен !

iNils 29.11.2010 20:54

Цитата:

всем здрасьте! можете помочь с функцией Math.random() ? если не трудно, киньте текстовый файлик с 10 000 чисел, выданными этой функцией
А почему нельзя самому сгенерить эти значения?

Angry_Basic 29.11.2010 20:59

я не программирую на ActiveScript :) пока разберусь, что к чему - уйдет вся ночь, а у вас это займет минут 5

iNils 29.11.2010 21:06

Вложений: 1
2 + 9998 (трейс ide не хочет показывать больше 9998, поэтому в два прохода)

А код такой
Код AS3:

var str:String = '';
for (var i:int = 0; i < 10000; i++) {
        str += Math.random ()+ '\r';
}
trace(str);


Angry_Basic 29.11.2010 21:13

огромное спасибо !
может еще подскажете, на чем основан Math.random() и есть ли у него период ? :) на форумах нашел лишь общие недовольства этой функцией, но ничего конкретного

КорДум 29.11.2010 21:16

Вообще рандом - это косинус (синус?) от текущей секунды. Зная текущую секунду, можно узнать, какое будет число через секунду после. Это грубо говоря. Поэтому-то его и называют псевдо-рандомом.

iNils 29.11.2010 21:30

20000
 
Цитата:

Вообще рандом - это косинус (синус?) от текущей секунды.
Ну это точно не секунда.
Код AS3:

for (var i:int = 0; i < 10; i++) {
        var d:Date = new Date ();
        trace (d.toLocaleTimeString ().split (" ")[0] + d.milliseconds, Math.random ());
}

Код:

08:28:49843 0.8097136490978301
08:28:49843 0.33294321596622467
08:28:49843 0.6392828719690442
08:28:49843 0.9762685438618064
08:28:49843 0.7883037975989282
08:28:49843 0.2682868931442499
08:28:49843 0.7210153164342046
08:28:49843 0.28686058800667524
08:28:49843 0.8446443355642259
08:28:49843 0.7295514871366322

Секунды и миллисекунды совпадают, а рандом разный.


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

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