Esta no es una respuesta, pero tal vez esto lo guíe a usted u otra persona en la dirección correcta.
Encontré el artículo de D. Kozen y S. Zaks llamado "Límites óptimos para el problema de hacer cambios", en el que dan las condiciones para cuando el algoritmo de creación de cambio codicioso de una instancia de cambio de moneda es óptimo. Usaré su notación.
Dada una instancia de cambio de monedas de monedas distintas
( c 1 , c 2 , c 3 , ⋯ , c m - 1 , c m ) c 1 = 1 < c 2 < c 3 < ⋯ < c m - 1 < c m
a función M ( x ) que representa el número óptimo de monedas necesarias para realizar cambios para x y una funciónmetro
( c1, c2, c3, ⋯ , cm - 1, cmetro)
C1= 1 < c2< c3< ⋯ < cm - 1< cmetro
METRO( x )X representa el número de monedas necesarias para realizar cambios con avidez para x , entonces si M (G ( x )X , existe un contraejemplo en el rango
c 3 + 1 < x < c m - 1 + c mMETRO( x ) ≠ G ( x )C3+ 1 < x < cm - 1+ cmetro
Continúan demostrando que
XC3+ 1 < x < cm - 1+ cmetro
G ( x ) ≤ G ( x - c ) + 1
c ∈ ( c1, c2, ⋯ , cmetro)
G ( x ) = M( x )
Esto nos da una prueba "eficiente" (hasta pseudo polinomio) para determinar si una instancia de cambio de moneda es codiciosa o no.
Usando lo anterior, he realizado una breve simulación cuyos resultados se trazan en una escala de log-log a continuación
metro[ 1 ⋯ N]
m = 383norte- 12
pagmetro( N) ∝ N- ( m - 2 )2
pagmetro( N)metronorte
En el grande metronorte
( 1 , 5 , 10 , 25 , 50 , 100 , 200 , 500 , 1000 , 2000 , 5000 , 10000 )) que no parecen estar distribuidas uniformemente. Quizás mirar otras distribuciones para generar las denominaciones de monedas arrojaría resultados no triviales en el límite del sistema grande. Por ejemplo, una distribución de la ley de potencia podría generar denominaciones de monedas que son más similares a las de EE.