<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def rvs(df, gamma, n):
 """ Generates random variables from a Skew t distribution Parameters df : float degrees of freedom parameter gamma : float skewness parameter n : int or list Number of simulations to perform; if list input, produces array """


        if type(n) == list:
            u = np.random.uniform(size=n[0]*n[1])
            result = Skewt.ppf(q=u, df=df, gamma=gamma)
            result = np.split(result,n[0])
            return np.array(result)
        else:
            u = np.random.uniform(size=n)
            if isinstance(df, np.ndarray) or isinstance(gamma, np.ndarray):
                return np.array([Skewt.ppf(q=np.array([u[i]]), df=df[i], gamma=gamma[i])[0] for i in range(n)])
            else:
                return Skewt.ppf(q=u, df=df, gamma=gamma)