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

时间:2013-12-11 19:25:25

标签: c# unique-key

请你给我答案如何生成没有相同数字的数字? 因为我正在创建一个彩票计划,并且我希望我的程序没有相同的数字,因为彩票没有具有相同数字的输出。

3 个答案:

答案 0 :(得分:1)

我相信你想要做的是使用Set专门的集合。选择Set中剩余的随机项,然后将其从集中删除。选择另一个。

答案 1 :(得分:0)

小心多线程和随机初始化。

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

用法:

var items = Randoms(50).Distinct().Take(10).ToArray();

答案 2 :(得分:0)

您现在需要将它放在递归方法中,但这是一种简单的方法。

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

小提琴:

http://ideone.com/p39Lhg