OK, así que la idea básica de la que tengo es la siguiente:
Queremos cubrir el mayor número posible de combinaciones posibles para cada intento. Así, por ejemplo, el OP de la estrategia de hacer 111,122,..., seguido por 211,222, ... parece menor que el óptimo, ya que los primeros 10 intentos, ya cubrir cualesquiera combinaciones con los dos últimos dígitos de ser el mismo. Por lo tanto, sería mejor hacer 111,122, ... seguido por algo como 223,234,245, de manera que no solo intenta conseguir un éxito entre el primer dígito y cualquiera de los otros dos, pero que también están tratando de otras opciones para obtener un éxito entre el 2 y 3 dígitos.
De hecho, incluso 111,122,... es menor que el óptimo, ya que tanto la cubierta 121, por lo que superponerse. Así, es probablemente lo mejor sea comenzar con algo como 111,222,333,... ya que cada uno de estos cubre 28 combinaciones sin solapamiento.
Después de eso, me imagino que se debería mantener asegurarse de que cada nuevo intento que hacemos tiene como unos dígitos en común con cualquiera de las combinaciones ya hemos intentado hasta ese punto... básicamente intentar hacer cada combinación difieren en 2 dígitos de cualquiera de las probado antes. La siguiente secuencia va a hacer exactamente eso (cada secuencia de 10 tiene una única diferencia entre el 1er y 2do dígito, entre la 2ª y la 3ª, y entre 1 y 3):
000, 111, 222, 333, ..., 999, (en este punto hemos cubierto 10*28=280 combinaciones)
012, 123, 234, 345, ..., 901, (otro 10 * 22 (por ejemplo, 012 cubre y 3*7) = 220)
(así que con tan solo 20 intenta cubrimos la mitad de todas las combinaciones posibles!)
024, 135, 246, 357, ..., 913, (otro 10 * 18 (esto toma algo de la escritura) = 180)
036, 147, 258, 369, ..., 925, (otro 10 * 12 = 120)
048, 159, 260, 371, ..., 937, (otro 10 * 8 = 80)
(en este punto, no siga con 050,... ya que tiene dos dígitos en común con las anteriores 000)
051, 162, 273, 384, ..., 940, (otro 10 * 5 = 50)
063, 174, 285, 396, ..., 952, (otro 10 * 4 = 40)
075, 186, 297, 308, ..., 964, (otro 10 * 2 = 20)
087, 198, 209, 310, ... ,976 (el pasado 10)
En una versión anterior de mi respuesta me dijo que hacer otros 10 después de estos:
099, 100, 211, 322, ... , 988
la idea de que esto iba a cubrir todos los posibles pares de 1er y 2do dígito, y cubriendo así todas las combinaciones posibles (y así, podemos tener un peor caso de 100). Sin embargo, resulta que cualquiera de ellos estos adicional de 10 cubriría se han cubierto ya por el anterior 90. Así, en el peor caso de este método es de 90 trata, no de 100.
El método anterior da un promedio de 0,28*5.5 (los primeros 10 intentos, cada cubierta de 28 casos, por lo que es de 280 casos por 1000 es de 28%, que en promedio toma (1 + 10)/2 = 5.5 intenta) + 0.22*15.5 + 0.18*25.5 + 0.12*35.5 + 0.08*45.5 + 0.05*55.5 + 0.04*65.5 + 0.02*75.5 + 0.01*85.5 = 25.2 intenta abrir la caja.
Realmente creo que este método no puede ser mejorado en términos de promedio de número de intentos, pero no tengo ninguna prueba.
Edit ok, así que esto es no es la estrategia más eficiente: ver JiK la respuesta! Tiempo para comer humildes! ... Bueno, espero que al menos fue capaz de expresar algunas de las ideas de por qué algunas estrategias pueden ser mejores que otros.