概述
早上和一个朋友聊怎么生成6位唯一随机数,因为并不要求很强的随机,想到的方法是:首先申请一个大小为n的数组a[n],填入一段连续的数字,随机一个[0,n)的序号x,取出a[x]的值作为结果返回,将a[n-1]的值覆盖到a[x]的位置,下次取值,随机一个[0,n-1)的序号x1,取出对应位置的值,并将a[n-1]的值覆盖到a[x1],重复执行,直到取n次后,没有值可以取了,再填充新的数据。
比如:生成一个数字a[5] = [0, 1, 2, 3, 4],随机[0,5)的数2 取出a[2] = 2,返回结果, 将最后一个元素4放到第2个位置上,得到数组a[5] = [0, 1, 4, 3, 4],再次取随机数时,随机一个[0-4)的数1,取出a[1]=1,返回结果,将最后一个元素3(数组大小是5,但是最后一个4已经没有意义了),放到第1个位置上,得到数字a[5] = [0, 3, 4, 3, 4],之后再取随机,使用同样的方法,从前3个数字中取[0, 3, 4],等数组中的数字都使用完,重新填充数组得到[5, 6, 7, 8, 9] ,再次使用。
最后
以上就是复杂钢铁侠为你收集整理的生成随机唯一数的全部内容,希望文章能够帮你解决生成随机唯一数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复