https://app.warera.io/user/69f2c4cd71ad7e57087b648d
Muy probablemente los valores generados cada vez que Trabajamos para alguien más, se calculen con la siguiente fórmula:
Techo( pp * DistribucionUniforme(0.9, 1.1)))
donde pp son los Puntos de Producción que tienes asignado en tus Habilidades, y Techo es la función parte entera techo y DistribucionUniforme es la función de Distribución Uniforme. Las cotas superior en inferior son:
Máximo posible= Techo(pp * 1.1)
Mínimo posible = Techo(pp * 0.9)
La principal fuente de ingresos dentro del juego para cualquier jugador, especialmente en etapas tempranas y hasta intermedias, es el trabajo asalariado. La mecánica es simple:
Seleccionas un trabajo disponible en la lista de ofertas de trabajo. Las ofertas están ordenadas descendentemente; se muestra primero las que mejor pagan.
Das click en el botón "Trabajar", hasta agotar tu Energía (la barra azul, PE).
Por cada tap, te pagan tu salario multiplicado por los Puntos de Producción que generaste, sin contar el bonus de producción.
Cada tap en el botón "Trabajar" le descontará una cantidad variable de BTC a tu empleador, basada en la cantidad de Puntos de Producción (PP) que generas; el valor generado se encuentra hasta 10% por encima o por debajo de tus PP asignados en tus Habilidades. Dicho de otra manera, para X PP asignados, el rango o intervalo de generación de PP será:
Cota superior = X + 0.1*X = 1.1*X
Cota inferior = X - 0.1*X = 0.9*X
Rango de Generación = [ 0.9*X , 1.1*X ] , donde X el el valor de tus PP.
Nota: Los corchetes se usan para denotar intervalos inclusivos, es decir, que toman los valores extremos expresados. Los valores finales son enteros. Desconozco si se hace redondeo o si sólo se toma la parte entera. De esto se profundizará un poco más adelante.
Ejemplo:
Considere el caso del autor, que al momento de escribir este artículo, tiene 31 PP asignados en las habilidades. El valor máximo de PP a generar posible, será
1.1*(31) = 34.1 ~ 34
El mínimo valor generable es
0.9*(31) = 27.9 ~ 28
Esto se puede verificar en la sección de transacciones de tu perfil, filtrando por "Salario":

Observe que los valores de los PP generados parecen caer dentro del rango [28, 34].
En el ejemplo anterior, pareciera que los PP se distribuyen alrededor de 31 PP, dentro del rango teórico que establecimos. Sin embargo, este rango no es del todo correcto. Veamos por qué.
Para este ejercicio, tomé 185 datos de pagos por Trabajo por parte de mi empleador desde la API oficial de WarEra. Sólo tomé datos desde que me pasé a modo economía. Desde entonces, siempre he trabajado con 31 Puntos de Producción en mis Habilidades. La distribución de los PP generados durante este periodo es la siguiente:

El eje Y o eje vertical cuenta la frecuencia. El eje horizontal o eje X, el valor generado de PP. Aquí se observan dos cosas. La primera es que aparece el valor de PP generado, 35, ¡que está fuera de nuestro rango teórico! En segundo lugar, y para los conocedores de la estadística, no parece seguir una distribución normal. De hecho, una prueba rápida con stats.normaltest de la librería estadistica de Python, me arroja un valor p prácticamente cero (1.6204e-27), por lo que no hay evidencia de que estos datos vengan de una distribución normal.
Pareciera que fuera una Distribución Uniforme, excepto en los extremos. Preguntándole a Claude, me hace caer en cuenta de que posiblemente se trate de algún redondeo o truncamiento, ya que sólo estoy trabajando con números enteros. Así, aparece la siguiente función:
math.ceil(31 * random.uniform(0.9, 1.1))
Esto es muy revelador, ya que nos dice lo siguiente: Toma tus PP. Multiplícalos por un valor generado por la distribución de probabilidad uniforme, entre 0.9 y 1.1, que corresponden al 10% por encima y por debajo establecidos en la sección anterior. Luego, aplica la función techo. Así obtendrás "un tap" de Trabajo, o un valor a la hora de Trabajar para tu empleador.
Ahora, para comprobar que esto es cierto, lo que hice fue un test Chi-cuadrado con una lista de 50.000 datos generados con la función math.ceil(pp * random.uniform(0.9, 1.1))). Los resultados de la comparación son los siguientes:

Array1 son los datos reales, Array2 son los datos simulados. Los resultados muestran que probablemente los datos vengan de la misma distribución.
Observamos que muy probablemente los valores generados cada vez que Trabajamos para alguien más, se calculen con la siguiente fórmula:
math.ceil(pp * random.uniform(0.9, 1.1)))
donde pp son los Puntos de Producción que tienes asignado en tus Habilidades. Las cotas superior en inferior son:
Máximo posible= math.ceil(pp * 1.1)
Mínimo posible = math.ceil(pp * 0.9)
Para pp = 31 , el valor máximo será 35, y el mínimo 28 .