随机生成不重复数值

很适合初学者:

第一种方法用while循环。记得while的条件,小心死循环。

  public void BuildRandom()
        {
            int[] i = new int[10];
            Random r = new Random();
            int icount = 0;
            while (icount < 10)
            {
                int h = r.Next(1, 11);
                if (!i.Contains(h))
                {
                    Label1.Text += h.ToString() + ",";
                    i[icount] = h;
                    icount++;
                }
            }
        }

第二种方法:

  public void BuildRandom()
        {
            int[] i = new int[100];
            Random r = new Random();
            for (int j = 0; j < 101; j++)
            {
                int h = r.Next(1, 101);
                if (!i.Contains(h))
                {
                    i[j] = h;
                }
                else
                {
                    j = j - 1;
                    if (!i.Contains(0))
                    {
                        break;
                    }
                }
            }
        }

以上两个方法,本人比较喜欢第一个方法。因为第一个方法简洁,思路清晰。

时间: 2024-09-30 00:16:05

随机生成不重复数值的相关文章

咸蛋系列一●《模板模式构建随机对象生成》3 自定义扩展,随机生成不重复汉字

目前网上随机生成汉字的源码很多,无外乎生成四个数字,前两个构成区码,后两个构成位,然后使用区位码对应的16进制编码转换成汉字(可参考http://www.cnblogs.com/navicy/archive/2005/05/08/150756.html). 也就是说,没生成一个汉字,需要生成4个随机数,其实,仔细想想大可不如此麻烦. 研究区位码表(http://www.mytju.com/classCode/tools/QuWeiMa_FullList.asp),我们可以发现: 1. 16进制编

随机生成不重复的数

class Program {  static void Main(string[] args) {   Console.WriteLine("请输入要生成随机数的范围1-?"); //接收用户输入的字符   string str=Console.ReadLine ();    int it; //尝试转换用户输入的是否能转换成整型,转换成功赋值给it   bool b = int.TryParse(str, out it);   if (b == true)   {    Conso

随机生成不重复的数组

function random(arr) { var newArr = []; var temp = {}; function randomNumber() { for (var i = 0; i < arr.length; i++) { var ArrIndex = Math.floor(Math.random()*arr.length); if(!temp[arr[ArrIndex]]) { newArr.push(arr[ArrIndex]) temp[arr[ArrIndex]]=1;

有bug的随机生成不重复1-9的代码

#include "pch.h" #include "stdio.h" #include "stdlib.h" #include "time.h" int m[9] = {0}; int main(void) { srand(time(0)); for (int i = 1; i < 10; i++) { m[i - 1] = rand()%9+1; for (int j = 0; j < i - 1; j++)

js选择颜色小游戏(随机生成不含重复数字的数组,通过数组中的数控制定义好的数组)

<!DOCTYPE html><html> <head> <meta charset="utf-8"> <title>js网页版小游戏</title> <style media="screen"> .wrap { width: 577px; outline: 1px solid hotpink; margin: 100px auto; box-shadow: 0 0 5px; } .

C#生成不重复随机字符串类

本文实例讲述了C#生成不重复随机字符串类.分享给大家供大家参考.具体如下: 这个C#类用于随机产生不重复的字符串,可以指定字符串范围,可以指定要产生字符串的长度 using System; namespace DotNet.Utilities { public class RandomOperate { // 一:随机生成不重复数字字符串 private int rep = 0; public string GenerateCheckCodeNum(int codeCount) { string

随机生成一组不重复的随机数组

public string RadomNumArray() { Random r = new Random(); int a = 0; int[] num = new int[6]; string text = ""; for (int i = 0; i < 6; i++) {//循环生成6个数字 a = r.Next(0, 99);//随机生成0到99之间的数字 num[i] = a; for (int k = 0; k < num.Length; k++) {//遍历数

转:在0~N(不包括N)范围内随机生成一个长度为M(M &lt;= N)且内容不重复的数组

1. 最朴素暴力的做法. void cal1() { int i = 0, j = 0, num = 0; int result[M]; result[0] = rand() % N; //第一个肯定不重复, 直接加进去 for (i = 1; i < M; i++) //获得剩下的(M-1)个随机数 { num = rand() % N; //生成0 ~ N之间的随机数字 for (j = 0; j < i; j++) { if (num == result[j]) //如果和result数

随机生成前N个不重复的整数

package cn.ds; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Random; /** * 测试随机生成前N个不重复的整数 *