Porting algorithm from Python to Go
Question: I am trying to port this python code to Go but there is no **beta()** in math
package. Where can i find beta and other functions required for this?

    
    
    from numpy import *
    from scipy.stats import beta
    
    
    class BetaBandit(object):
        def __init__(self, num_options=2, prior=(1.0,1.0)):
            self.trials = zeros(shape=(num_options,), dtype=int)
            self.successes = zeros(shape=(num_options,), dtype=int)
            self.num_options = num_options
            self.prior = prior
    
        def add_result(self, trial_id, success):
            self.trials[trial_id] = self.trials[trial_id] + 1
            if (success):
                self.successes[trial_id] = self.successes[trial_id] + 1
    
        def get_recommendation(self):
            sampled_theta = []
            for i in range(self.num_options):
                #Construct beta distribution for posterior
                dist = beta(self.prior[0]+self.successes[i],
                            self.prior[1]+self.trials[i]-self.successes[i])
                #Draw sample from beta distribution
                sampled_theta += [ dist.rvs() ]
            # Return the index of the sample with the largest value
            return sampled_theta.index( max(sampled_theta) )
    


Answer: If you are talking about
[`numpy.random.beta`](http://docs.scipy.org/doc/numpy/reference/generated/numpy.random.beta.html),
the Beta distribution which is a special case of the Dirichlet distribution,
and is related to the Gamma distribution, you can check the project
[**`gostat`**](https://code.google.com/p/gostat/).

It has a [`beta.go` source
code](https://code.google.com/p/gostat/source/browse/stat/beta.go) which
implements that function.

