Forum >> Principianti >> Problema matrici e numpy

Pagina: 1

Ragazzi ho scritto questo programmino per cifrare stringhe con l'Hill.
in uno dei commenti del codice indico il problema e dopo il codice stesso vi spiego il problema:




# creare la matrice n * n
import numpy as np

ordine_matrice = int(input("inserisci l'ordine della matrice: "))
forma_chiave = (ordine_matrice, ordine_matrice)
mini_forma_chiave = (ordine_matrice - 1, ordine_matrice - 1)
print(forma_chiave)
chiave = np.ndarray(forma_chiave)

for i in range(ordine_matrice):
for j in range(ordine_matrice):

chiave[i,j] = int(input("Inserisci valore matrice nella posizione "
"[{},{}]".format(i,j)))

# converto gli elementi in interi

chiave = chiave.astype(np.int64)
print("Stampa chiave int:")
print(chiave)

# inserisco il testo

testo = str(input("Inserisci il testo da cryptare: \n"))
testo = testo.replace(" ","")
testo = testo.replace(",","")
testo = testo.replace(":","")
testo = testo.replace(";","")
testo = testo.replace(".","")
diff = ordine_matrice - (len(testo) % ordine_matrice)
if len(testo) % ordine_matrice != 0:
for o in range(diff):
testo = testo + 'x'

print(testo)
lettere = "abcdefghijklmnopqrstuvwxyz"


#fase di encryption

lista_testo = []
alfabeto = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l",
"m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x",
"y", "z"]

for q in range(len(testo)):
lista_testo.append(testoq)

print("lista: ", lista_testo)

# converto gli elementi della lista con numeri ad essi corrispondenti

for k in range(len(lista_testo)):
for l in range(len(alfabeto)):
if lista_testok == alfabetol:
print("ciao")
lista_testok = l
else:
continue



print("nuova lista: ", lista_testo)

lista_testo = np.vstack(lista_testo)
print("lista testo", lista_testo)
len_lista_testo = int(len(lista_testo) / 2)






f2l = lista_testo[:2]

"""
print("tipo f2l: ", type(f2l))
chiphertext = np.dot(chiave, f2l)
print(chiphertext)
"""



# QUI C'E' IL PROBLEMA.

for i in range(len_lista_testo):
chiphertext = np.dot(chiave, f2l)
for x in range(2):
lista_testo = np.delete(lista_testox, x) # non mi elimina i primi 2
# elementi del vettore colonna
print(lista_testo)
continue

print(chiphertext)


il problema come vedete è nell'ultimo for.

Non capisco come eliminare i primi due elementi del vettore colonna. come faccio?

















Pagina: 1



Esegui il login per scrivere una risposta.