import numpy as np import pandas as pd import matplotlib.pyplot as plt import math from functools import reduce import random as ran x = np.random.multinomial(10000, [1/6.]*6, size=1) type(x) x[1:[:]] z = x.tolist() u = [] for i in z: for l in i: u.append(l) N = len(u) N y = range(1, N + 1) plt.bar(y, height = u) plt.show() a = np.arrange(3) x.shape vec = np.array([1,3,5]) type(vec) vec * 1/9 mu, sigma = 0, 1 # mean and standard deviation s = np.random.normal(mu, sigma, 99900) mu2 = 100 s2 = np.random.normal(mu2, sigma, 100) sdf = np.append(s, s2) np.mean(sdf) np.mean(s) np.mean(s2) np.median(sdf) np.median(s) np.median(s2) pop = np.array([1,3,5]) for i in pop: print(i) np.multiply(i for i in pop) help(np.multiply) x1 = np.arange(9.0).reshape((3, 3)) x1 np.prod([1,2,3,4]) def gen(n,k): if(k==1): return [[n]] if(n==0): return [[0]*k] return [ g2 for x in range(n+1) for g2 in [ u+[n-x] for u in gen(x,k-1) ] ] n, k = 2, 2 possible = gen(n, k) possible def mult_function(outcome_list, prob_list): n_fac = math.factorial(n) outcome_fac_list = [] prob_out_list = [] final_prob_list = [] for i in range(len(outcome_list)): outcome_fac_list.append([math.factorial(l) for l in outcome_list[i]]) prob_out_list.append([prob_list[l]**outcome_list[i][l] for l in range(len(prob_list))]) for i in range(len(outcome_list)): final_prob_list.append([n_fac*np.prod(prob_out_list[i]/np.prod(outcome_fac_list[i]))]) return n_fac, outcome_fac_list, prob_out_list, final_prob_list probby = math.factorial(n)*np.prod([1.0, 0.18524475214924618])/np.prod([1, 2]) def n_factorial(outcome_list, prob_list): n_fac = math.factorial(n) b_fac = [] b_fac_final = [] the_list = [] for i in range(len(outcome_list)): temp_list = [] for sub in outcome_list[i]: temp_list.append(math.factorial(sub)) b_fac.append(temp_list) other_temp_list = [prob_list[l]**outcome_list[i][l] for l in range(len(outcome_list[i]))] the_list.append(reduce(lambda x,y:x*y,other_temp_list)) for i_ in range(len(b_fac)): temp_list = [] temp_list.append(reduce(lambda x,y:x*y,b_fac[i_])) b_fac_final.append(temp_list) for i in range(len(the_list)): the_list[i] *=n_fac/b_fac_final[i][0] return n_fac, b_fac_final, the_list r = [0.4,0.6] s = sum(r) r = [ i/s for i in r ] a,b,c = n_factorial(possible,r) a,b,c,d = mult_function(possible,r) a b c d pol = [r[l]**possible[18][l] for l in range(len(possible[0]))] pol_ = reduce(lambda x,y:x*y, pol) pol_ sum(c) r sum(r) r[0]**3+r[0]**2*r[1]*3+r[0]*r[1]**2*3+r[1]**3 d = b*c a n_fac = math.factorial(len(possible[0])) n_fac str(r) mult_list = pd.DataFrame( {'Outcome': possible, 'Probability': c }) mult_list def prob_of_outcome(outcome_list, prob_list): prob_out = [] for i in outcome_list: math.factorial(len(i)) / np.multiply(math.factorial(l) for l in outcome_list[i]) * np.multiply() plt.figure() mult_list.plot(kind='barh') plt.show() np.sum([2,3,4]) def mult_list(n,k,prob_dist): list_of_events = gen(n,k) list_of_probs = [] list_of_real_probs =[] list_of_payoffs = [] for li in list_of_events: list_of_probs.append((math.factorial(n)/np.prod([math.factorial(el) for el in li]))*(np.prod([prob_dist[l]**li[l] for l in range(len(prob_dist))]))) list_of_real_probs.append([round(n*prob_dist[l],2) for l in range(len(prob_dist))]) for i in range(len(list_of_events)): minus = 0 for l in range(len(list_of_events)): if l != i: minus += np.sum[(list_of_events[i][pok] - list_of_events[l][pok]) for pok in range(len(list_of_events[i]))] list_of_payoffs.append(100 - minus) return list_of_events, list_of_probs, list_of_real_probs np.sum([1,2,3],[2,3,4])