How Many Squares/Rectangles Does a Rubik Cube Have?

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

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) —

推荐阅读:
正好可以把它平均切成2个相等的正方体  数学题:求三角形ABC中阴影正方形的边长是多少厘米  数学题:三角形ABF的面积比三角形CEF的面积大8平方厘米  数学题:这个式子是不是某个数的平方  天天感恩节|小学作文  有趣的传统佳节  初二感恩父亲节作文800字  关于保护视力的作文  传统节日端午节作文  五年级感恩父亲节作文300字 
评论列表
添加评论