导航:首页 > 源码编译 > 随机无重复数算法

随机无重复数算法

发布时间:2023-02-01 01:35:51

‘壹’ 求一个特定区域内产生随机数不重复的算法

解答如下:

像这种题目就是求全排列的类型。
现在你题目中有y个数字,
第一次抽取时,共有y个数字可供选择,因此有y种可能性。

第二次抽取时,因不能重复,所以共有y-1个数字可供选择,因此有y-1种可能性。

第三次抽取时,也因不能重复,所以只有y-2个数字可供选择,因此有y-2种可能性。

根据上面可以类推出第四次,第五次……第y次
因此具体的答案就为:y*(y-1)*(y-2)*(y-3)……*{y-(y-1)} = y!

‘贰’ random 怎么实现随机数不重复方法 java

java中实现随机数不重复主要思想是使用hashset来保存每个生成的数据,因为set集合本身内部机制实现了不保存相同的数据,代码如下:

/**
*随机指定范围内N个不重复的数
*利用HashSet的特征,只能存放不同的值
*@parammin指定范围最小值
*@parammax指定范围最大值
*@paramn随机数个数
*@paramHashSet<Integer>set随机数结果集
*/
publicstaticvoidrandomSet(intmin,intmax,intn,HashSet<Integer>set){
if(n>(max-min+1)||max<min){
return;
}
for(inti=0;i<n;i++){
//调用Math.random()方法
intnum=(int)(Math.random()*(max-min))+min;
set.add(num);//将不同的数存入HashSet中
}
intsetSize=set.size();
//如果存入的数小于指定生成的个数,则调用递归再生成剩余个数的随机数,如此循环,直到达到指定大小
if(setSize<n){
randomSet(min,max,n-setSize,set);//递归
}
}

‘叁’ 如何生成一定范围内不重复的随机数

我不知道你什么语言我提供一个思路吧!
用户名+时间(毫微秒)+永无重复的随机数组
此套算法适合文件上传时用于解决文件名重复问题
理解:
用户名:确保用户名不重复,以此限制重复的可能性仅仅出现在某个具体用户的操作中!
毫微秒(Ticks):此数重复的可能性极低。
随机数组:方法是,确认要上传几个文件并记录数量,然后循环出一个随机数组,判断:若当前随机出的数字包含在数组中则循环次数+1(也就是当前循环变量-1)回跳一次循环,以此循环出与文件数相等的随机数组;此处再一次保证具体某一个用户在单次多文件上传时不会出现文件同名情况。
若功能符合上述条件,则可以做到永无重复的文件名!
随机数组代码:
int[] intNum = new int[FileCollect.Count];
for (int i = 0; i < FileCollect.Count;i++ )
{
Random dom = new Random();
int domNum = dom.Next(0, 20000);
if (intNum.Contains(domNum)&&i!=0)
{
i = i - 1;
}
else
{
intNum[i] = domNum;
}
}

‘肆’ 该如何让随机数不重复!!!我想不到了

Random需要一个种子, 如果没给用预设的, 因为每次都一样, 所以一定会按照相同顺序, 每次开启都一致.
常见做法就是将时间当作种子, 每次运行的时间都不会一样, 自然就不会重复了.

阅读全文

与随机无重复数算法相关的资料

热点内容
内核驱动编译v1 浏览:574
韩国电影伦理中文 浏览:67
大乐透复式算法计算器 浏览:845
啄木鸟40部 浏览:502
我的世界服务器版本下载地址 浏览:925
怎么制作一个游戏的服务器 浏览:800
python中xticks用法 浏览:905
西瓜视频解压软心砖 浏览:137
程序员被孤立怎么办 浏览:807
主角秦风重生小说免费全文阅读 浏览:937
电影名卧布吉岛 浏览:161
泰国肉肉电影 浏览:499
电影无处可逃结局是什么 浏览:102
压缩性模量 浏览:352
平安老师讲解压力化解 浏览:459
快递员的电影是什么名字 浏览:780
日本电影叫什么鱼的名字 浏览:663
找书pdf 浏览:392
高水平应届程序员有前途吗 浏览:79
哪个视频网站可以投屏还免费 浏览:283