¿Podemos generar rápidamente mod 3 perfectamente uniforme o resolver el problema NP?


13

Para ser honesto, no sé mucho acerca de cómo se generan los números aleatorios (¡los comentarios son bienvenidos!), Pero supongamos el siguiente modelo teórico: podemos obtener enteros uniformemente aleatorios de y nuestro objetivo es genera un entero uniformemente aleatorio de [1,3].[1,2n]

Una solución simple cuyo tiempo de ejecución esperado es polinómico es la siguiente. Deseche (y posiblemente también ) de para que el número de enteros restantes sea divisible por modo que podamos tomar del entero generado. Si obtenemos un número descartado, generamos otro número, hasta que obtengamos uno no descartado.2n2n1[1,2n]3mod3

Pero, ¿qué pasa si queremos terminar seguramente en tiempo polinómico? Debido a problemas de divisibilidad, el problema se vuelve insoluble. Sin embargo, me pregunto si podemos resolver lo siguiente.

Supongamos que podemos generar enteros uniformemente aleatorios a partir de [1,2n] y se nos da un problema computacionalmente difícil. Nuestro objetivo es generar un entero uniformemente aleatorio de [1,3] o resolver el problema difícil.

Aquí el problema difícil puede ser factorizar un número entero, resolver una instancia de SAT o algo similar. Por ejemplo, podemos decodificar una permutación unidireccional f siguiente manera, si se nos da algo de f(x) (y suponiendo que n es par): Si para nuestra cadena aleatoria f(r)<f(x) , entonces tomemos f(r)mod3 , si f(r)>f(x) , entonces tome f(r)1mod3 . Finalmente, si f(r)=f(x) , entonces hemos terminado, como r=x . (Si n es impar, entonces algo similar funciona, solo tenemos que verificar si f(r+1)=f(x) y restar 2 si f(r)>f(x) .)

Resumen de respuestas. Emil Jeřábek ha demostrado que, a menos que podamos generar perfectamente de manera uniforme, podemos resolver cualquier problema de búsqueda de un solo valor desde TFNP y también desde PPA-3. Por otro lado, daniello ha demostrado que no podemos resolver los problemas de NP completo de la manera anterior, a menos que NP = co-NP.


@Tayfun Si es par, necesitamos para ser divisible por , si es impar, entonces es cuando necesitamos para ser divisible entre . Me encantaría que fuera más específico sobre qué parte debería ser más específico. 2 n - 1 3 n 2 n - 2 3n2n13n2n23
domotorp

(1) Puede generalizar el ejemplo con permutaciones unidireccionales para resolver funciones (de un solo valor) en TFNP. (2) Puede resolver problemas arbitrarios de búsqueda de PPA-3.
Emil Jeřábek

@Emil (1): ¿Cómo? (2): También he pensado que esta podría ser la clase de complejidad correcta, pero no veo por qué podríamos resolver tales problemas.
domotorp

Intentaré escribirlo como respuesta más tarde. Por cierto, la pregunta es interesante, no sé cuál es el trato con todos los votos negativos.
Emil Jeřábek

2
Los votos negativos son extraños. ¡Esta es una pregunta genial! Y no veo nada claro al respecto.
Sasho Nikolov

Respuestas:


6

Como seguimiento a la respuesta de domotorp, creo que podemos resolver los problemas de búsqueda de NP satisfaciendo una de las siguientes restricciones:

  1. el número de soluciones es conocido y no es divisible por ; o,3

  2. El número de soluciones está limitado polinómicamente (pero no se conoce de antemano).

Para 1., podemos usar un relleno simple para reducir al siguiente caso:

  • Las soluciones son de , donde es par.m[0,2m1)m

  • El número de soluciones satisface .ss1(mod3)

  • Cualquier dos soluciones están al menos a una distancia de . (Digamos, todos son divisibles por ).444

Tenga en cuenta que . Entonces, podemos resolver el problema eligiendo un aleatorio , y usando un protocolo similar al de mi respuesta para soluciones únicas si (lo que resulta en una distribución on debajo de un por cada una de las soluciones ), y generando si .a [ 0 , 2 m ) a [ 0 , 2 m - s ) { 0 , 1 , 2 } 0 s 0 a [ 2 m - s , 2 m )32msa[0,2m)a[0,2ms){0,1,2}0s0a[2ms,2m)

Para 2., suponga primero que se conoce el número de soluciones . Como en /cstheory//a/37546 , que sea ​​la mayor potencia de que divide , de modo que . Considere el problema de búsqueda cuyas soluciones son secuencias tal que , y cada es una solución del problema original. Por un lado, el problema original se reduce al nuevo. Por otro lado, el número de soluciones del nuevo problema es , es decir, no es divisible porsp(n)3k3s3(s3k) y 0 < y 1 < < y 3 k - 1 y i ( sy0,,y3k1y0<y1<<y3k1yi3(s3k)3y conocido. Por lo tanto, hemos terminado por 1.

Ahora, si el número de soluciones está limitado por , pero no se conoce, ejecutamos el protocolo por encima de veces ( ) en paralelo para cada opción posible de y:2 2 p ( n ) 1 s 2 p(n)22p(n)1s2

  • si alguno de los hilos devuelve una solución del problema original, pasamos uno de estos a la salida;

  • si todos los hilos devuelven elementos , mostramos .( r 1 + r 2 + + r 2 ) mod 3r1,,r2{0,1,2}(r1+r2++r2)mod3

Condicionado en el segundo evento, se distribuye uniformemente en porque es el verdadero número de soluciones del problema original, mientras que los otros son independientes de , por lo tanto, la suma total también se distribuye uniformemente . { 0 , 1 , 2 } s r i r srs{0,1,2}srirs


La generalización común de 1 y 2 es que el número de soluciones proviene de una lista de números computable en tiempo polinómico, de modo que la mayor potencia de divide cualquiera de ellos está polinómicamente limitada. 3
Emil Jeřábek

Por cierto, ¿conoces algún problema no compuesto en el que se pueda demostrar que el número de soluciones es divisible por algún poder superpolinomial de ? Por compuesto quiero decir algo como tomar el producto directo de algunos problemas donde el número de soluciones es divisible por : los problemas compuestos se pueden resolver fácilmente de la manera anterior. 333
domotorp

Creo que es posible demostrar que hay un oráculo bajo el cual no se puede resolver el poder superpolinomial de 3 problemas de la manera anterior.
domotorp

@domotorp Eso es interesante, estaba considerando la posibilidad de que algún tipo de argumento Valiant-Vazirani pudiera usarse para resolver problemas arbitrarios de TFNP. De todos modos, la caracterización aún está incompleta. Estoy particularmente descontento con la restricción en esta respuesta de que se conoce el número de soluciones, o al menos proviene de una lista construible en tiempo polinómico. Por un lado, la clase de tales problemas es aparentemente incomparable con PPA-3 de mi otra respuesta, por lo que sería bueno tener una construcción que generalice ambos. AFAICS el único límite superior es que cualquier problema solucionable ...
Emil Jeřábek

... de la manera anterior es reducible a un problema TFNP cuyo número de soluciones es módulo (pero no conocido). No me queda claro si esperar que esta sea la clase correcta, o si se necesita alguna restricción adicional después de todo. 313
Emil Jeřábek

10

Usaré números a partir de lugar de , ya que me parece mucho más natural.101

Aquí hay dos clases de problemas que podemos resolver de esta manera:

  1. Funciones en TFNP (es decir, problemas de búsqueda de NP total de un solo valor)

    (Esto generaliza el ejemplo con permutaciones unidireccionales. Incluye como un caso especial problemas de decisión de ).UPcoUP

    La configuración es que tenemos un predicado de tiempo polinómico , y un polinomio tal que para cada de longitud , existe un único de longitud tal que mantiene. La tarea computacional es, dado , encontrar .p ( n ) x n y m = p ( n ) R ( x , y ) x yR(x,y)p(n)xnym=p(n)R(x,y)xy

    Ahora, supondré wlog que es par, de modo que . El algoritmo es generar una uniformemente aleatoria y generar2 m1my [ 0 , 2 m )2m1(mod3)y[0,2m)

    • R ( x , y )y (como solución del problema de búsqueda) si ;R(x,y)

    • { 0 , 1 , 2 } y - y { 1 , 2 } R ( x , y )yy (como un elemento aleatorio de ) si , y ;{0,1,2}yy{1,2}R(x,y)

    • { 0 , 1 , 2 } y { y , y - 1 , y - 2 } R ( x , y )ymod3 (como un elemento aleatorio de ) si no resuelve .{0,1,2}y{y,y1,y2}R(x,y)

    Si no hubiera solución del problema de búsqueda, las opciones aleatorias de darían y veces, y veces (una más). Sin embargo, si resuelve el problema de búsqueda, modificamos los elementos (que alcanzan las tres clases de residuos) para que solo produzcan los residuos y , lo que iguala la ventaja de . (Asumo aquí wlog que .) 1 2 ( 2 m - 1 ) / 3 0 ( 2 m + 2 ) / 3 y y , y + 1 , y + 2 1 2 0 y < 2 m - 22m12 (2m1)/30 (2m+2)/3yy,y+1,y+2120y<2m2

  2. PPA- problemas de búsqueda3

    Una forma conveniente de definir PPA- es que los problemas de búsqueda de NP son muchos reducibles al siguiente tipo de problemas. Tenemos una función de tiempo polinomial fijo y un polinomio , de modo que para cualquier entrada de longitud , el mapeo inducido restringido a las entradas de longitud es una función satisface para cada . La tarea es, dada , encontrar un punto fijo de : .f ( x , y ) p ( n ) x n f x ( y ) = f ( x , y ) y m = p ( n ) f x : [ 0 , 2 m ) [ 0 , 2 m ) f x ( f x ( f x ( y ) ) )3f(x,y)p(n)xnfx(y)=f(x,y)ym=p(n)fx:[0,2m)[0,2m)y x y f x f x ( y ) = yfx(fx(fx(y)))=yyxyfxfx(y)=y

    Podemos resolver esto de la siguiente manera en la pregunta: dado de longitud , generamos una aleatoria de longitud , y la salidan y m = p ( n )xnym=p(n)

    • f xy si es un punto fijo de ;fx

    • de lo contrario, , y son elementos distintos. Podemos etiquetarlos como con , y la salida tal que .f x ( y ) f x ( f x ( y ) ) { y , f x ( y ) , f x ( f x ( y ) ) } = { y 0 , y 1 , y 2 } y 0 < y 1 < y 2 i { 0 , 1 , 2yfx(y)fx(fx(y)){y,fx(y),fx(fx(y))}={y0,y1,y2}y0<y1<y2y = y ii{0,1,2}y=yi

    Se desprende de las definiciones que esto da una distribución uniforme en , como el no-punto fijo 's vienen en triples.y{0,1,2}y


Permítanme mostrar para el registro la equivalencia del problema anterior con el problema completo de Papadimitriou para PPA- , ya que esta clase se descuida principalmente en la literatura. El problema se menciona en Buss, Johnson: "Pruebas proposicionales y reducciones entre los problemas de búsqueda de NP", pero no indican la equivalencia. Para PPA, un problema similar (SOLO) se da en Beame, Cook, Edmonds, Impagliazzo y Pitassi: "La relativa complejidad de los problemas de búsqueda de NP". No hay nada especial en , el argumento a continuación funciona mutatis mutandis para cualquier primo impar.333

Propuesta: Los siguientes problemas de búsqueda de NP son politemporales muchos-uno reducibles entre sí:

  1. Dado un circuito que representa un gráfico bipartito no dirigido y un vértice cuyo grado no es divisible por , encuentre otro vértice.u A B 3(AB,E)uAB3

  2. Dado un circuito que representa un gráfico dirigido , y un vértice cuyo balance de grados (es decir, out-degree menos in-degree) no es divisible por , encuentre otro vértice.u V 3(V,E)uV3

  3. Dado un circuito que computa una función tal que , encuentre un punto fijo de .f 3 = i d ff:[0,2n)[0,2n)f3=idf

Prueba:

1p2 es obvio, ya que es suficiente para dirigir los bordes de izquierda a derecha.

A B V A = { x A : x V } B = { x B : x V } x y { x A , y B } 1 { x B , y A } - 1 deg ( x A ) = - grados ( x B ) x u2p1 : Primero, construyamos un gráfico bipartito ponderado. Sean y copias de : , . Para cada borde original , colocamos un borde de peso , y un borde de peso . Esto hace que igual al balance de grados de en el gráfico original. Si es el vértice de equilibrio dado , agregamos un borde adicional de pesoABVA={xA:xV}B={xB:xV}xy{xA,yB}1{xB,yA}1deg(xA)=deg(xB)xu{ u A , u B } b deg ( u A ) = 2 b 0b0(mod3){uA,uB}b, de modo que y . será nuestro vértice elegido.grados ( u B ) = 0 u Adeg(uA)=2b0(mod3)deg(uB)=0uA

Para hacer que el gráfico sea un gráfico simple no ponderado no direccionado, primero reducimos todos los pesos módulo y soltamos todos los bordes de peso . Esto deja solo bordes de los pesos y . Este último puede ser reemplazado con dispositivos adecuados. Por ejemplo, en lugar de un borde de peso- , incluimos nuevos vértices , para , con bordes , , , , : esto hace que0 1 2 2 { x A , y B } w A i z B i i = 0 , ... , 3 { x A , y B } { x A , z B i } { w A i , y B } { w A i , z B i } { w A i30122{xA,yB}wiAziBi=0,,3{xA,yB}{xA,ziB}{wiA,yB}{wiA,ziB}deg ( w A i ) = deg ( z B i ) = 3 5 2{wiA,z(i+1)mod4B}deg(wiA)=deg(ziB)=3, Y contribuye a y .x A y B52(mod3)xAyB

n 2 n13p2 : Permítanme suponer que la simplicidad es par para que . Construimos un gráfico dirigido en siguiente manera:nV = [ 0 , 2 n )2n1(mod3)V=[0,2n)

  • Incluimos aristas y para cada .3 x + 2 3 x x < 2 n / 3 - 13x+13x3x+23xx<2n/31

  • Si es una órbita no fija de , incluimos los bordes y . f x 0x 1 x 0x 2x0<x1<x2fx0x1x0x2

El vértice elegido será . La primera cláusula aporta el equilibrio o a cada vértice . Del mismo modo, la segunda cláusula contribuye al equilibrio o a los vértices que no son puntos fijos. Por lo tanto, suponiendo que no es ya un punto fijo, de hecho es un módulo no balanceado , y cualquier otro módulo no balanceado de vértice es un punto fijo de .1 - 2 1u=2n11u - 1 2 - 121(mod3)u1u 3 3 f21(mod3)u33f

A = B = [ 0 , 2 n ) n u A 21p3 : podemos suponer que con par, y el vértice dado tiene grado .A=B=[0,2n)nuA2(mod3)

Podemos etiquetar eficientemente los bordes incidentes con un vértice como , donde . De esta manera, convierte en un subconjunto de , que identificamos con . Definimos una función en siguiente manera.( y , j ) j < deg ( y ) E [ 0 , 2 n ) × [ 0 , 2 n ) [ 0 , 2 2 n ) f [ 0 , 2 n ) × [ 0 , 2 n )yB(y,j)j<deg(y)E[0,2n)×[0,2n)[0,22n)f[0,2n)×[0,2n)

  • En el complemento de : para cada , tal que , hacemos , , . Además, , , para . Esto excluye el punto y puntos para cada cuyo grado no es divisible por .y B j deg ( y ) 3 j < 2 n - 1 f ( y , 3 j ) = ( y , 3 j + 1 ) f ( y , 3 j + 1 ) = ( y , 3 j + 2 ) f ( y , 3 j + 2 ) =EyBjdeg(y)3j<2n1f(y,3j)=(y,3j+1)f(y,3j+1)=(y,3j+2)f ( 3 i , 2 n - 1 ) = ( 3 i + 1 , 2 n - 1 ) f ( 3 i + 1 , 2 n - 1 ) = ( 3 i + 2 , 2 n - 1 ) f ( 3 i + 2 , 2 nf(y,3j+2)=(y,3j)f(3i,2n1)=(3i+1,2n1)f(3i+1,2n1)=(3i+2,2n1)3 i < 2 n - 1 ( 2 n - 1 , 2 n - 1 ) 3 - ( deg ( y ) mod 3 ) ( y , i ) y B 3f(3i+2,2n1)=(3i,2n1)3i<2n1(2n1,2n1)3(deg(y)mod3)(y,i)yB3

  • En : para cada , arreglamos una enumeración eficiente de sus bordes incidentes , donde . Ponemos , , para . Esto deja fuera puntos para cada vértice cuyo grado no es divisible por .x A ( y 0 , j 0 ) , , ( y d - 1 , j d - 1 ) d = deg ( x ) f ( y 3 i , j 3 i ) = ( y 3 i + 1 , j 3 i + 1 ) f ( y 3 i +ExA(y0,j0),,(yd1,jd1)d=deg(x)f(y3i,j3i)=(y3i+1,j3i+1)f( y 3 i + 2 , j 3 i + 2 )=( y 3 i , j 3 i )i<d / 3grados(x)mod3xf(y3i+1,j3i+1)=(y3i+2,j3i+2)f(y3i+2,j3i+2)=(y3i,j3i)i<d/3deg(x)mod33xA3

Desde , dos de sus bordes incidentes quedaron fuera; los convertimos en otro ciclo usando como tercer punto. Los puntos restantes se dejan como puntos de fijación de . Por construcción, cualquiera de ellos dará lugar a una solución de (1).f ( 2 n - 1 , 2 n - 1 ) fdeg(u)2(mod3)f(2n1,2n1)f


1
Ambas soluciones son correctas, pero tengo un problema con las definiciones de las clases. En la definición de TFNP, por lo general se requiere al menos una solución, mientras que usted quiere exactamente una, que sería TFUP, supongo. PPA-3 se definió originalmente con la entrada de un gráfico bipartito y un vértice dado cuyo grado no es 3, y necesitamos encontrar otro vértice. Su ejemplo con obviamente está en esta clase, pero ¿por qué está completo? (Esto podría ser bien conocido, pero es nuevo para mí)f
Domotorp

1
(1) Subrayé muy explícitamente que el resultado no se aplica a problemas arbitrarios de búsqueda de TFNP, sino solo a funciones. Realmente no sé cómo hacerlo aún más claro. (2) Sí, esto es equivalente a la definición habitual de PPA-3. Esto no debería ser difícil de mostrar.
Emil Jeřábek

(1) Lo siento, aquí mi confusión era solo lingüística; en su comentario original realmente ha enfatizado un valor único, pero en su respuesta escribió solo funciones TFNP, y luego agregó entre paréntesis el "ie" que es equivalente hasta donde yo sé. Creo que sería más fácil de entender si escribiera "funciones TFNP de un solo valor" en su respuesta también.
domotorp

(2) Esta equivalencia sería muy sorprendente. Con un truco similar que has usado en (1), implicaría que USAT está en PPA-3, ¿no? Esperaría que sea más probable que mi problema esté relacionado con algunos TFNP cuyo número de soluciones es 1 o 2 mod 3 para cada (y necesitamos saber cuál). Por cierto, su solución para (1) ya implica que FullFactoring se puede resolver, que fue mi motivación original. n
domotorp

Las funciones tienen un solo valor. Eso es lo que significa la función. Trataré de buscar las cosas en PPA-3. Sin embargo, no veo cómo incluiría USAT. La construcción en (1) no produce un poli-tiempo con , o al menos no lo veo: para la elección obvia, uno no puede calcular sin resolver primero el problema de búsqueda. f 3 = i d f ( 2 m - 1 )ff3=idf(2m1)
Emil Jeřábek

7

Si pudieras generar perfectamente el mod O resolver SAT (o cualquier otro problema NP-completo, para el caso) entonces . En particular, considere el generador / solucionador perfecto cuando se le da una fórmula SAT .N P = c o N P ϕ3NP=coNPϕ

Sea el número máximo de bits aleatorios dibujados por el generador en entradas de tamaño . Como el generador se ejecuta en tiempo polinomial, es polinomial. Como no es divisible por , debe haber alguna secuencia de a lo sumo lanzamientos de monedas que harán que el generador genere una respuesta (correcta) para . Por lo tanto, si es insatisfactorio, hay un conjunto de lanzamientos de monedas que hacen que el generador diga que es insatisfactorio. Si es satisfactoria, entonces el generador nunca reclamará erróneamente quen ( n ) 2 ( n ) 3 ( n ) ϕ ϕ ϕ ϕ ϕ U N S A T N P N P = c o N P(n)n(n)2(n)3(n)ϕϕϕϕϕes insatisfactorio, no importa cuáles sean las monedas. Por lo tanto, hemos demostrado que el lenguaje de fórmulas insatisfactorias está en , lo que implica . UNSATNPNP=coNP


2
En otras palabras: todo lo que podamos resolver de esta manera es reducible a un problema TFNP. Entonces, en lugar de NP, deberíamos disparar para subclases de TFNP.
Emil Jeřábek

Sí, aunque no estoy seguro de que la singularidad sea necesaria, o uno puede salirse con la suya con algo significativamente más débil.
daniello

1
¿Singularidad de qué?
Emil Jeřábek

"La configuración es que tenemos un predicado de tiempo polinomial , y un polinomio tal que para cada de longitud , existe un único de longitud tal que cumple. La tarea computacional es, dada , encontrar ". Tengo la sensación de que el número de no siendo divisible por podría ser suficiente. [Acabo de notar la nueva respuesta de p ( n ) x n y m = p ( n ) R ( x , y ) x y y 3R(x,y)p(n)xn ym=p(n)R(x,y)xyy3
domotorp

3
Bueno, la primera parte de mi respuesta es sobre problemas de búsqueda con una solución única, pero eso, por supuesto, no es necesario. Ya la segunda parte de mi respuesta es sobre problemas de búsqueda con potencialmente muchas soluciones. Lo que quise decir con mi comentario anterior es la simple observación de que si es un algoritmo de tiempo múltiple aleatorio que genera un elemento aleatorio uniforme de , o resuelve un problema , entonces " dado , calcular una cadena de bits aleatorios que hace que resuelva ”es un problema TFNP, y es reducible a él. No hay singularidad involucrada. A(x){0,1,2}SxASS
Emil Jeřábek

4

Así que aquí hay una extensión del argumento de Emil que muestra que los problemas de búsqueda donde el número de soluciones es 1, 2 o 4 (no necesitamos saber cuáles) se pueden resolver de la manera anterior. Lo publico como respuesta porque es demasiado largo para un comentario y espero que alguien más inteligente que yo pueda probar que, de hecho, la cantidad de soluciones puede ser cualquier cosa que no sea divisible por 3.

Digamos que una cadena aleatoria está cerca de una solución (es decir, a para la cual mantiene) si una de , o mantiene. (Por simplicidad, supongamos que y . No son soluciones) en solución de Emil, fue suficiente para generar una cadena aleatoria salida y excepto que localmente alrededor de violín en soluciones; No entro en detalles, veo su respuesta. Es suficiente para nosotros que si está cerca de una solución, entonces podemos matar un número arbitrarioryR(x,y)R(x,r)R(x,r+1)R(x,r+2)y=0y=1rrmod3rmod3posiblemente generando una solución para que para el resto de 's la función proporcione un número perfectamente uniforme .rrmod3mod3

Ahora, supongamos que el número de soluciones es 1 o 2 para cualquier . Generamos dos cadenas aleatorias de longitud : y . Si al menos uno de ellos no está cerca de una solución, . Por simplicidad, supongamos que es par para que tengamos un 0 extra si acabamos de hacer esto, y también supongamos que si hay dos soluciones, están lejos. Si y están cerca de la misma solución, jugamos un poco para que matemos un 0. Si y están cerca de diferentes soluciones, entonces si , jugamos un poco para matar un 1, y sixnr1r2r1+r2mod3nr1r2r1r2r1<r2r1>r2 , jugueteamos para matar un 2. De esta manera, si solo hay una solución, matamos exactamente un 0, mientras que si hay dos soluciones, matamos dos 0 y uno 1 y uno 2.

Este argumento no puede extenderse a 3 soluciones, pero puede ser para 4, y desde aquí seré muy esquemático. Genere cuatro cadenas aleatorias, y menos que todas estén cerca de una solución. Nuevamente, suponga que hay un 0 extra y las soluciones siempre están lejos. Si todos los están cerca de la misma solución, jugueteamos para matar un 0. Si tres de los están cerca de la misma solución que es más pequeña que la solución a la que está cerca el cuarto , tocamos el violín alrededor para matar un 1. Si tres de los están cerca de la misma solución que es más grande que la solución a la que el cuartor 1 + r 2 + r 3 + r 4 mod 3 r i r i r i r i r i r ir1,r2,r3,r4r1+r2+r3+r4mod3riririririestá cerca, jugueteamos para matar un 2. Si todos los están cerca de una solución diferente, matamos tres . La corrección para una y dos soluciones es similar al caso anterior. Para cuatro soluciones, observe que matamos cuatro + tres ceros, seis ceros y seis ceros.ri

Creo que el razonamiento del último párrafo podría extenderse a cualquier número limitado de soluciones que no sea divisible por 3 con algo de álgebra. Una pregunta más interesante es si existe un protocolo que funcione para cualquier número de soluciones.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.