How Many Squares/Rectangles Does a Rubik Cube Have?

  • 时间:2020-09-10 12:55:33
  • 分类:网络文摘
  • 阅读:126 次

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-3x3-1-300x300 How Many Squares/Rectangles Does a Rubik Cube Have? brute force javascript

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-7x7-1 How Many Squares/Rectangles Does a Rubik Cube Have? brute force javascript

rubik-cube-7×7

There are 840 squares, and 3864 rectangles for a 7×7 rubik cube.

–EOF (The Ultimate Computing & Technology Blog) —

推荐阅读:
How to Print Immutable Linked List in Reverse using Recursion or  The Most Useful Tools for Reverse Phone Lookup  How to Solve the WIFI (Wireless Networks) Intermittency Issues?  How to Reverse a Linked List in Javascript?  Bash Function to Check if a Kubernetes Pod Name is Valid  VBScript Function to Convert an Integer to Binary String Represe  Find Maximum Connected Colors (Values) in a 2D Grid using DFS or  Algorithms to Shift a 2D Grid/Matrix In-Place  How Martha Stewart Became One Of The Best Bloggers On The Web  Social Media and Dating Apps: How They’re Changing Love 
评论列表
添加评论