Problem 52338. ICFP2021 Hole-In-Wall: Solve Score=0, where number Hole Vertices = Figure Vertices
The contest folds the figure in Red to fit within the hole shown in light grey ![](data:image/png;base64,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)
This Challenge is to solve ICFP problems 11, 13, 16, 17, 18, and 23 according to the Specification when given the hole vertices in hxy, original figure vertices in pxy, segment matrix mseg, and epsilon. The hxy matrix is [N+1,2] where N is number of hole vertices. A repeat of the first vertex occurs for drawing the hole. The pxy(original) and npxy(final) matrices are [P,2] where P is the number of figure vertices. The mseg indicates connected vertices that must maintain a length as a function of epsilon from the original length. The final figure vertices must be integer thus the allowed fuzziness of segment lengths.
Valid is 1) all npxy vertices on or inside the hole, hxy 2) all lengths squared of npxy segments must match the pxy segments within an allowed epsilon, abs(Lsqr(npxy,seg(i,:))/Lsqr(pxy,seg(i,:))-1)<= epsilon/1000000. Lsqr is length squared.
Score is sum of minimum square distances to the figure from each unique hole vertex.
npxy=Solve_nPeqnH(hxy, pxy, mseg, epsilon)
This challenge set all have optimal Scores of zero. The npxy vertices set must be a permutation of the hole vertices as number of figure vertices,nP, equals hole vertices, nH.
The function template includes routines to read ICFP problem files and to write ICFP solution files.
The ICFP 2021 Hole In Wall contest site has enabled a public user login to allow submissions. A login must be created to access all the problems and to submit solutions. Solutions are simple text files. Other challenges will show reading files, drawing figures, and producing submission files. To fully access the ICFP/Problems site use Register Team. Anyone can select Problems Page and then click problem numbers to see the puzzles and to download problem files.
Solution Stats
Solution Comments
Show commentsProblem Recent Solvers2
Suggested Problems
-
42 Solvers
-
Back to basics 22 - Rotate a matrix
909 Solvers
-
93 Solvers
-
How long is the longest prime diagonal?
398 Solvers
-
24 Solvers
More from this Author308
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!