Forum >> Principianti >> inserimento numeri casuali dentro una matrice

Pagina: 1

ciao ragazzi sono un nuovo utente, quindi chiedo scusa se sbaglio sezione in cui inserire il mio problema :eyeroll:.
Sto creando la prima parte di un programma python di cifratura e vorrei inserire dei valori casuali dentro una matrice n * n.




questo è il codice

import secrets
import numpy as np

plaintext = input("inserisci parola: ") # inserisci una parola

for i in plaintext: # il ciclo si ripete tante volte
# quanti sono i caratteri della parola

x = secrets.randbelow(25) # creo x casuali a ogni ciclo
print(x, end = "") # stampo x a ogni ciclo
matrice = np.array([x * x]) # vorrei inserire le x create ad una ad una
# nella matrice
print("\n\n", matrice, end = "") # e infine stampare la matrice








so che è commentato e indentato malissimo ma sto impazzendo. In pratica chiedo in input una parola, e fin qua tutto ok.

Poi creo un ciclo che si ripete tante vole quanto la lunghezza (numero di caratteri) della parola inserita, e anche qui funziona.

Dentro il ciclo creo 'x' che sarà un numero casuale che verrà stampato, ovviamente crea e stampa nuovi numeri random a ogni ciclo.




Il problema è nella matrice. So che si tratta in pratica di una lista, che però non stiamo ancora studiando a lezione, e sto cercando di portarmi avanti.

io vorrei inserire all'interno della matrice (lista), tutti i numeri casuali. In pratica creo il numero casuale (poi toglierò il print, che ho usato solo per il debug)

e voglio che questo numero venga inserito nella matrice, a ciclo ovviamente, cosi da riempirla tutta con i numeri generati




Attendo risposta 8)
intendi inserire un valore nella lista?

in questo caso dovresti usare il metodo "append"
più o meno si, ma il metodo append inserisce gli elementi solo alla fine della lista, mentra invece la mia lista è vuota e devo inserire al suo interno dei numeri casuali.
In pratica ho una matrice vuota da riempire con n * n numeri casuali



giuseppe giarratana said @ 2019-03-23 13:47:11:
più o meno si, ma il metodo append inserisce gli elementi solo alla fine della lista, mentra invece la mia lista è vuota e devo inserire al suo interno dei numeri casuali.
In pratica ho una matrice vuota da riempire con n * n numeri casuali
Se hai una lista, vuota o piena poco importa, con append inserisci un valore al suo interno. Se hai n valori poco importa, cercando di capire quello che chiedi, se sostituisci il print() con append non vai molto lontano da quello che vuoi ottenere giusto? Beh... NO.

Anche se ti ho descritto un approccio mediamente corretto, per il tuo caso non va bene, perché tu non hai una semplice lista, ma un array di numpy, te ne eri accorto vero? Devi sapere che non mi trova molto favorevole apprendere le fondamenta di un linguaggio di programmazione in questo modo, ti consiglio di andare per gradi e non saltare troppo a destra e sinistra per troppa fretta di apprendimento. Vabbé andiamo avanti per tua curiosità, la tua problematica potresti risolverla con np.append(matrice, [lista_numeri_casuali]).

Mettiamo che hai un array simile:
>>> matrice
array([50])
>>> lista_casuale = random.sample(range(100), 10) #ho usato random, ma tu fai come credi
>>> matrice = np.append(matrice, lista_casuale)
>>> matrice
array([50, 15, 72, 82, 43, 94, 67, 41, 86, 42, 64])
Ci siamo a questo punto?

Cya

grazie Daniele, si lo so vado un po di corsa ma sto seguendo python e sicurezza informatica all'università e siccome di quest'ultima dovremo preparare un progetto che comprende degli algoritmi di criptazione e decriptazione testi, ho deciso che devo andare molto più veloce e portarmi molto più avanti in python se voglio riuscire a programmare decentemente e sviluppare algoritmi di cifratura e decifratura. Ti ringrazio del consiglio, vedrò di seguire tutto passo passo. Al più presto proverò quanto mi hai mandato e poi cambierò lo stato del messaggio scrivendo di aver raggiunto il mio obiettivo!


Pagina: 1



Esegui il login per scrivere una risposta.