Problem 780. Give a matrix that matches itself when rotated
Given n and s, return a n-by-n matrix a of integers such that
sum(sum(a == rot90(a)))
is equal to exactly s. The integers should be chosen from the set 1 to n.
So for instance, if n is 2, and s is 2, you could return
a = [ 1 1 2 2 ]
since rot90(a) matches a in exactly one place.
For any n and s, a is of course not unique. I'm only checking to make sure the conditions are true.
Solution Stats
Problem Comments
-
5 Comments
In the problem description, you say "The integers should be chosen from the set 1 to n." However, in your example for a 2x2 matrix, you have a 3 as one of the terms. Am I missing something?
function a = match_rot(n)
The problem says given n and s.
However, only n is provided.
Are we allowed to set s?
s=feval(@evalin,'caller','s');
Lack of s input solved
Sorry guys. Sloppy problem creation on my part. Unfortunately my signature change will invalidate all the solutions up to this point, but yes it should be match_rot(n,s)
"since rot90(a) matches a in exactly _two_ places" for the example in the problem statement?
Solution Comments
Show commentsProblem Recent Solvers13
Suggested Problems
-
Replace NaNs with the number that appears to its left in the row.
2977 Solvers
-
14026 Solvers
-
Rank of magic square (for beginners)
44 Solvers
-
118 Solvers
-
Angles of the hands of a clock
36 Solvers
More from this Author50
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!