How Many Squares/Rectangles Does a Rubik Cube Have?

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

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

推荐阅读:
掌握这7大SEO优化技巧,提高网站自然排名  网络推广SEO优化是怎么做的?  工信部ICP备案备案系统全新改版,速度更快,用户体验更好  影响网站排名的反向链接细节因素盘点  seo优化六步走网站优化基础策略分享  SEO赚不到钱是病,得治!  影响网站排名的反向链接细节因素盘点  百度上线API主动推送功能  呵护,两个孩子  山水文人作文800字 
评论列表
添加评论