Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何生成没有相同数字的随机数_C#_Unique Key - Fatal编程技术网

C# 如何生成没有相同数字的随机数

C# 如何生成没有相同数字的随机数,c#,unique-key,C#,Unique Key,你能给我一个答案吗?如果没有相同的数字,我如何生成数字? 因为我正在创建一个彩票程序,我希望我的程序没有相同的号码,因为彩票没有具有相同号码的输出。我相信您要做的是使用集合专用集合。随机选取集合中剩余的项目,然后将其从集合中移除。选择另一个。多线程和随机初始化时要小心 static Random r = new Random(); static IEnumerable<int> Randoms(int max) { while(true) yield retu

你能给我一个答案吗?如果没有相同的数字,我如何生成数字?
因为我正在创建一个彩票程序,我希望我的程序没有相同的号码,因为彩票没有具有相同号码的输出。

我相信您要做的是使用集合专用集合。随机选取集合中剩余的项目,然后将其从集合中移除。选择另一个。

多线程和随机初始化时要小心

static Random r = new Random();
static IEnumerable<int> Randoms(int max)
{
    while(true)
        yield return r.Next(max);
}

现在您需要将其放在递归方法中,但这里有一个简单的方法

using System;
using System.Collections.Generic;
using System.Linq;

public class Test
{
    public static void Main()
    {
        List<int> numbers = new List<int>();
        numbers.Add(1);
        numbers.Add(2);
        numbers.Add(3);
        numbers.Add(4);
        numbers.Add(5);
        numbers.Add(6);
        numbers.Add(7);

        Random rand = new Random();

        var numbersSfle = numbers.OrderBy(item => rand.Next()).ToList();
        Console.Write(numbersSfle[0].ToString());
        numbers.RemoveAt(0);


        numbersSfle = numbers.OrderBy(item => rand.Next()).ToList();
        Console.Write(numbersSfle[0].ToString());
        numbers.RemoveAt(0);
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
公开课考试
{
公共静态void Main()
{
列表编号=新列表();
增加(1);
增加(2);
增加(3);
增加(4);
增加(5);
增加(6);
增加(7);
Random rand=新的Random();
var numbersSfle=numbers.OrderBy(item=>rand.Next()).ToList();
Console.Write(numberssfile[0].ToString());
数字。删除(0);
numbersSfle=numbers.OrderBy(item=>rand.Next()).ToList();
Console.Write(numberssfile[0].ToString());
数字。删除(0);
}
}
小提琴:


搜索“洗牌”。你为什么这么说,彩票号码不一样。你的意思是不是一组数字中的数字不一样?可能是@Hogan的重复?当然你知道彩票是如何运作的。无需替换的
k
个数的组合。@Hogan当您有彩票时,您选择的是1到100之间的5个数,但这5个数应该是唯一的。彩票从来不是1,1,1,1,1。
using System;
using System.Collections.Generic;
using System.Linq;

public class Test
{
    public static void Main()
    {
        List<int> numbers = new List<int>();
        numbers.Add(1);
        numbers.Add(2);
        numbers.Add(3);
        numbers.Add(4);
        numbers.Add(5);
        numbers.Add(6);
        numbers.Add(7);

        Random rand = new Random();

        var numbersSfle = numbers.OrderBy(item => rand.Next()).ToList();
        Console.Write(numbersSfle[0].ToString());
        numbers.RemoveAt(0);


        numbersSfle = numbers.OrderBy(item => rand.Next()).ToList();
        Console.Write(numbersSfle[0].ToString());
        numbers.RemoveAt(0);
    }
}