Programa de Python para imprimir el patrón de tablero de ajedrez de nxn usando numpy

Dado n, imprima el patrón de tablero de ajedrez para una array anxn

Patrón de tablero de ajedrez para n = 8:

Consta de n * n cuadrados de alternancia 0 para blanco y 1 para negro.

Podemos hacer lo mismo usando bucles for anidados y algunas condiciones if, pero usando la biblioteca numpy de Python, podemos importar una array 2-D y obtener el patrón de tablero de ajedrez usando cortes.
W2 usará la siguiente función de python para imprimir el patrón:

x = np.zeros((n, n), dtype=int)

Usando esta función, inicializamos una array 2-D con 0 en todos los índices usando numpy

  • x[1::2, ::2] = 1 : corte desde la primera fila de índice hasta 1+2+2… y complete todas las columnas con 1 comenzando desde 0 hasta 0+2+2… y así sucesivamente.
  • x[::2, 1::2] = 1 : Cortar desde la fila 0 hasta 0+2+2… y llenar todas las columnas con 1 comenzando desde 1 hasta 1+2+2+…..

Función de np.zeros((n, n), dtype=int) : A menudo, los elementos de una array se desconocen originalmente, pero se conoce su tamaño. Por lo tanto, NumPy ofrece varias funciones para crear arrays con contenido de marcador de posición inicial. Estos minimizan la necesidad de hacer crecer arreglos, una operación costosa. El uso del parámetro dtype inicializa todos los valores con tipo de datos int.
Por ejemplo: np.ceros, np.unos, etc.

# Python program to print nXn
# checkerboard pattern using numpy
  
import numpy as np
  
# function to print Checkerboard pattern
def printcheckboard(n):
      
    print("Checkerboard pattern:")
  
    # create a n * n matrix
    x = np.zeros((n, n), dtype = int)
  
    # fill with 1 the alternate rows and columns
    x[1::2, ::2] = 1
    x[::2, 1::2] = 1
      
    # print the pattern
    for i in range(n):
        for j in range(n):
            print(x[i][j], end =" ") 
        print() 
  
  
# driver code
n = 8
printcheckboard(n)

Producción:

Checkerboard pattern:
0 1 0 1 0 1 0 1 
1 0 1 0 1 0 1 0 
0 1 0 1 0 1 0 1 
1 0 1 0 1 0 1 0 
0 1 0 1 0 1 0 1 
1 0 1 0 1 0 1 0 
0 1 0 1 0 1 0 1 
1 0 1 0 1 0 1 0 

Código fuente mejorado basado en la suposición de que Checkerboard siempre es un nXn par, es decir, n es par

# Python program to print nXn Assuming that n 
# is always even as a checkerboard was
  
import numpy as np
def printcheckboard(n):
    final = []
    for i in range(n):
        final.append(list(np.tile([0,1],int(n/2))) if i%2==0 else list(np.tile([1,0],int(n/2))))
    print(np.array(final))
  
  
# driver code
n = 8
printcheckboard(n)

Producción:

Checkerboard pattern:
[[0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]
 [0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]
 [0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]
 [0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]]

Publicación traducida automáticamente

Artículo escrito por Striver y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *