To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016
I have trouble with me homework.
so the problem is this: i have n fair dices with 6 sides that roll all together and i need to calculate the probability of sum of dices side.
i need to write script when:
function prob = sumDicePDF(n,k) input: 1. number of dices(n >= 1) 2. k - integer number from n to 6n output: probability
example: sumDicePDF(3,4) ans = 0.0139 sumDicePDF(8,20) ans = 0.0218
i need to use equalition: probability = sigma[1:6](P(sum(n-1) = k - i) * 1/6
and i forbiden to use recursion so my script run time must be near n^2
i understood the problem but i cant find a way to biuld the loop for counting probability so my answer be prob=(1/6)^n*sumOfCounting;
so my quastion is how to make loop to find sumOfCounting.
vec = ones(1,n - 1); sumOfCounting = 0; for i = 1:6 for j = 1:length(vec) vec(j) = i; sumOfvalue = sum(vec); if k - sumOfvalue < 7 && k - sumOfvalue > 0 for m = 1:length(vec) sumOfCounting = sumOfCounting + length(vec) + 1 - m; end end end end
but it not counting all options so where is the problem?
thank and best wishes.
No products are associated with this question.
Nice try, but why not just use the sum() function - that's what it's there for:
% Roll the dice "numberOfRolls" times numberOfRolls = 200; % Number of times you roll all 6 dice. n = 10; % Number of dice. maxFaceValue = 6; rolls = randi(maxFaceValue, n, numberOfRolls)
% Sum up dice values for each roll. columnSums = sum(rolls, 1) % Find out how many times each sum occurred. edges = min(columnSums):max(columnSums) counts = histc(columnSums, edges) % Normalize grandTotalSum = sum(counts(:)) normalizedCountSums = counts / grandTotalSum bar(edges, normalizedCountSums, 'BarWidth', 1); grid on; % Enlarge figure to full screen. set(gcf, 'units','normalized','outerposition',[0 0 1 1]); % Give a name to the title bar. set(gcf,'name','Demo by ImageAnalyst','numbertitle','off') title('Frequency of Roll Sums', 'FontSize', 40);