如何解决您如何基于密码生成经过改组的数组子集,以便相同的密码将输出相同的子集?
| 我的PHP应用程序中有一个数组,我需要开发一个函数,给定数组和任意字符串密码,该函数将输出大型数组的随机子集。每次使用相同的密码调用该函数时,输出的数组的子集和顺序应相同。 我可以通过使用MD5之类的哈希的整数值来基于密码生成伪随机数,但是我不确定如何使用它来实现: 1)根据哈希从数组中选择X(固定数,或者最好是在给定范围内由哈希选择的数字)随机项 2)根据哈希将这些项目随机排列/重新排列为子集 对于我的实现,冲突是可以接受的,因为数组的大小相对较小。这是一个非常有趣的问题-任何人都不知道如何解决?解决方法
对PHP的实现了解不多,但是我认为通用算法将涉及使用您的哈希值植入伪随机数生成器。
播种伪随机数生成器可确保您每次获得的伪随机数都具有相同的顺序。使用来自种子生成器的第一个伪随机数对数组进行混洗。然后,使用伪随机数生成器的下一个值选择一个介于1和数组大小之间的数字;从数组中切出这些第一个“ 0”元素。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。