Me gustaría saber si es posible calcular las probabilidades de ganar un juego de Buscaminas (en dificultad fácil) de un solo clic. Esta página documenta un error que ocurre si lo haces, y calculan las probabilidades en alrededor de 1 entre 800,000. Sin embargo, esto se basa en la versión anterior de Buscaminas, que tenía un número fijo de tableros preestablecidos, por lo que no era posible cada disposición de minas. (Además, el tamaño del tablero en la versión actual es de 9x9, mientras que el antiguo era de 8x8. Ignoremos por ahora los niveles intermedio y experto - asumo que esas probabilidades son casi imposibles, aunque una solución generalizada que pudiera resolver para cualquier W×H y número de minas sería genial también, pero supondría mucho más trabajo, creo.) En general, el aumento del tamaño del tablero (con el mismo número de minas), así como la eliminación de los tableros preestablecidos probablemente harían que tal evento fuera mucho más común.
Entonces, asumiendo un tablero de 9x9 con 10 minas, y asumiendo que cada disposición posible de minas es igualmente probable (no es cierto dado la naturaleza pseudoaleatoria de los generadores de números aleatorios de computadora, pero finjamos), y sabiendo que el primer clic siempre es seguro (asuma que el comportamiento descrito en ese sitio aún se mantiene - si haces clic en una mina en el primer clic, se mueve al primer espacio disponible en la esquina superior izquierda), primero deberíamos calcular el número de tableros que se pueden resolver de un solo clic. Es decir, tableros con solo una apertura, y sin casillas numeradas que no estén adyacentes a esa apertura. El número total de tableros es lo suficientemente fácil: $\frac{(W×H)!}{((W×H)-M)! ×M!}$ o $\frac{81!}{71!×10!} \approx 1.878×10^{12}$. (Más complicado es averiguar qué tableros no se pueden resolver de un solo clic a menos que hagas clic en una mina y la muevas. Quizás podamos ignorar la regla del primer clic seguro si complica demasiado las cosas.) Las disposiciones válidas tendrían las 10 minas en los bordes lo suficientemente alejadas unas de otras para evitar crear números que no toquen la apertura. Luego es simplemente cuestión de contar cuántos espacios sin numeración existen en cada tablero y dividirlos por 81.
¿Es este un cálculo que razonablemente se puede representar en una fórmula matemática? ¿O tendría más sentido escribir un programa para probar cada configuración posible del tablero? (Desafortunadamente, los números con los que estamos tratando se acercan mucho al valor máximo almacenable en un entero de 64 bits, por lo que aquí es muy probable un desbordamiento. Por ejemplo, la calculadora predeterminada de Windows arruina por completo el número a menos que lo multipliques manualmente de 81 hasta 72.)
2 votos
Sobre el programa: Dudo que un montecarlo funcione bien en absoluto. Entre la generación del tablero y la verificación de la victoria de 1 clic, llevaría un tiempo razonablemente largo incluso llegar a un promedio de muestra en el orden de $ 1 $ en $ 80000 $, y mucho menos una estimación precisa. Este es un trabajo para combinatoria, no para simulación.
0 votos
Sí, había pensado en optimizaciones, como no perder tiempo en rotaciones y reflejos del mismo patrón de tablero. También podría ocuparse fácilmente de varios conjuntos de tableros, como todas las combinaciones con cada mina en el borde tocándose entre sí o separadas por 3 o más espacios. También puedes descartar conjuntos, como cualquier mina que esté exactamente a 1 fila o columna del borde (a menos que haya otra mina en medio). Puede ser que alguna combinación inteligente de matemáticas y simulación aún sea viable.
0 votos
Se me ocurrió que hay similitudes entre esto y el es.wikipedia.org/wiki/Puzzle_de_las_ocho_reinas
0 votos
No creo que el número total de tableros sea correcto. En primer lugar, probablemente quieras dividir en lugar de restar. En segundo lugar, parece que estás eligiendo el número de formas de colocar la primera mina, luego la segunda, luego ... pero por supuesto, el orden en el que colocas las minas no importa, por lo que quieres dividir por $10!$ (el número de posibles ordenamientos). El número que resulta es 1,878,392,407,320.
0 votos
@BenMillwood Sí, acabo de volver a mirar eso. Creo que ahora está correcto. Todavía hay muchas posibilidades para revisar, pero ¿podría ser factible ejecutar una simulación con estos números, siendo 6 órdenes de magnitud menos?
0 votos
¿Puedes definir la apertura, por favor?
0 votos
@defeuer Está descrito en el sitio al que hice referencia, pero básicamente una única apertura se refiere a cualquier conjunto contiguo de cuadrados "vacíos" - cuadrados que no tocan ninguna mina, y todos los cuadrados no vacíos que están adyacentes a dichos cuadrados vacíos. Si juegas la mayoría de las versiones estándar del Buscaminas, esto es lo máximo que se puede revelar en un solo clic. Las aperturas no contiguas deben ser clicadas por separado, al igual que los cuadrados no vacíos que no están adyacentes a una apertura.
0 votos
El número promedio de cuadrados abiertos después de distribuir las minas al azar es $28.7$. Además, la probabilidad de que una esquina esté abierta es $0.584$, un borde que no sea una esquina tiene $0.441$ y una pieza del medio $0.286$, ¿quizás podrías hacer algún tipo de caminata aleatoria ponderada y calcular la probabilidad de dar $29$ pasos? Esto garantizaría que la apertura esté conectada, pero aún tendrías que resolver todo el asunto de que "cada número debe tocar una apertura".
0 votos
Parece que esto podría estar relacionado con componentes conectados en grafos/teoría de percolación. Crea un grafo (no dirigido) en el que cada nodo representa un cuadro en la cuadrícula, y está unido por aristas a sus vecinos ortogonales. Colocar minas es ahora el proceso de seleccionar aleatoriamente 10 nodos y eliminarlos del grafo junto con los nodos correspondientes a sus vecinos ortogonales y diagonales en la cuadrícula original. Estos vecinos son nodos que tendrían números, por lo que no estarían vacíos. Creo que el rompecabezas es resoluble en 1 clic si este grafo está conectado.
0 votos
Pregunta: ¿cuándo un jugador hace clic, dónde exactamente se detienen los cuadrados revelados? Creo que podría calcular una respuesta si solo supiera eso.
0 votos
Por ejemplo, si todas las minas están alrededor del borde y dos están separadas por un cuadro, ¿gana el jugador si hace clic en el medio? Y si 9 minas están agrupadas en un borde del tablero con la última en la segunda fila, ¿gana el jugador si hace clic en el medio?
0 votos
Si haces clic en un cuadro vacío sin minas adyacentes, es seguro decir que los 8 vecinos de ese cuadro también son seguros y se revelan. Si alguno de ellos también es vacío, el proceso se repite recursivamente. El juego se gana cuando todos los cuadros seguros han sido revelados, por lo que si una mina está rodeada por otras minas, está bien, siempre y cuando todos los espacios que no son minas estén revelados. Creo que la versión actual garantiza que nunca haya minas debajo o incluso adyacentes al primer clic al moverlas, pero si eso es demasiado complicado, se puede ignorar por ahora.
0 votos
@DarrelHoffman Utilicemos una notación de configuración de tablero como FEN (Notación Forsyth-Edwards) en ajedrez. m es una mina y los espacios vacíos se denotan con números. Comenzamos en la parte superior del tablero y nos movemos de izquierda a derecha, volviendo a la izquierda al final de cada fila. Los dos anteriores que describí son mmm1mmmmm/9/1mm7/9/9/9/9/9/9 y mmmmmmmmm/m7/9/9/9/9/9/9/9. ¿Cuál, si alguna, de estas ganará si el jugador hace clic en un cuadrado seguro? mmmmmmmmm/9/1m7/9/9/9/9/9/9, mmmmmmm2/9/9/9/m8/1m7/9/9/9, 9/9/9/3mmm3/3mmm3/3mmm3/4m4/9/9? Sospecho que la respuesta puede requerir calcular el número de tableros sin minas adyacentes.
0 votos
Mmmmmmmmm/m8/9/9/9/9/9/9/9 y 9/9/9/3mmm3/3mmm3/3mmm3/4m4/9/9 son ganables con un clic. El resto de ellos tienen al menos 1 espacio numerado no adyacente al área en blanco. Los requisitos son: solo un área en blanco contigua, y ningún espacio numerado no adyacente a ella. No importa si las minas están adyacentes entre sí siempre y cuando no causen que los números se separen del área principal en blanco. (Nota que la adyacencia incluye las diagonales.)
0 votos
@DarrelHoffman ¿Qué tal 9/3mmm3/9/9/3mmm3/9/9/3mmm3/9?
0 votos
No, esto no solo resulta en un montón de números no adyacentes a casillas en blanco, sino que divide el área en blanco en dos. Las minas deben estar justo una al lado de la otra, o separadas por al menos 3 espacios para que todas las casillas en blanco formen una región contigua única. Debería ser posible atravesar desde cada casilla en blanco a cada otra casilla en blanco sin tener que pasar por ninguna casilla no en blanco. (Nuevamente, una casilla en blanco se define como un espacio sin minas adyacentes en ninguno de sus 8 vecinos). Y cada número debe tocar al menos una casilla en blanco.
0 votos
Además, el borde no cuenta como un espacio en blanco. Una mina a una distancia de un espacio del borde crea un número atrapado entre las minas y el borde, que por lo tanto no toca los espacios en blanco, y por lo tanto esta formación sería descalificada. Las minas no pueden ocupar las filas o columnas a un espacio de los bordes a menos que otras minas ocupen los espacios intermedios.
0 votos
@DarrelHoffman Vale, creo que lo entiendo. ¿El criterio es que debe haber un área única y contigua para que todos los números estén en el borde? Creo que podré calcular una respuesta ahora.
0 votos
Sí, todos los números deben rodear el área blanca contigua única. (Aunque el borde puede tener cualquier forma, incluyendo tener "islas" en el medio, considera: m5mmm / m9 / 2m6 / 9 / 6m2 / 5m3 / 9 / 9 / m7m, que sería un tablero válido de un solo clic.)
0 votos
@DarrelHoffman ¿Qué tal el cuadrado b7 en ese tablero? En tres lados tiene números y en el cuarto una mina. (A menos que los cuadrados no detecten minas diagonalmente adyacentes a ellos).
0 votos
Tiene un espacio en blanco diagonalmente adyacente en la parte inferior izquierda. Al igual que b8 tiene uno diagonalmente en la parte superior derecha. Las diagonales cuentan tanto para la adyacencia a minas como para la adyacencia a espacios en blanco.
0 votos
Esta página da una discusión de cuántos clics se necesitan: minesweeper.info/wiki/3BV Su tablero de muestra afirma que tomará 39 clics, aunque creo que eso es sólo si cuentas la regla de primer clic seguro, porque yo cuento 40 clics de lo contrario. Pero esto ayudará a visualizarlo.