How Many Squares/Rectangles Does a Rubik Cube Have?
- Time:2020-09-10 12:55:33
- Class:Weblog
- Read:42
A Rubik cube usually have 6 sides. Take 3×3 rubik cube for example, each side has 9 little squares (1×1), 4 medium squares (2×2) and 1 big square (3×3). Therefore, there are 6 x (9 + 4 + 1) = 84 squares on a 3×3 rubik cube.

rubik-cube-3×3
How about counting the rectangles? It is a bit hard to count. Let’s write a function to count it. The algorithm is to bruteforce a pair of points (from top left corner to the right bottom). Then we compute the two sides of the rectangle to see if it is a square.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | function countSquaresAndRectangles(N) { let squares = 0; let rectangles = 0; for (let a = 0; a <= N; a ++) { for (let b = 0; b <= N; b ++) { for (let c = a + 1; c <= N; c ++) { for (let d = b + 1; d <= N; d ++) { if (d - b === c - a) { squares ++; } else { rectangles ++; } } } } } return [6 * squares, 6 * rectangles]; } let ans = countSquaresAndRectangles(3); console.log("There are " + ans[0] + " squares, and " + ans[1] + " rectangles."); |
function countSquaresAndRectangles(N) { let squares = 0; let rectangles = 0; for (let a = 0; a <= N; a ++) { for (let b = 0; b <= N; b ++) { for (let c = a + 1; c <= N; c ++) { for (let d = b + 1; d <= N; d ++) { if (d - b === c - a) { squares ++; } else { rectangles ++; } } } } } return [6 * squares, 6 * rectangles]; } let ans = countSquaresAndRectangles(3); console.log("There are " + ans[0] + " squares, and " + ans[1] + " rectangles.");
There are 84 squares, and 132 rectangles in a 3×3 rubik cube. For a 7×7 rubik cube, it will be hard to count. But the computers are really good at it (in fact, the above Javascript code runs pretty fast, for a small N).

rubik-cube-7×7
There are 840 squares, and 3864 rectangles for a 7×7 rubik cube.
–EOF (The Ultimate Computing & Technology Blog) —
Recommend:Top Reasons Why Your Blog Sucks at Making Money (and How to Fix
How To Write A Great Product Placement Blog Post
Structured Data for SEO Blogging
5 Ways a Blog Can Help Your Business Grow
How to Create Killer Project Proposals to Land Five-Figure Blogg
Why Local SEO Is the Best Option for Promoting Your Website
Greedy Algorithm to Group the Numbers/Items Given the Group Size
Design A Leaderboard using Priority Queue, Hash Map (unordered_m
5 Innovative Ways Ecommerce Businesses Are Leveraging Machine Le
How to Compute the Catalan Numbers using Dynamic Programming Alg
- Comment list
-
- Comment add