code: def samples_multidimensional_uniform(bounds,num_data):
      '''
      Generates a multidimensional grid uniformly distributed.
      :param bounds: tuple defining the box constraints.
      :num_data: number of data points to generate.
  
      '''
      dim = len(bounds)
      Z_rand = np.zeros(shape=(num_data,dim))
      for k in range(0,dim): Z_rand[:,k] = np.random.uniform(low=bounds[k][0],high=bounds[k][1],size=num_data)
      return Z_ranf samples_multidimensional_uniform(bounds,num_data):
      '''
      Generates a multidimensional grid uniformly distributed.
      :param bounds: tuple defining the box constraints.
      :num_data: number of data points to generate.
  
      '''
      dim = len(bounds)
      Z_rand = np.zeros(shape=(num_data,dim))
      for k in range(0,dim): Z_rand[:,k] = np.random.uniform(low=bounds[k][0],high=bounds[k][1],size=num_data)
      return Z_rand
docs: Generates a multidimensional grid uniformly distributed.
      :param bounds: tuple defining the box constraints.
      :num_data: number of data points to generate.