Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

351
Vistas
¿Cómo puedo calcular eficientemente el límite matemático para el número promedio de rondas en un juego?

Para una calculadora de probabilidades para un juego de mesa, necesito calcular cuántas rondas durará en promedio una batalla. Debido a que existe la posibilidad de que ambos lados de la batalla se pierdan, una batalla teóricamente puede durar para siempre. Por lo tanto, no puedo atravesar todas las ramas, pero necesito calcular un límite matemático. Al verificar con un simulador, descubrí que la siguiente función se aproxima correctamente al número promedio de rondas restantes:

 // LIMIT could be any number, the larger it is, the more accurate the result. const LIMIT = 100; // r is the number of rounds left if at least 1 of the sides hit // x is the chance that both sides miss and the round count gets increased, // but the battle state stays the same. function approximateLimitForNumberOfRounds(r: number, x: number) { let approx = r / (1 - x); // n -> infinity for (let n = 1; n < LIMIT; n++) { approx += x ** n; } return approx; }

¿Cómo puedo modificar esta función para calcular exactamente el número de rondas restantes, en lugar de aproximarlo? (Teniendo en cuenta que, dado que x es una posibilidad, está contenida en (0, 1) o 0 < x < 1 ).

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Podemos notar que approx toma los siguientes valores:

 r / (1 - x) # I refer to this as 'a' below a + x a + x + x^2 a + x + x^2 + x^3 a + x + x^2 + ... + x^n

Por lo tanto, podemos simplificar la expresión matemática para que sea:

 a + (the sum of x^k from k = 1 to k = n)

A continuación, debemos notar que la sucesión x + x^2 + x^3 ... forma una sucesión geométrica con primer término x y razón común x . Dado que x está acotado por 0 < x < 1 , esto tendrá una suma límite, a saber:

 x + x^2 + x^3 + ... x^inf = x/(1-x)

(esto obviamente falla cuando x = 1 , así como en la función original donde se toma r / (1 - x) , pero en ese caso, simplemente tendrá la suma como infinito y approx se escaparía al infinito si no lo fuera undefined ; por lo tanto, asumo que x != 1 en los siguientes cálculos y x = 1 puede tratarse por separado).

Ahora, dado que tenemos una sola expresión para x + x^2 + ... hasta el infinito, y una sola expresión para approx que incluye x + x^2 + ... entonces podemos escribir approx usando estos dos hechos :

 approx = r / (1 - x) + x / (1 - x) approx = (r + x) / (1 - x)

¡Y ahí tienes! Ese es el equivalente matemático de la lógica que ha descrito en su pregunta, comprimida en una sola declaración (que creo que es correcta :)).

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda