'''
Να γραφεί πρόγραμμα που θα χρησιμοποιεί συνάρτηση για να γεμίζει k
διανύσματα n στοιχείων (k<n) με ψευδοτυχαίες πραγματικές τιμές στο [1..100]
και εν συνεχεία συνάρτηση που θα τυπώνει τα διανύσματα αυτά στην οθόνη καθώς
και συνάρτηση που θα υπολογίζει και θα τυπώνει τα μέτρα των διανυσμάτων
στον Rn:
'''
#!/usr/bin/python3
import random
import math

def fill_vectors(k,n):
	vectors=[]
	for _ in range(k):
		vector=[random.uniform(1,100) for _ in range(n)]
		vectors.append(vector)
	return vectors

def print_vectors(vectors):
	for i,v in enumerate(vectors):
		print(f"Dianysma {i+1}: {v}")

def vector_magnitudes(vectors):
	for i,v in enumerate(vectors):
		magnitude= math.sqrt(sum(x**2 for x in v))
		print(f"Metro dianysmatos {i+1}: {magnitude:.2f}")

def main():
	while True:
		try:
			k=int(input("Dwse arithmo dianysmatwn (k): "))
			n=int(input("Dwse arithmo stoixeiwn ana dianysma (n): "))

			if k<=0 or n<=0:
				raise ValueError("ta a,b >= 0")
			if k>n:
				raise ValueError("prepei k<n")
			break
		except Exception as e:
			print(f"Error {e}")
			exit(1)

	vectors = fill_vectors(k,n)
	print("---Dianysmata---")
	print_vectors(vectors)

	print("\n---Metra Dianysmatwn---")
	vector_magnitudes(vectors)

if __name__=="__main__":
	main()
