舒尔特表的生成算法

        舒尔特表是一种训练人的注意力的表格,一般是方格,从3阶到6阶比较常用,每一个小格内显示一个乱序列排列且不重复的数字,比如3阶舒尔特表每一排的数字可能是4,2,5;8,6,7;3,9,1。这种表格的使用方式为从1一直点到最大的数值,然后记录用时,用时越快表示注意力越集中。

        生成舒尔特表的过程也就是将一组数字随机打乱的过程,然后依次填充到每个小格里去,我们可以封装一个函数,用于生成从最小值min到最大值max之间的一个随机数。暂取名为GetRandom(min, max),假定要生成3阶表,生成过程如下:

        构造9个容器,这9个容器分别装着1-9这些数字。首先,从1-9随机生成一个数,填到第一个格里,比如是3,于是就从第3个容器中取出3来,现在第3个容器空了,就把3后面的容器中的数依次向前挪,最后第9个容器空了,我们要从剩下的8个数中随机取出一个,于是调用GetRandom(1,8), 比如又是3,那么从第3个容器中再取出数来,现在这个数是4,填充到第二个格。然后再把第4个容器到第8个容器中的数再往前挪一次。然后再调用GetRandom(1,7).以此类推。最后必然生成的是打乱的数字序列。

        这个算法时间主要消耗在移动容器中的数字上,对于生成100以内的乱序随机数,这足够用了,而且还比较好理解。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值