gammaVector ::  Float -> Int -> Float -> [Float]
gammaVector gamma_kbar kbar b =
    [gamma1] ++ [gamma_n x | x <- [2..kbar]]
    where
      gamma1 = 1 - (1 - gamma_kbar) ** (b ** (1 - fromIntegral kbar))
      gamma_n n = 1 - (1 - gamma1) ** (b ** (fromIntegral n-1))


-- Creates new random markov state vector of size kbar
gammaVector ::  Float -> Int -> Float -> [Float]
gammaVector gamma_kbar kbar b =
    [gamma1] ++ [gamma_n x | x <- [2..kbar]]
    where
      gamma1 = 1 - (1 - gamma_kbar) ** (b ** (1 - fromIntegral kbar))
      gamma_n n = 1 - (1 - gamma1) ** (b ** (fromIntegral n-1))


-- Creates new random markov state vector of size kbar
gammaVector gamma_kbar kbar b =
    [gamma1] ++ [gamma_n x | x <- [2..kbar]]
    where
      gamma1 = 1 - (1 - gamma_kbar) ** (b ** (1 - fromIntegral kbar))
      gamma_n n = 1 - (1 - gamma1) ** (b ** (fromIntegral n-1))


-- Creates new random markov state vector of size kbar