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

C#使用随机数生成元素不重复的数组

时间:2023-11-22 10:24:45浏览次数:29  
标签:随机数 C# random 生成 int vs 数组

通过for与while的嵌套做了一个排除相同数字的审查机制,如果生成了数组中已有的数字就重新生成一个数字,继续循环排查,直到生成的数字是数组中不存在的数字

数组长度不能超过随机数范围否则会死循环

using System;

namespace notRepeat
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] vs = new int[10];//数组长度不能超过随机数选取范围
            Random random = new Random();
            bool a;
            for (int i = 0; i < vs.Length; i++)
            {
                vs[i] = random.Next(1, 11);//此处代表随机数从[1,11)范围内取
                a = true;
                while (a)
                {
                    int k = 0;
                    for (int j = 0; j < i; j++)
                    {
                        if (vs[i] == vs[j])
                        {
                            k++;//如果生成的数在数组中不存在则k值不变
                            vs[i] = random.Next(1, 11);
                            break;//结束内层for循环
                        }
                    }
                    if(k == 0)//k值为0代表生成的数在数组中不存在
                    {
                        a = false;//结束while循环
                    }
                }
            }
            foreach (var temp in vs)//foreach输出数组内容
            {
                Console.WriteLine(temp);
            }
        }
    }
}

  非原创.

标签:随机数,C#,random,生成,int,vs,数组
From: https://www.cnblogs.com/daboluo/p/17848297.html

相关文章

  • git clone 时拉取子模块
    gitclone时拉取子模块 对还未下载的项目:gitclone--recursive对已下载的项目:gitsubmodulesyncgitsubmoduleupdate--init--recursive......
  • AIGC数据标注的影响与应用等
    数据标注是将原始数据进⾏加⼯处理,⽐如分类、拉框、注释、标记等操作转换成机器可识别信息的过程。国内数据标注⼚商,⼴义称之为基础数据服务提供商,通常需要完成数据集结构/流程设计、数据处理、数据质检等⼯作,为下游客⼾提供通⽤数据集、定制化服务、数据闭环⼯具链等。这也是本......
  • docker问题:overlay2占用磁盘空间过大
     实践:dockersystemprune-a-f   [root@imagedocker]#du--max-depth=1-h4.0K./swarm4.0K./containers4.0K./trust138M./image16K./plugins4.0K./tmp51M./volumes74G./overlay296K./network19M./buildkit4.0K./ru......
  • Civil 3D使用COM API时对象版本号的查询方法
     查询对象版本有多种方法,方法一:在developer'sguide中查找,APIDeveloper'sGuide→AbouttheDeveloper'sGuide→NewFeaturesintheAutoCADCivil3DAPI→COMChanges这里有详细的介绍,不仅有当前的版本,还有上一版的版本号。方法二:在AutoCAD命令行中输入命令AeccVersio......
  • Cocos Creator 教程 : 坐标系统
    主要简单讲解下坐标系统,由于Creator是基于Cocos2dx,也就是使用OpenGL的坐标系,即原点在屏幕左下角,x轴向右,y轴向上。然后讲解下本地坐标与世界坐标,最后讲下坐标转换。点击链接加入群聊【unity/cocos交流二群】坐标系基于OpenGL坐标,也就是原点在屏幕左下角,x轴向右,y轴向上。下面讲解......
  • CAJ转PDF文件
    使用CAJViewer1、使用CAJViewer打开想要转换的文件;2、点击“文件”选项卡,然后选择“打印”选项卡,或者直接按快捷键ctrl+p打开;  3.接下来重点来了,其实我们并不是真的要将CAJ文档打印出来,只是利用PDF虚拟将文档以PDF格式打印并保存下来,所以此时在打印机设备中选择一款PDF......
  • 字字珠玑,想了解Cocos Creator项目结构,看这篇就够了
    一、项目文件夹结构初次创建并打开一个CocosCreator项目后,开发者的项目文件夹将会包括以下结构: 下面我们将会介绍每个文件夹的功能。1.资源文件夹(assets)assets将会用来放置游戏中所有的本地资源、脚本和第三方库文件。只有在assets目录下的内容才能显示在资源管理器中......
  • 实验2 C语言分支与循环基础应用编程
    实验任务11#include<stdio.h>2#include<stdlib.h>3#include<time.h>45#defineN56#defineN13747#defineN24658intmain(){9intnumber;10inti;11srand(time(0));12for(i=0;i<N;++i){13nu......
  • Docker部署phpMyAdmin
    一、简介phpMyAdmin是众多MySQL图形化管理工具中使用最为广泛的一种,是一款使用PHP开发的基于B/S模式的MySQL客户端软件,该工具是基于Web跨平台的管理程序,并且支持简体中文,用户可以在官网上下载最新版本的。phpMyAdmin为Web开发人员提供了类似Access,SQLServer的图形化......
  • 【产品安全平台】上海道宁与Cybellum将整个产品安全工作流程整合到一个专用平台中,保持
     Cybellum将整个产品安全工作流程整合到一个专用平台中使设备制造商能够保持他们构建的互联产品的网络安全和网络合规性  产品安全性对每个人来说都不一样每个行业的系统、工作流程和法规都存在根本差异因此,Cybellum量身定制了Cybellum的平台和技术以......