439,985 Members | 1,574 Online
Need help? Post your question and get tips & solutions from a community of 439,985 IT Pros & Developers. It's quick & easy.

# Expected Value

 P: n/a How would I get the expected value out of this information. I have tried many times to understand this but am unable to. The function expectP(z) computes E(X) for the random variable representing a sample over the probability generated by "pf" for the set of discrete items [1,100000]. The constant c is needed so that the probability sum to 1.0, as required by the definition of probability. The function pf(r,c,x) returns the probability that item x will be equal to a randomly chosen variable, denoted by P(x) or P(X=x) in mathematical texts, where c is the constant mentioned above and r is needed because we are considering a power law distribution. The function expectP(z) computes E(X) with r=z, using pf(r,c,x) where x ranges over the set of discrete items in [1,100000] The program: def norm(r): "calculate normalization factor for a given exponent" # the function for this distribution is P(x) = c*(x**-r) # and the job of this norm function is to calculate c based # on the range [1,10**5] sum = 0.0 for i in range(1,1+10**5): # final sum would be more accurate by summing from small values # to large ones, but this is just a homework, so sum 1,2,..10**5 sum += float(i)**-r return 1.0/sum def pf(r,c,x): "return a power-law probability for a given value" # the function for this distribution is P(x) = c*(x**-r) # where the constant c is such that it normalizes the distribution return c*(float(x)**-r) #--------- between these lines, define expectP() function ----------------- #--------- end of expectP() definition ------------------------------------ def showExpectP(limit): "display ExpectP(limit) by rounding down to nearest integer" k = expectP(limit) return int(k) if __name__ == '__main__': import doctest, sys doctest.testmod(sys.modules[__name__]) Sep 11 '05 #1