Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

Solution 335635

Submitted on 18 Oct 2013 by Alfonso Nieto-Castanon

Correct

1041Size
Leading solution size is 447.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test
Code Input and Output
1
Pass
 
%%
assert(isequal(speed_decimation(10,3),4))

                    
2
Pass
 
%%
assert(isequal(speed_decimation(1024,3),676))

                    
3
Pass
 
%%
assert(isequal(speed_decimation(2012,50),543))

                    
4
Pass
 
%%
assert(isequal(speed_decimation(30,5),3))

                    
5
Pass
 
%%
assert(isequal(speed_decimation(10,10),8))

                    
6
Pass
 
%%
assert(isequal(speed_decimation(2048,2),1))

                    
7
Pass
 
%%
assert(isequal(speed_decimation(2048,1024),1773))

                    
8
Pass
 
%%
t_in=clock;
j=1:50;
v=arrayfun(@(x) speed_decimation(100000,x),j);
correct=[100000 68929 92620 32942 40333 54212 27152 67341 42610 77328 82991 13252 91717 6850 45758 71249 38339 86953 63331 66903 72606 83990 87828 46101 99979 47141 16871 60389 51549 76409 42868 78390 79590 27573 95835 53636 36954 39891 45943 63811 71589 70886 49313 4069 93694 96031 20739 41403 93714 60023];
assert(all(isequal(v,correct)));
t_out=etime(clock,t_in)*1000;
fprintf('Actual Time = %.0f msec\n',t_out)
v=[100000:100000:1000000];
v=arrayfun(@(x) speed_decimation(x,17),v);
correct=[38339 162859 151602 99465 462955 559860 337009 546467 563784 364193];
assert(all(isequal(v,correct)));
t_out=etime(clock,t_in)*1000;
fprintf('Actual Time = %.0f msec\n',t_out)
assert(isequal(speed_decimation(2^20,2^9),210856));
t_out=etime(clock,t_in)*1000;
t2=min(100000,t_out);
fprintf('Actual Time = %.0f msec\n',t_out)
feval(@assignin,'caller','score',floor(t2));
Actual Time = 450 msec
Actual Time = 947 msec
Actual Time = 1041 msec