Войти на сайт

Авторизация, ждите ...
×
Правила раздела:
1 Задавайте конкретные вопросы. Для болтовни есть свободный раздел.
2 По возможности давайте конкретные ответы.
3 Один вопрос=одна тема. Если хотите задать ещё вопрос, то начинайте новую тему.
4 Название темы должно составлять сам вопрос, и быть максимально конкретным. Рекомендуется начинать тему словами "Как", "Что", "Почему". А первый пост повторяет вопрос и даёт расширенные сведения.
5 Рекомендуется указывать версию мейкера (2000, 2003, RMXP, RMVX, ACE, IGM, и.т.д.. Это важно, и всё равно ведь спросят.
6 Темы "Пара вопросов", "Помогите", и подобные им - самый лёгкий путь к бану.
7 Поиск находится вверху справа.
А. Названия подразделов этого раздела уточняются. Советы принимаются.

ТЕМА: Есть ли погрешность в выпадении рандомного лута?

Есть ли погрешность в выпадении рандомного лута? 9 года 7 мес. назад #73353

  • zmeelov66
  • zmeelov66 аватар
  • Вне сайта
  • Светлый дракон
  • Патологический бездельник ^_^
  • Сообщений: 504
  • Спасибо получено: 369
  • Проект месяца 3 место2 место Готв
Если точнее то, к примеру, есть противник "летучая мышь", в графе рандомного лута указанн какой-нибудь
супер-посох который выпадает с вероятностью 10%(или 1 к 10).Есть ли шанс, что после убийства 10 противников у игрока так и не окажется посоха?Иными словами, возможны ли сбои в системе или же она работает именно по принципу "10 противников - один посох"?Да, и ещё, если она все же работает безошибочно, то посох будет выпадать именно из определенного противника или из случайного, но те не менее одного из этих 10?
Сам по себе вопрос дурацкий, но все же хочется узнать так это или нет?
Администратор запретил публиковать записи гостям.

Есть ли погрешность в выпадении рандомного лута? 9 года 7 мес. назад #73357

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1704
  • Спасибо получено: 2729
  • 3 место ГотвОрганизатор конкурсовКомпозиторОратор2 место Победитель конкурса1 место в ГотвУчитель
Интересный вопрос:)
По правилам теории вероятностей:
убит первый враг - вероятность 10%, что в нем выпадет посох, и 10% вероятность того, что при убийстве остальных врагов выпадет посох;
убит второй враг - вероятность 10% что в нем выпадет посох и 10% вероятность того, что при убийстве остальных врагов выпадет посох;
убит третий враг - вероятность 10% что в нем выпадет посох и 10% вероятность того, что при убийстве остальных врагов выпадет посох и т.д.
Т.е. теоретически может и из ста врагов так и не выпасть посох, а может наоборот у первых двух выпасть по посоху.
В программе,я думаю,всё также:)
Последнее редактирование: 9 года 7 мес. назад от yuryol.
Администратор запретил публиковать записи гостям.

Есть ли погрешность в выпадении рандомного лута? 9 года 7 мес. назад #73359

  • Amphilohiy
  • Amphilohiy аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 547
  • Спасибо получено: 666
  • 2 место ГотвПобедитель Сбитой кодировкиУчительПрограммист RubyОратор
В рандоме погрешность есть всегда. Даже если кому-то выпал идеальный случай, то другому он не выпадет. К примеру:
Играл я в одну игру на мукере. Там в обучении была целая комната монстров, которых надо было обязательно зачистить. Из них выпадали зелья здоровья. Битвы были один на один без способностей. В итоге я проиграл, т.к. ни одного зелья мне так и не упало. О шансах дропа, увы, не знаю.

P.S. Хотя есть закон больших чисел, например. Если при очень большом количестве боев, и относительно нормальном шансом дропа конкретного лута, то к концу игры количество выпавшего лута будет стремится к теоретическим расчетам. Но не уверен, что такие шансы можно отнести к луту, который из 10 монстров падает с вероятность 15%, кому-то точно не упадет (хоть и в теории должен).
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Последнее редактирование: 9 года 7 мес. назад от Amphilohiy.
Администратор запретил публиковать записи гостям.

Есть ли погрешность в выпадении рандомного лута? 9 года 7 мес. назад #73360

  • Amphilohiy
  • Amphilohiy аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 547
  • Спасибо получено: 666
  • 2 место ГотвПобедитель Сбитой кодировкиУчительПрограммист RubyОратор
Немного повспоминал ТерВер, поколдовал чутка, вспомнил формулу Бернулли:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

вероятность появления события ровно k раз при n независимых испытаниях, p - вероятность появления события при одном испытании.
Нашляпал чутка кода для своего же примера (10 монстров, 15% дроп)
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

Сам результат:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

:total - просто проверка формулы (вероятность, что тебе упадет предмет не больше 10 раз, т.е. 100%. Выч. техника еще не идеальна, такая погрешность допустима)
От 0 и до 10 расписаны вероятности выпадения ровно n раз. Примерно 20% игроков предмета не получат.

Опять же P.S. Причем из 100 первых прохождений количество прохождений в котором лут не выпадет будет варьироваться в пределах 20, где-то от 0 до 100. Вероятность вообще злая штука, если хочешь дать игроку предмет, то лучше дай при определенных обстоятельствах (хотя бы подсчитывай количество убитых врагов, из которых он должен выпать, и при нужном количестве дай предмет).
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Последнее редактирование: 9 года 7 мес. назад от Amphilohiy.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: DeadElf79, zmeelov66

Есть ли погрешность в выпадении рандомного лута? 9 года 7 мес. назад #73362

  • Amphilohiy
  • Amphilohiy аватар
  • Вне сайта
  • Светлый дракон
  • Сообщений: 547
  • Спасибо получено: 666
  • 2 место ГотвПобедитель Сбитой кодировкиУчительПрограммист RubyОратор
Нафлудил я знатно, конечно, но конкретно кусок кода из Game_Enemy (94 строка), который выдает лут с одного убитого монстра:
ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]

В двух словах нас интересует
if di.kind > 0 && rand * di.denominator < drop_item_rate
Если задан тип выпадаемого предмета, и случайное число [0, 1) умноженное на знаменатель(1/N) меньше вероятности выпадения предмета (1 для обычной патьки, 2 для тех, у кого двойной лут, это в 106 строке).
В общем тут кроме обычного ГСЧ (генератора случайных чисел) других условий и нет.

Основную суть объяснил, но если вдруг охота самому понять понять написанный код, это к статье Iren_Rin о массивах (в основном про inject), и в справке искать RPG::Enemy::DropItem. Ну и if then else знать, и возможно тернанрный оператор. Не обращайте на меня внимания, меня немного прет :laugh: .
Я верю, что иногда компьютер сбоит, и он выдает неожиданные результаты, но остальные 100% случаев это чья-то криворукость.
Последнее редактирование: 9 года 7 мес. назад от Amphilohiy.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: DeadElf79, Ren310, zmeelov66
Время создания страницы: 0.226 секунд