Формула получения очков Алхимика

Тема в разделе "Торговцы и Кузнецы", создана пользователем Хьюстон Шурик, 18 июн 2023.

  1. Добрый день.
    Большинство механизмов в Ро вполне понятно расписаны, во всех базах, кальках есть формулы, простые или не очень. Однако, когда я читал про алхимика и варку слим потов, у меня возник вопрос про начисление очков. В большинстве баз написано следующее:
    + 1 за 3 подряд сваренных пота
    + 3 за 5 подряд сваренных пота
    +10 за 7 подряд сваренных пота
    +50 за 10 подряд сваренных пота
    Конкретный механизм не указан. Собственно, выяснением, как конкретно начисляются очки, а также вопросом прогноза получаемых очков я занялся.

    С первым оказалось всё довольно просто. Спасибо @Hito , он экспериментально подтвердил следующий механизм начисления очков:
    +1 очко за 3 подряд сваренных пота. Чтобы получить ещё +3 очка, необходимо сварить ещё 2 пота без фейла. Чтобы получить ещё +10 очков, надо сварить ещё 2 пота без фейла и так далее. Если зафейлить, то всё начинается сначала, с трёх потов.

    Следующий вопрос, как это знание применить на практике. Сколько очков я получу за N сваренных потов? Для решения этой проблемы на языке программирования Питхон были написаны следующие функции:
    Код:
    import numpy as np
    import random as rnd
    
    def bol(Ch):
        R = rnd.random()
        if R <= Ch/100: return 1
        else: return 0
    
    def Varka6(N,Ch):
        List = np.array([[1,3,10,50],[3,5,7,10]])
        s = 0
        j = 0
        P = 0
        for i in range(N):
            Cp = bol(Ch)
            if Cp == 1: j+=1
            else:
                j = 0
                s = 0
            if j >= List[1,s]:
                P += List[0,s]
                if s<3: s = s+1
                else:
                    s = 0
                    j = 0
        return P
    С помощью последний функции был построен график зависимости среднего количества очков за одну попытку от шанса:
    upload_2023-6-18_15-59-13.png
    Так как теоретическое описание этого графика для меня является нетривиальной задачей, я решил найти простую формулу, дающую приближённое значение.
    Я взял диапазон от 80 до 100 процентов и аппроксимировал полученные точки полиномом 2-ой степени. Вот график:
    upload_2023-6-18_16-8-9.png
    Таким образом формула для расчёта среднего количества очков P при N попытках и шансе Ch:
    Код:
    P = N*(7/1717*Ch**2-36/70*Ch+324/19)
    или
    Код:
    A = 4.076875742025521526e-03
    B = -5.213763413092734611e-01
    C = 1.737883317930979032e+01
    P = N*(A*Ch**2+B*Ch+C)
    Где ** -- возведение в степень. Погрешность составляет не более 0,04 очка на попытку(для среднего значения).
    Важное замечание! Эти формулы работают только на промежутке от 80% до 100% и выдают среднее значение. Так как в основе механизма лежит рандом, вы можете получить немного другой результат.

    Надеюсь, это исследование кому-то будет полезным.
    X и Hito нравится это.
  2. Первый график с сеткой и парой экспериментальных точек, также пдф с графиками.
    upload_2023-6-18_16-28-47.png

    Вложения:

    • Pic1.pdf
      Размер файла:
      16,6 КБ
      Просмотров:
      0
    • Pic2.pdf
      Размер файла:
      17,6 КБ
      Просмотров:
      0
    X нравится это.