Pregunta diaria de Blue Bridge Cup (11): Complete los espacios en blanco (pitón)

Tema:

El cuadrado mágico consiste en completar algunos números en una matriz cuadrada de modo que la suma de los números en las filas, columnas y dos diagonales sea igual.
El cuadrado mágico más famoso de Europa es un cuadrado mágico de cuarto orden que figura en el grabado "Melancolía" creado por el matemático y pintor alemán Diller.
Completó los 16 números 1, 2, 3, ... 16 en la cuadrícula de 4 x 4.
Como se muestra en la figura, es decir:
16 ?? 13
?? 11?
9 ?? *
? 15? 1
Algunas cifras de la tabla se han revelado y algunas se han reemplazado por? Y *.
¿Podría calcular los números representados por? Y *. Y envíe el número representado por * como respuesta a esta pregunta.

Inserte la descripción de la imagen aquí

Solución:

La idea más simple para
completar los espacios en blanco es colocar
con fuerza los números restantes sin completar en números, organizar todos los números y
luego completarlos en la matriz en orden.
Calcule la suma de los números de filas, columnas y dos diagonales
cuando la salida es igual * Valor de

Código:

nums = itertools.permutations([2, 3, 4, 5, 6, 7, 8, 10, 12, 14])

for i in nums:
    num = list(i)
    sum_1 = 16 + num[0] + num[1] + 13
    sum_2 = num[2] + num[3] + 11 + num[4]
    sum_3 = 9 + num[5] + num[6] + num[7]
    sum_4 = num[8] + 15 + num[9] + 1
    sum_5 = 16 + num[2] + 9 + num[8]
    sum_6 = num[0] + num[3] + num[5] + 15
    sum_7 = num[1] + 11 + num[6] + num[9]
    sum_8 = 13 + num[4] + num[7] + 1
    sum_9 = 16 + num[3] + num[6] + 1
    sum_10 = 13 + 11 + num[5] + num[8]

    if sum_1 == sum_2 == sum_3 == sum_4 == sum_5 \
            == sum_6 == sum_7 == sum_8 == sum_9 == sum_10:
        print(num[7])
        break

Responder:

12

Supongo que te gusta

Origin blog.csdn.net/weixin_50791900/article/details/112756255
Recomendado
Clasificación