![]() |
Как установить процент выпадения какого-либо числа?
Как установить процент выпадения какого-либо числа?
|
Код AS3:
|
Цитата:
А как же фабрика фабрик классов? :) |
Это вызов!
Хорошо. У меня в играх используется система предсказуемого рандома. На протяжении некоторого периода всегда выпадет XX раз одно число и YY раз другое. Реализация проста: на старте наполняем массив XX количеством первых чисел и следом YY количеством вторых. После этого на протяжении игры делаем все по кругу: 1. Взболтали массив; 2. Установили индекс в ноль; 3. Каждый раз выдаем элемент массива с текущим индексом, после чего индекс++; 2. Как доберемся до конца массива, идем в п.1; |
Цитата:
|
Для любого будет действовать.
И это не столько код, сколько запрограммированный ответ на вопрос "ну чо там, сейчас выпадет то самое число, которое я тут держу наготове и которое должно выпадать с вероятностью myPercent, или нет?!". Куда это вставлять — тебе видней. |
ЗУБЯТИНА , Вам сначала вообще надо разобраться где лучше писать сценарии Ваших приложений.
|
Цитата:
|
Скорость здесь не критична. А если и критична, что нужно помнить, что родной Math.random() довольно тормозная штука и его следует заменять на самодельный.
Ну и главное. Мой подход выдает порции с гарантированным процентом выпадения случая. |
Цитата:
|
Велосипед не мой:
Код AS3:
|
В чем прикол?
|
О чем речь?
|
О велосипеде, который ты скинул
в чем суть подобных манипуляций? Код AS3:
|
А чтоб я знал. Написал же, велосипед не мой. Работает отлично, я пользуюсь.
- разброс субъективно лучше, чем в нативном; - скорость (вроде тесты делали) в разы выше; - ну и самое главное — у него выдача полностью зависит от посева; |
а что за класс MyUtils?
|
А блин )) сейчас исправлю. Нет там ничего такого.
|
Вложений: 1
Лучший генератор это http://www.math.utah.edu/~pa/Random/Random.html
Код AS3:
Код AS3:
|
замерил время - вышло что самый быстрый таки родной :D
Цитата:
|
Цитата:
Код:
test1 810 |
а в релизном трейсы не работают
|
выводи в TextField
|
не знаю у кого как, но у меня в релизном кажет:
Цитата:
Код AS3:
Код AS3:
вывод - нефиг изобретать велосипед :D |
Цитата:
|
Вложений: 1
Нашел еще один вариант:
Код AS3:
Код AS3:
Код AS3:
|
Цитата:
Во-вторых, лучше, например, в деле перемешивания небольших массивов. Натив мешает отвратительно. В-третьих, лучше уже хотя бы потому, что имеет повторяемость при одном и том же seed (это ты и сам указал чуть позже, да) Такова практика. Алгоритмы "идентичные нативному" беру на карандаш. Но опять же, как раз во втором пункте они работают хуже, так что я даже рад тому, как мешает выбранный мной когда-то первый вариант. Годная тема поднялась! Много полезного ) топикстартер, поди, в шоке! |
Цитата:
|
Требование: "максимально рассыпчато" перемешать массив из N нулей и M единиц.
– Вариант, который выбрал я и который кочует у меня из AS в JS — отлично! – Нативный рандом — кол! |
а ну это критерий нравится/не нравится, его не проверишь
|
Нет. Это критерий минимальной длины неперемешанных рядов единиц и нулей.
|
видимо тут как раз и играет свою роль "неслучайность" твоего метода.Для 0 и 1 оно может и работает, но в какой-нибудь рулетке или покере его лучше не использовать.
|
Zebestov Ты по шуму посмотри, выбранный тобой метод дает картинку из линий.
Как минимум варианты Код AS3:
Код AS3:
чисел 9301, 49297, 233280 даже в таблице часто используемых параметров для Линейного конгруэнтного метода нету, стоило бы задуматься |
Nooob, зачем мне смотреть на шум, если в моем случае он ничего не решает?
|
Zebestov, Есть стандартные способы определения "качества" псевдо-рандома, один из них по шуму, шум не должен содержать явных паттернов и иметь достаточную плотность, только в этом случае вероятность будет вероятнее. Если что то советуешь то советуй правильно, с указанием первоисточников и как и зачем оно работает. а не белеберду описанную кем-то где-то.
|
Nooob, ну не навязывай мне плохой вариант только потому, что какие-то там "стандартные способы определения" и "шумы" говорят в его пользу где-то за пределами моей задачи. Ведь я не математик-теоретик. Мне нужен подходящий инструмент для лучшего решения конкретного спектра задач, и я его нашел.
|
Как ты определяешь плохой вариант от хорошего?
чем используемый тобой вариант из The Central Randomizer: Код AS3:
Код AS3:
Код AS3:
|
Цитата:
|
Zebestov, Nooob говорит что твой вариант неуниверсален.Он работает только в твоем(весьма специфичном) случае.Кто-нибудь прочтет, что он якобы быстрее штатного,вставит в свой покер и вылетит в трубу)
|
undefined, Nooob не слышит собеседника — с ним же никто не спорит! И даже более того )
|
Zebestov Я тебя слышу и понимаю, но возможно ты меня не понял что я попросил код или вариант для выявления "максимальной рассыпчатости при минимальной длине неперемешанных рядов единиц и нулей", так как мне кажется что любой верный псевдо-рандом должен так же верно справляться с этой задачей
|
| Часовой пояс GMT +4, время: 16:18. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.