Fill an array with random numbers so that their sum and array length will be equal to the given values as input. Function will generate 1 value at a time (not whole array at once)
Example
Let's say you are asked to fill 5 elements (n = 5) in an empty array where summation of their elements (sum_up = 4) should be 4. Then the function will be invoked 5 times in the test suite, and your function supposed to check the array being constructed (sum_array) and provide 1 element each time.
Tricky problem !!
lucky shot
well done guillaume, thanks for trying random numbers as well. great effort!
well done alfonso, thanks for trying random numbers as well. im learning new techniques here as well.
well done. alfonso how can i amend the problem so that the coder will be forced to generate random values? :)
true randomness is a bit involved to test (particularly without the stats toolbox), plus the sum constrain adds some additional complexity to the randomness of the resulting values (see for example this Cody problem: http://www.mathworks.com/matlabcentral/cody/problems/331-compute-area-from-fixed-sum-cumulative-probability). In any way, the simplest solution to discourage this sort of extremely-non-random solutions would probably be running your current testsuite twice (with identical inputs) and then checking that the returned vectors are different...
Another possibility, would be to test that there is no repetition in the returned values, which can easily be tested with: assert(all(diff(sort(sum_array))));
you're right guillaume, i apppreciate that.
Make an N-dimensional Multiplication Table
106 Solvers
231 Solvers
200 Solvers
91 Solvers
378 Solvers