# Import necessary library
import numpy as np

# Define a function named 'distance' which takes three parameters
def distance(P0, P1, p):
    # Calculate the vector T and V
    T = P1 - P0
    V = p - P0
    # Calculate the scalar L and U using dot product
    L = np.sum(T**2, axis=1)
    U = np.sum(T*V, axis=1) / L
    # Clip U to ensure it is within the bounds of [0,1]
    U = np.clip(U, 0, 1)
    # Calculate C using vector T and scalar U
    C = P0 + U[:,np.newaxis]*T
    # Calculate the distance between C and p using norm function
    return np.linalg.norm(C - p, axis=1)

# Create three arrays of random numbers using uniform distribution
P0 = np.random.uniform(-10, 10, (10,2))
P1 = np.random.uniform(-10,10,(10,2))
p = np.random.uniform(-10, 10, (10,2))
# Print the result of applying the distance function to each element in p
print(np.array([distance(P0,P1,p_i) for p_i in p]))