1-100不重复随机数

1-100不重复随机数

问:在Excel中如何得到1到100不重复的随机数?
  1. 答:=INT(RAND()*(b-a)+a)表示a-b之间的整数,>=a,<b
    如果在三十个单元格中输入=INT(RAND()*(101-1)+1),可以实现1-100随机,但有可能有重复。
    但如果实现你说的30个不重复的,我想可以这样
    在三十个单元格中输入
    =INT(RAND()*(15-1)+1),
    =INT(RAND()*(30-15)+15),
    ...
    =INT(RAND()*(85-70)+70),
    =INT(RAND()*(101-85)+85),
    我随便写的,意思是这样。按F9,可以实现随机。不知道能不能达到您的效果。:)
  2. 答:=RANDBETWEEN(1,100)
  3. 答:=100*RAND()
问:excel中在取1-100之间不重复的随机整数,如何实现?使用什么函数?
  1. 答:=100*FIXED(RAND())+1
    RAND()
    表示取0-1的随机小数(1不取到,0取到)
    FIXED表示向小取整:例如4.5取4
    由于RAND()
    表示大于等于0小于1的数,所以最后还要加1才等于1-100之间的整数。
  2. 答:如果我们要用VBA生成一列不重复的随机整数,可以用下面的VBA代码,可以在A1:A100中产生1-100的不重复随机数。
    Sub
    RndNumberNoRepeat()
    Dim
    RndNumber,
    TempArray(99),
    i
    As
    Integer
    Randomize
    (Timer)
    '初始化随机数生成器
    For
    i
    =
    To
    99
    '产生包含1-100的不重复的随机数列
    TempArray(i)
    =
    i
    Next
    i
    For
    i
    =
    99
    To
    Step
    -1
    RndNumber
    =
    Int(i
    *
    Rnd)
    '在A1:A100中输入这些数字
    Cells(100
    -
    i,
    1)
    =
    TempArray(RndNumber)
    +
    1
    TempArray(RndNumber)
    =
    TempArray(i)
    Next
    i
    End
    Sub
  3. 答:举例,a1输入
    =rand()
    b1输入=rank(a1,$a$1:$a$10),下拉a1:b1到第10行。
    这样b1:b10就是10个不重复的整数。
    可以修改$10为更大的数并拉更多行,得到更多不重复的数字
问:C# 如何生成不重复的1-100随机数。
  1. 答:有两种思路:1、随机生成一个1-100的数,然后判断重复,如果重复再生成一次;
    2、创建一个数组,元素内容为1-100,对元素随机排序。
    请参考下面的代码
    public void GenerateRandomNums()
    {
    List list = new List();
    Random rand = new Random();
    int value;
    while (true)
    {
    if (list.Count == 20)
    {
    Console.WriteLine("U should get the 20 random numbers. ");
    break;
    }
    value = rand.Next(1, 21);
    if (!list.Contains(value))
    {
    list.Add(value);
    }
    }
    foreach (int temp in list)
    {
    Console.WriteLine("Num:{0}.", temp);
    }
    }
    第二种思路:
    int[] a = { 1, 2, 4, 5, 3, 6, 7, 8 };
    int[] b = a.OrderBy(x => Guid.NewGuid()).ToArray();
    foreach (int v in b)
    Console.WriteLine(v);
    Console.ReadKey();
  2. 答:            Random r = new Random();
                int[] nums = Enumerable.Range(1, 100)
                    .OrderBy(x => r.Next()).ToArray();
                foreach (int n in nums)
                    Console.WriteLine(n);
1-100不重复随机数
下载Doc文档

猜你喜欢