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 184058

Submitted on 1 Jan 2013 by Susan

Correct

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

This solution is outdated. To rescore this solution, log in.

Test Suite

Test
Code Input and Output
1
Pass
 
%%
feval(@assignin,'caller','score',2000);

                    
2
Pass
 
%%
tic
urlwrite('http://tinyurl.com/matlab-KnotsContest','Knots_contest.mat')
urlwrite('http://tinyurl.com/matlab-numKnots','numKnots.m') % Fast numKnots
rehash path % Make numKnots.m available
toc
ans =
/users/msssystem2/Knots_contest.mat
ans =
/users/msssystem2/numKnots.m
[Warning: Function /opt/mlsedu/mdcsserver/latest/m/web_common/shadow/license.m has the same name as a
MATLAB builtin. We suggest you rename the function to avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 226
  In verifyCode at 40
  In fevalJSON at 14]
[Warning: Function /opt/mlsedu/mdcsserver/latest/m/common/shadow/home.m has the same name as a MATLAB
builtin. We suggest you rename the function to avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 226
  In verifyCode at 40
  In fevalJSON at 14]
[Warning: Function /opt/mlsedu/mdcsserver/latest/m/common/shadow/keyboard.m has the same name as a
MATLAB builtin. We suggest you rename the function to avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 226
  In verifyCode at 40
  In fevalJSON at 14]
[Warning: Function /opt/mlsedu/mdcsserver/latest/m/common/shadow/more.m has the same name as a MATLAB
builtin. We suggest you rename the function to avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 226
  In verifyCode at 40
  In fevalJSON at 14]
[Warning: Function /opt/mlsedu/mdcsserver/latest/m/common/shadow/pause.m has the same name as a MATLAB
builtin. We suggest you rename the function to avoid a potential name conflict.]
[> In verifyCode>evaluateCode at 226
  In verifyCode at 40
  In fevalJSON at 14]
Elapsed time is 2.810360 seconds.
3
Pass
 
%%
cases=50;
nKnots=zeros(cases,1);
KnotTime=zeros(cases,1);
load Knots_contest.mat
for n=1:cases
 a=testsuite(n).a;
 xyIn=testsuite(n).xyIn;
 wts=testsuite(n).wts;
 rng(2,'twister')
 time0 = cputime;
 xyOut=solver(a,xyIn,wts);
 KnotTime(n) = cputime - time0;
 if size(unique(xyOut,'rows'),1)<length(wts)
  nKnots(n)=Inf; % Points must be unique
 else
  nKnots(n)=numKnots(xyOut,a);
 end
end
for n=1:cases
 fprintf('%2i KnotTime(msec) %5i  Knots %4i\n',n,floor(KnotTime(n)*1000),nKnots(n))
end
TKnotTime=sum(KnotTime);
fprintf('Sum KnotTime %5i  msec\n',floor(TKnotTime*1000))
Tknots=sum(nKnots);;
fprintf('Knot Score %10.2f\n',Tknots)
fprintf('Cody Maximum allowed Elapsed time is approximately 53 seconds\n')
toc
feval(  @assignin,'caller','score',min( 2000,Tknots )  );
1 KnotTime(msec)  1120  Knots    7
 2 KnotTime(msec)  1389  Knots   43
 3 KnotTime(msec)    99  Knots    5
 4 KnotTime(msec)   120  Knots   23
 5 KnotTime(msec)   139  Knots   10
 6 KnotTime(msec)   689  Knots   28
 7 KnotTime(msec)   120  Knots    6
 8 KnotTime(msec)  1910  Knots   17
 9 KnotTime(msec)   139  Knots    9
10 KnotTime(msec)   149  Knots   26
11 KnotTime(msec)    90  Knots    3
12 KnotTime(msec)    90  Knots    1
13 KnotTime(msec)  2009  Knots   19
14 KnotTime(msec)   149  Knots    0
15 KnotTime(msec)   450  Knots   38
16 KnotTime(msec)  2750  Knots   41
17 KnotTime(msec)   669  Knots   22
18 KnotTime(msec)   139  Knots   17
19 KnotTime(msec)  1139  Knots   32
20 KnotTime(msec)  1190  Knots   56
21 KnotTime(msec)   149  Knots   19
22 KnotTime(msec)   750  Knots   27
23 KnotTime(msec)  2059  Knots   37
24 KnotTime(msec)   420  Knots    8
25 KnotTime(msec)    79  Knots    0
26 KnotTime(msec)    69  Knots    2
27 KnotTime(msec)   269  Knots    0
28 KnotTime(msec)   109  Knots    7
29 KnotTime(msec)    70  Knots    2
30 KnotTime(msec)  1080  Knots   18
31 KnotTime(msec)   440  Knots   20
32 KnotTime(msec)  1929  Knots   19
33 KnotTime(msec)   170  Knots    0
34 KnotTime(msec)   199  Knots   25
35 KnotTime(msec)   250  Knots   10
36 KnotTime(msec)   100  Knots    9
37 KnotTime(msec)    50  Knots    2
38 KnotTime(msec)  1949  Knots   55
39 KnotTime(msec)  1019  Knots   16
40 KnotTime(msec)   289  Knots   11
41 KnotTime(msec)  1590  Knots   34
42 KnotTime(msec)  1560  Knots   35
43 KnotTime(msec)   100  Knots    6
44 KnotTime(msec)   450  Knots   12
45 KnotTime(msec)   179  Knots    9
46 KnotTime(msec)    49  Knots    0
47 KnotTime(msec)  1809  Knots   51
48 KnotTime(msec)   169  Knots   26
49 KnotTime(msec)  2750  Knots   50
50 KnotTime(msec)   350  Knots   21
Sum KnotTime 35029  msec
Knot Score     934.00
Cody Maximum allowed Elapsed time is approximately 53 seconds
Elapsed time is 40.248297 seconds.