1-100不重复随机数
2023-01-17阅读(385)
问:在Excel中如何得到1到100不重复的随机数?
- 答:=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,可以实现随机。不知道能不能达到您的效果。:) - 答:=RANDBETWEEN(1,100)
- 答:=100*RAND()
问:excel中在取1-100之间不重复的随机整数,如何实现?使用什么函数?
- 答:=100*FIXED(RAND())+1
RAND()
表示取0-1的随机小数(1不取到,0取到)
FIXED表示向小取整:例如4.5取4
由于RAND()
表示大于等于0小于1的数,所以最后还要加1才等于1-100之间的整数。 - 答:如果我们要用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 - 答:举例,a1输入
=rand()
b1输入=rank(a1,$a$1:$a$10),下拉a1:b1到第10行。
这样b1:b10就是10个不重复的整数。
可以修改$10为更大的数并拉更多行,得到更多不重复的数字
问:C# 如何生成不重复的1-100随机数。
- 答:有两种思路: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(); - 答: Random r = new Random();
int[] nums = Enumerable.Range(1, 100)
.OrderBy(x => r.Next()).ToArray();
foreach (int n in nums)
Console.WriteLine(n);