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

随机无重复数算法

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

阅读全文

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

热点内容
vue类似电脑文件夹展示 浏览:111
后备服务器有什么功效 浏览:268
连不上服务器怎么连 浏览:600
什么构架的可以刷安卓系统 浏览:771
爱奇艺APP怎么兑换CDK 浏览:994
程序员买4k显示器还是2k显示器 浏览:144
python多进程怎么多窗口 浏览:818
电脑文件夹怎么取消类别 浏览:47
cad拉线段命令 浏览:924
如何用电脑清理手机没用的文件夹 浏览:100
储存层次结构对程序员的意义 浏览:477
微信文件夹查看器 浏览:952
android视频聊天开源 浏览:552
思科iso命令 浏览:944
手机网页源码里的视频地址 浏览:681
哈利波特魔法觉醒要怎么选服务器 浏览:993
情感交友网站php 浏览:942
id下载不了app怎么回事 浏览:996
有什么好看的服务器小说 浏览:293
程序员四级没过有什么影响 浏览:540