Ejercicio: 1Eva2004TII_T4 Matriz de paridad

Establecer una matriz de n filas y n+1 columnas.
matriz = np.zeros(shape=(n,n+1),dtype=int)
Para cada casilla en cada fila y columna, generar un aleatorio de dos posibilidades que mínimo puede ser cero.
aleatorio = int(rnd.random()*2)+0
con lo que se genera la matriz de números aleatorios.
| Datos | Paridad | ||||||
| 1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 |
| 1 | 0 | 1 | 1 | 0 | 1 | 1 | 1 |
| 1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 | 1 | 1 | 0 |

Al finalizar una fila, considere la suma de fila para revisar la paridad con el residuo de la división para 2.
residuo = sumafila % 2
Si hay residuo el número es impar y se debe escribir el número 1 en la última casilla de toda la fila (fila, n), es decir se completa la paridad.
if residuo: # sumafila es impar
matriz[fila,n] = 1
En el caso opuesto, que no hay residuo=0, el conteo de '1' ya es par y se deja el valor cero en la última casilla.
Algoritmo en Python
# 1Eva_IIT2004_T4 Matriz de paridad
import numpy as np
import random as rnd
# INGRESO
n = 7 # tamaño matriz
# PROCEDIMIENTO
# matriz de n filas y n+1 columnas
matriz = np.zeros(shape=(n,n+1),dtype=int)
# recorre matriz
for fila in range(0,n,1):
sumafila = 0
for columna in range(0,n,1):
aleatorio = int(rnd.random()*2)+0
matriz[fila,columna] = aleatorio
sumafila = sumafila + aleatorio
# revisa residuo paridad
residuo = sumafila % 2
if residuo: # sumafila es impar
matriz[fila,n] = 1
# SALIDA
print(' Matriz obtenida')
print(matriz)
resultado:
Matriz obtenida
[[0 1 1 1 0 1 1 1]
[1 1 0 1 0 0 1 0]
[0 1 1 1 0 1 1 1]
[1 0 0 1 1 0 1 0]
[0 1 0 0 0 1 0 0]
[1 0 0 0 1 1 0 1]
[1 0 0 0 1 0 1 1]]
>>>
Nota: Observe que la matriz contiene números aleatorios, por lo que el resultado varía cada vez que se ejecuta el algoritmo.