Project DelphiTaller de Tensores

Error: borrar dos celdas a la vez baja el número más deprisa

«La primera jugada de Strassen borra dos de los unos del tensor de la multiplicación donde una jugada escolar borra uno, así que deja menos celdas no nulas que una jugada escolar.»

weights = np.array([1, 0, 0, 1]) move = np.einsum("a,b,c->abc", weights, weights, weights) before = np.count_nonzero(rule) after = np.count_nonzero(rule - move) assert (before, after) == (8, 12)

La jugada resta 1 en ocho celdas. Dos valían 1 y pasan a 0, como dice la afirmación. Las otras seis valían 0 y pasan a −1, que es lo que la afirmación olvida. El número sube de 8 a 12, donde una jugada escolar habría dejado 7.

La victoria en siete jugadas empieza empeorando la posición, y por eso un jugador que solo acepta jugadas que bajan el número nunca la encuentra.