现有n种不同形状的宝石,每种n颗,共 n2颗。同一种形状的n颗宝石分别具有n种不同的颜色 c1,c2,…cn中的一种颜色。欲将这 n2颗宝石排列成n行n列的一个方阵,使方阵中每一行和每一列的宝石都有n种不同形状和n种不同颜色。试设计一个算法,计算出对于给定的n,有多少种不同的宝石排列方案。