Mathematica 简单的洗牌算法生成5*5注意力训练矩阵
2019-06-14 本文已影响0人
赵禾禾
应用场景
-
可以用来生成 5*5的矩阵,用来训练注意力
-
“舒尔特方块”。舒尔特方格是全世界最简单有效,并且最科学的专注力训练法。你需要做的就是在最短的时间里,按顺序从1数到10
-
我们的目标就是对1-25进行洗牌,这样每次都能生成新的矩阵
算法思路
- 参考python洗牌算法
- 先生成一个25个数的a列表
- 新建一个列表b
- 生成随机数p
- 以随机数为索引,引用a列表中的元素,附加到b列表
- 然后从a列表中删除该元素
- 进入循环,反复附加到新列表,删除旧列表,直到a中参数为0
代码如下
ClearAll[a, b, p, b]
a = Range[25];
b = {};
While[Length[a] > 0,
l = Length[a];
p = RandomInteger[{1, l}];
b = AppendTo[b, a[[p]]];
(*Print[a];*)a = Drop[a, {p}]]
ArrayReshape[b, {5, 5}] // MatrixForm