Ejercicio: 3Eva2010TII_T1 Matriz con aleatorios no repetidos (desordena)
Algoritmo en Python
Propuesta de solución:
# ICM00794-Fundamentos de Computación - FCNM-ESPOL
# 3Eva_IIT2010_T1 Matriz con aleatorios no repetidos (desordena)
# Propuesta: edelros@espol.edu.ec
# Tarea: integrar con tema 3
import numpy as np
import random as rnd
def desordena(n):
matriz = -1*np.ones(shape=(n,n), dtype=int)
usados = []
# entero aleatorio [0,n**2), no incluye n**2
intervalo = n**2
fila = 0
while not(fila>=n):
columna = 0
while not(columna>=n):
# numero no repetido
numero = int(rnd.random()*intervalo)+0
while numero in usados:
numero = int(rnd.random()*intervalo)+0
matriz[fila,columna] = numero
usados.append(numero)
columna = columna + 1
fila = fila + 1
return(matriz)
resultado del algoritmo:
>>> desordena(3)
array([[0, 7, 2],
[6, 5, 8],
[4, 1, 3]])
>>> desordena(3)
array([[7, 3, 6],
[8, 1, 0],
[5, 2, 4]])
>>>