win_rate = 0; for B = 0 : 26 R = 26 - B; prob_distr = nchoosek(26, R) * nchoosek(26, B) / nchoosek(52, 26); win_R = 0; win_B = 0; if R >= 2 win_R = nchoosek(R, 2); end if B >= 2 win_B = nchoosek(B, 2); end prob_win_given_distr = (win_R + win_B) / nchoosek(26, 2); contribution = prob_distr * prob_win_given_distr; win_rate = win_rate + contribution; fprintf('B: %d R: %d distr_winrate: %.03f cum_winrate: %.03f\n', B, R, prob_win_given_distr, win_rate); end