qq_41701572 2018-08-31 12:33 采纳率: 18.2%
浏览 621
已结题

关于向量置乱算法与rand()的一种实现之间的问题,请看图

图片说明图片说明图片说明
我不懂的是答案讲的是什么意思,为什么rand()这种实现获得的随机数要跟阶乘扯上关系,rand生成的不是一个一个的随机数字吗,为什么是一串随机数字呢?这样生成一串随机数字跟向量置乱有什么关系啊?为什么这种实现不能用于置乱算法?

  • 写回答

1条回答

  • threenewbee 2018-08-31 15:27
    关注

    rand每次生成一个伪随机数,它会同时产生一个新的种子(你的代码中的next)。
    如果给定一个种子,那么产生的随机数和下一个种子是确定的。
    使用相同的种子和确定的伪随机数算法,那么它产生的随机数和下一个种子是确定的。因此下一个随机数和下下个随机数的种子也是确定的,……
    也就是说,用一个种子连续生成随机数n次,得到的随机数可以组成一个序列(一串随机数字)。
    之所以要考虑“向量置乱”,是因为,我们有很多算法需要借助随机数去模拟(比如洗牌算法、随机排列组合),当然,在真正的随机数算法中这没有什么问题。
    问题是我们用的是伪随机数算法,伪随机数算法产生的随机数并非是真正的随机数,这就会导致用它作为模拟的基础的算法可能出现误差。
    这文章就是分析这个的。

    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看