首页 > 编程语言 >C#生成不重复的随机数组

C#生成不重复的随机数组

时间:2023-04-19 14:00:21浏览次数:37  
标签:10 随机数 C# minNum 数值 重复 int 数组

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;
    }`

标签:10,随机数,C#,minNum,数值,重复,int,数组
From: https://www.cnblogs.com/dongweian/p/17333061.html

相关文章

  • SQL——CHARINDEX,找到字符(char)的位置(index)
    DECLARE@ItemCodeVARCHAR(50)SET@ItemCode='1,2,34,56,78,9,0'WHILE(CHARINDEX(',',@ItemCode)<>0)BEGINPRINT(SUBSTRING(@ItemCode,1,CHARINDEX(',',@ItemCode)-1))SET@ItemCode=STUFF(@ItemCode,1,CH......
  • xrync
    #!/bin/bash#1.参数个数if[$#-lt1]thenechoNOTEnoughArguement!!!exit;fi#2.遍历所有机器forhostinsh1sh2sh3doecho================$host================forfilein$@do#判断文件是否存在if[-e$file]then#获取父目录pdir=$(cd-P$(dirname$......
  • 280049C_001
    280049C入门入门帮助文档\ti\c2000\C2000Ware_版本\device_support\f28004x\docs目录下的《F28004x_FRM_EX_UG》寄存器开发和库函数开发寄存器开发(bit-field)例程:∼/device_support/f28004x/examplesdirectory库函数开发(driver_library)例程:∼/driverlib/f28004......
  • docker卸载
    linux环境卸载docker的方法如下:yumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\......
  • 19c环境,运行DBCA创建CDB时,报错ORA-01519: error while processing file:?/rdbms/admin
    1、同事新搭建的一套19CRAC,补丁为19.10,运行DBCA安装CDB数据库时报错,错误日志如下所示:ORA-01519:errorwhileprocessingfile:?/rdbms/admin/dcore.bsq.....ORA-00604:erroroccurredatrecursiveSQLlevel1ORA-01119:errorincreatingdatabasefile'+DATA01/CDB1/pdb......
  • 剑指chatGPT,马斯克:你们暂停一下,我追赶追赶
    前言近期,马斯克被曝出购买了大约1万个GPU,并从DeepMind处招募到AI人才,打算开发自己的大语言模型(LLM)项目。啥是GPU,就是图形处理器。一般用于构建大型语言模型所需。GPU价格不菲,以英伟达为例,其为大型AI模型生产的GPU价格高达1万美元。有趣的是,马斯克还多次抱怨推特财务状况不稳定......
  • docker启动及进入容器
    启动指令dockerrun-tid--namecentos_1--privileged=truecentos:centos7.7.1908/sbin/init分配核指令--cpuset-cpus0-69 dockerrun-tid--namecentos_1--privileged=true-m160G--memory-swap-1--shm-size512m--cpus70centos:centos7.7.1908/sbin/init......
  • 搭建rsyncd服务
    前言rsync常用来做文件传输和同步。本文示例中客户端通过rsync同步服务端的/home/tmp目录到本地(不是将客户端的文件同步到服务端)。环境信息IP系统版本rsync版本说明192.168.0.10CentOS7.93.1.2服务端192.168.0.11CentOS7.93.1.2客户端配置服务端安......
  • 模拟oracle死锁并确认相关表以及行等信息
    文档课题:模拟oracle死锁并确认相关表以及行等信息.数据库:oracle11.2.0.4应用场景:开发反馈某时间段出现死锁现象,dba需提供造成死锁的相关信息,如具体哪张表、哪条语句、哪行数据等信息.1、模拟异常1.1、建测试表--创建测试表t1和t2.SYS@orcl>connscott/tiger;Connected.SC......
  • WPS和excel默认切换
       ......