Primero, considere el siguiente subproblema: dado un subconjunto [matemático] S \ subseteq \ {1, 2, 3, 4, 5, 6, 7, 8, 9 \} [/ matemático], ¿cuántos enteros positivos hay en el rango [matemática] 1, \ ldots, N [/ matemática] cuyo conjunto de dígitos es exactamente igual a ese conjunto, ¿excepto que también puede contener cualquier número de ceros? (Llame a este número [matemáticas] f (S, N) [/ matemáticas]).
Para resolver este subproblema, usaría la técnica de descomposición de rango decimal. Por ejemplo, si ponemos N = 641, dividiríamos ese rango en los intervalos elementales [1, 9], [10, 19], [20, 29], [30, 39], [40, 49] , [50, 59], [60, 69], [70, 79], [80, 89], [90, 99], [100, 199], [200, 299], [300, 399], [ 400, 499], [500, 599], [600, 609], [610, 619], [620, 629], [630, 639], [640, 640], [641, 641] y suman resultado para cada intervalo elemental. El número de tales subranges es [math] O (\ log N) [/ math], por lo que esto se puede hacer de manera eficiente incluso cuando [math] N = 10 ^ {100} [/ math]. Obtener el resultado para cada uno de estos intervalos elementales es una cuestión de simple combinatoria. Hay 512 subconjuntos diferentes de [matemáticas] \ {1, 2, 3, 4, 5, 6, 7, 8, 9 \} [/ matemáticas] por lo que para un N dado, podemos usar esta técnica para calcular previamente [matemáticas] f (S, N) [/ math] para todos [math] S [/ math] sin usar demasiado tiempo.
Una vez que tenga estos valores [matemáticos] f (S, N) [/ matemáticos] en la mano, puede abordar el problema principal fácilmente. Deje que [math] S_1 [/ math] y [math] S_2 [/ math] se extiendan sobre todos los subconjuntos posibles de [math] \ {1, 2, 3, 4, 5, 6, 7, 8, 9 \} [/ matemáticas]; Hay 262.144 posibilidades diferentes. [math] S_1 [/ math] es el conjunto de dígitos para [math] A [/ math], y [math] S_2 [/ math] es el conjunto de dígitos para [math] B [/ math]. Cuente el número de pares [matemática] (A, B) [/ matemática] que respectivamente tienen conjuntos de dígitos de [matemática] S_1 [/ matemática] y [matemática] S_2 [/ matemática]; esto es simplemente [matemáticas] f (S_1, N) \ veces f (S_2, N) [/ matemáticas]. Multiplique eso por el valor [matemático] R [/ matemático], es decir, [matemático] \ sum S_1 \ oplus S_2 [/ matemático]. Suma eso sobre todos los pares [math] (S_1, S_2) [/ math], y eso es todo.
- ¿Cómo podemos resolver el problema de emisión de carbono de la fabricación de paneles solares? ¿Este problema supera el beneficio que obtenemos de usarlo?
- Como resolver esto
- ¿Cuál es el mejor método de optimización global para problemas multimodales continuos de baja dimensión (2)?
- ¿Cómo encuentra una computadora o una calculadora la raíz cúbica, la raíz cuadrada, etc. de un número?
- Tengo que trabajar con la computadora 8 horas por día. Mis ojos estaban tenues después del trabajo. ¿Cuál es la mejor manera que tengo que hacer para resolver este problema?