Модераторы: SoWa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рандомизатор... 
:(
    Опции темы
Volchara
  Дата 25.12.2006, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 11.12.2006
Где: Украина, Киев

Репутация: нет
Всего: нет



Как бы вы создали рандомизатор не прибегая к внутренним функциям флеша... 

Вот я придумал через время, милисикунды, ведь они каждую милисекунду изменяются... и хотя вариантов всего 1000, но он работает: 

Код:
    
Код

function random_round(N, M, Nround) { 
   if (N == undefined) { 
      N = 0; 
   } 
   if (M == undefined) { 
      M = 0; 
   } 
   if (Nround == undefined) { 
      Nround = 0; 
   } 
   var t:Date = new Date(); 
   var s = t.getMilliseconds(); 
   s = Math.pow(s, 5); 
   var r = Number("0."+s); 
   if (N != 0 || M != 0) { 
      r = (M-N)*r+N; 
   } 
   var kof = Math.pow(10, Nround); 
   var ran = Math.round(r*kof)/kof; 
   return ran; 

trace(random_round(-10,10,3));



И ещё в нём можно указывать диапазон получаемых значений, и число цыфр после запятой после округления...

Это сообщение отредактировал(а) Volchara - 26.12.2006, 17:02
PM MAIL WWW ICQ   Вверх
Jlekc
Дата 26.12.2006, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 520
Регистрация: 10.2.2005
Где: Leopolis

Репутация: нет
Всего: 4



Цитата(Volchara @  25.12.2006,  23:29 Найти цитируемый пост)
Вот я придумал через время ...

это уже запотентовано)
любой рандом базируеться на проекции времени
двай чтот новое
ЗЫ: а зачем?


--------------------
PM MAIL ICQ   Вверх
Volchara
Дата 26.12.2006, 08:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 11.12.2006
Где: Украина, Киев

Репутация: нет
Всего: нет



Jlekc, да так, темка на одном форуме выплывала, как можно сделать рандом не прибегая к системным рандомизаторам... вот мне интересно стало с тех пор... как...
PM MAIL WWW ICQ   Вверх
AlDev
Дата 26.12.2006, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 8
Всего: 50



PM MAIL WWW ICQ YIM MSN   Вверх
Volchara
Дата 26.12.2006, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 11.12.2006
Где: Украина, Киев

Репутация: нет
Всего: нет



Всё равно не пойму как на AS можна сделать такой рандомизатор, приведите хоть маленький пример...
PM MAIL WWW ICQ   Вверх
IAV
Дата 28.12.2006, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 4.7.2005

Репутация: 2
Всего: 3



Код

rand = function (x) {
    s = 71*x;
    s = s*8192 & s;
    return (1-((s*(s*s*15731+789221)+1376312589) & 0x7fffffff)/1073741824);
};
var dt = 0, stp = .0991;
_root.onEnterFrame = function() {
    dt += stp;
    trace(rand(dt));
}

кинуть в первый кадр, при таком значении stp функция выдает неплохую последовательность. Правда, в этой функции есть небольшой глюк - значения stp больше 1 лучше не брать    
PM MAIL   Вверх
szz
Дата 4.1.2007, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1289
Регистрация: 31.5.2005
Где: Moscow, Jerusalem

Репутация: 6
Всего: 33



IAV, а почему математика именно такая? Т.е. константы. В чем прикол 71-го, 8192-х и остальных констант? Почему, например, не 73?
И не проверял ли ты свою функцию на популяцию, нет ли закономерностей?


--------------------
PM   Вверх
IAV
Дата 5.1.2007, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 4.7.2005

Репутация: 2
Всего: 3



Функцию выдрал давным-давно из какой-то интры smile По поводу коэффициентов -  1073741824,  например, используется для масштабирования результирующего числа в пределы от -1 до 1, от выбора остальных сильно зависит емкость последовательности и ее "случайность". На наличие закономерностей не проверял - нечем, однако ежели кто проверит буду весьма признателен smile .
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Flash"
AlDev
SoWa
  • Если вы хотите предложить кому-либо работу, то пишите или в личку, или оставляйте сообщения в специально предназначеном для этого форуме "Объявления о найме специалистов"
  • Один вопрос - одна тема. Не надо переходов от одного вопроса к другому.
  • Если вы хотите показать какой-нибудь ваш мульт, причём показать, а не предоставить исходник, то вам сюда
  • Вопросы по разработке интернет-приложений на Flex и вопросы по MXML пишите в раздел Flex
  • Смотрим в будущее. ActionScript 3 обсуждается в форуме ActionScript 3
  • Новости из мира Flash.
  • New! [code=ascript][/code] - подсветка ActionScript + wikipedia help

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | ActionScript 1,2 | Следующая тема »


 




[ Время генерации скрипта: 0.0964 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.