来自罗艺荣的问题
【matlabn阶矩阵使用到拉丁方使用两种方法第一种:输出一个n×n的拉丁方阵,且每次调用的时候结果随机(也就是在所有可能的拉丁方阵里随机输出一个)。一个生成随机拉丁方的思路是:先】
matlabn阶矩阵使用到拉丁方
使用两种方法
第一种:输出一个n×n的拉丁方阵,且每次调用的时候结果随机(也就是在所有可能的拉丁方阵里随机输出一个)。一个生成随机拉丁方的思路是:先生成一个最简单的n×n的拉丁方(第一行:12..n-1n;第二行:23..n1;第三行:34..12;……;最后一行:n12..n-1),然后通过整行和整列随机交换的方式生成一个随机的拉丁方。
第二种:用循环的方法,就是通过for或while循环,对方阵中的每个元素赋值(逐个、逐行或逐列均可);而矩阵的方法是尽量通过利用矩阵的操作而不是循环来生成拉丁方。事实上,完全不用循环也可以生成拉丁方(例如让第一行是1:n,其他行中的其他元素均为1,然后用cumsum函数累加后,用mod对n取余数,就可以生成一个基本的拉丁方;也可以通过对magic函数产生的幻方取余数得到,但后者只对n为奇数时有效),但这些方法已经超出了本次练习的内容。所以完成作业时,两种方法只要不完全相同,且至少有一个利用了对矩阵的操作就可以。
1回答
2020-05-24 18:15