C#生成不重复的随机数组
1、基本思路#
例如,我要在0~10中随机取出5个数,且这5个数不能重复,那基本思路就是:
(1)在一个数组A中保存0~10的数值,然后声明一个长度为5的数组B;
(2)每次在0~10的范围内随机生成一个数
(3)将步骤2获取的数值作为索引获取数组A的数值,并将该值赋给数组B,同时移除数组A中的该值
(4)训练5次,得到数组B
此时数组B中包含的就是5个不重复,且数值范围在0~10内的数组
2、代码实现#
` private int[] GetRandomArray(int number, int minNum, int maxNum)
{
List<int> randArray = new List<int>();
for (int i = minNum; i <= maxNum; i++)
{
randArray.Add(i);
}
int[] resultArray = new int[number];
var buffer = Guid.NewGuid().ToByteArray();
int seed = BitConverter.ToInt32(buffer, 0);
var random = new Random(seed);
for (int i = 0; i < number; i++)
{
var index = random.Next(0, randArray.Count);
var rand = randArray[index];
resultArray[i] = rand;
randArray.Remove(rand);
}
return resultArray;
}`
作者:dongweian
出处:https://www.cnblogs.com/dongweian/p/17333061.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
分类:
算法
Buy me a cup of coffee
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!