code: def LogLikelihood(self, data):
          
          m = len(data)
          if self.n < m:
              return float('-inf')
  
          x = self.Random()
          y = numpy.log(x[:m]) * data
          return y.sum()
docs: Computes the log likelihood of the data.
  
          Selects a random vector of probabilities from this distribution.
  
          Returns: float log probability