Esta es mi respuesta para un código de longitud $n$ utilizando $k$ diferentes dígitos que pueden repetirse con una frecuencia arbitraria. Cada dígito debe aparecer al menos una vez. (de lo contrario, no se gastará).
Para ello se utiliza la secuencia correspondiente " A019538 " que Barry Cipra mencionado.
Ahora bien, hacer referencia a la OEIS está muy bien, pero si no eres un matemático lo más probable es que esa página sea bastante confusa. Tiene un montón de comentarios que parecen apuntar a un significado diferente. Ninguno de esos significados en el que realmente tenemos. (El "Número de $k$ caras" dimensionales del $n$ El "permutoedro dimensional" no se parece en absoluto a los números de un teclado... (¿Y qué es un permutoedro?)
Aquí tenemos una formulación que podemos convertir en un teclado: "Número de proyecciones (sobre funciones) de un $n$ -elemento fijado en un $k$ -conjunto de elementos".
¿Qué es una "sobreproyección de un $n$ -elemento fijado en un $k$ -¿"Conjunto de elementos"? Es una asignación que asigna uno de $k$ números cada uno de $n$ lugares. Los números pueden aparecer con una frecuencia arbitraria y la "suryección" nos dice que cada $k$ los elementos deben ser elegidos al menos una vez. ¡Genial! Eso es exactamente lo que buscamos. Cada posición $n$ posiciones del código se asigna una de $k$ llaves desgastadas y cada llave se recoge al menos una vez.
Estamos en la página correcta de la OEIS, obtengamos una fórmula. (Hay muchas) $$T(n, k) = k*\left(T(n-1, k-1)+T(n-1, k)\right) \text{ with } T(0, 0) = 1$$ No se trata exactamente de una fórmula de "introduce tus números y obtén un resultado", pero con una pequeña tabla obtener un valor es bastante fácil. Y resulta que esta fórmula es fácil de explicar.
En primer lugar, ¿por qué $T(0,0) = 1$ ? Esto cuenta las formas de introducir un código de longitud $0$ sin usar dígitos. Suena un poco loco si ves esto la primera vez, pero hay exactamente una manera de hacerlo: Quédate ahí y no hagas nada.
Ahora bien, ¿dónde está el $T(n, k) = k*\left(T(n-1, k-1)+T(n-1, k)\right)$ ¿de dónde viene? En primer lugar, tenemos $k$ diferentes posibilidades. ¿Qué pasa con los otros $n-1$ lugares que siguen? Lo dividimos en dos casos:
- El primer dígito no se vuelve a utilizar. Luego hay $T(n-1, k-1)$ formas de rellenar el último $n-1$ dígitos con $k-1$ números.
- El primer dígito se utiliza de nuevo. Hay $T(n-1, k)$ formas de rellenar el último $n-1$ dígitos con $k$ números.
En resumen, eso nos da $T(n-1, k-1)+T(n-1, k)$ formas de rellenar el último $n-1$ lugares tiempos $k$ formas de rellenar el primer dígito.
A continuación se presentan algunos valores que también fueron amablemente facilitados por la OEIS:
n\\k 1 2 3 4 5 6 7 8 9
1: 1
2: 1 2
3: 1 6 6
4: 1 14 36 24
5: 1 30 150 240 120
6: 1 62 540 1560 1800 720
7: 1 126 1806 8400 16800 15120 5040
8: 1 254 5796 40824 126000 191520 141120 40320
9: 1 510 18150 186480 834120 1905120 2328480 1451520 362880
En conclusión, si utiliza una longitud de tres a seis, duplique un solo dígito. Para el siete, el ocho y el nueve debes usar dos menos y si usas códigos aún más largos, pide ayuda de codificación en stackoverflow.
Espero que eso ayude.
0 votos
No tiene que ver directamente con su pregunta, pero posiblemente sea de su interés
0 votos
Me pregunto si esta cuestión podría generalizarse más. Dado un pin de n dígitos y un ladrón que puede determinar qué dígitos se utilizaron: ¿cuántos dígitos únicos se deben utilizar en el pin para producir el mayor número de combinaciones? Para 4 dígitos, la respuesta es 3. Pero, ¿cuál es la respuesta para pines más largos?
1 votos
La secuencia oeis.org/A019538 es pertinente aquí (para el problema general).