Cody

Problem 46691. Kaggle: Planetoid Game of Life - Solve 40 non-trivial Puzzles

Solution 3180506

Submitted on 12 Oct 2020 by Tim
  • Size: 186
  • This is the leading solution.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test Status Code Input and Output
1   Pass
%'https://sites.google.com/site/razapor/matlab_cody/mtest.mat?attredirects=0&d=1'; %mtest format is [casenumer, iterations, start1:625,finish1:625] for 50K cases 0:49999 %'https://sites.google.com/site/razapor/matlab_cody/mtrain.mat?attredirects=0&d=1'; tic fname='https://sites.google.com/site/razapor/matlab_cody/mtest.mat?attredirects=0&d=1'; urlwrite(fname,'mtest.mat') %1.22s load('mtest.mat'); %0.42s toc numtosolve=40; mstart = solveLife(mtest,numtosolve); toc mstart=unique(mstart,'rows'); % remove exact duplicate solutions %Check for Trivial solutions; Life(mtest(case))==mtest(case) valid=1; for i=1:size(mstart,1) % icase=mstart(i,1); %50000:99999 iter=mtest(icase-49999,2); %Test cases start at 50000 A=reshape(mtest(icase-49999,3:end),25,25); Abase=A; for j=1:iter C=0; for r=-1:1 % -1 Up Using circshift to perform wrap convolution Ar=circshift(A,r,1); for c=-1:1 % -1 Left Arc=circshift(Ar,c,2); C=C+Arc; end end A = C==3 | A&C==4; end %j if isequal(Abase,A) % mtest [case, iter, data1:625] valid=0; %Trivial solution entered break; end end %main loop i toc % Trivial check timer Lprocess=size(mstart,1)*valid; valid=0; % Reset valid as counter for solutions for i=1:Lprocess % skip if any were trivial icase=mstart(i,1); %50000:99999 iter=mtest(icase-49999,2); %Test cases start at 50000 A=reshape(mstart(i,2:end),25,25); for j=1:iter C=0; for r=-1:1 % -1 Up Using circshift to perform wrap convolution Ar=circshift(A,r,1); for c=-1:1 % -1 Left Arc=circshift(Ar,c,2); C=C+Arc; end end A = C==3 | A&C==4; end %j if ~isequal(A(:)',mtest(icase-49999,3:end)) % mtest [case, iter, data1:625] valid=0; %Evolved does not match goal break; else valid=valid+1; end end %main loop i toc assert(valid>=40)

ans = '/users/mss.system.Mscjl9/mtest.mat' Elapsed time is 1.921027 seconds. Elapsed time is 16.974751 seconds. Elapsed time is 16.995950 seconds. Elapsed time is 17.007554 seconds.

Suggested Problems

More from this Author246

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!