不用随机数的洗牌算法

假设数组长度是54【54张牌】

那么,如如果是用随机数的算法,就取两个随机数a和b,然后交换ab的位置,如此反复n次。

这个思路的坏处是,随着n的增大,洗牌效果会变好。但是n的次数不好确定到底是多少。

如果不用随机数,那么可以这样来考虑:伪随机数。

关于伪随机数,我们可以用时间来生成。比如在java中,有一个System.currentMil...的一个函数,我们可以用它来生成一个随机数【通过取模的方式等】。然后再交换数组中的元素即可。

另外,也可以用这样的方法:申请54个线程,让他们一起start,这样每次线程跑起来,顺序肯定也是不确定的。也可以通过这样的 方法达到洗牌的效果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值