=IF(ROW(A1)=1,INDEX(A$1:A$100,RANDBETWEEN(1,100)),INDEX(A$1:A$100,SMALL(IF(COUNTIF(B$1:B1,A$1:A$100)=0,ROW($1:$100)),RANDBETWEEN(1,101-ROW(A1)))))
数组公式,需要按CTRL+SHIFT+回车,完成公式,下拉。
从长度为100的数字数组中随机抽取20个不重复的数字
int arrA[100] 长度为100的数组
int arrB[20]准备存放20个不重复的数字
for(int i = 0i <100i++) arrA[i] = rand()长度为100的数组中填充随机数,可能有重复的数字
for(int i = 0i <20i++) { 从100个数中抽取20个数
while(1){
int tempB = arrA[rand % 100]从100个数中随机抽取一个数
bool C = true定义布尔变量 如果重复则false 反之则true 默认重复
for(int j = 0j <ij++){
if (arrB[j] == tempB){ 判断有无重复
C = false
}
}
if (C){ 如果无重复
arrB[i] = tempB赋值
break跳出本次While循环进行下个数的抽取
}
}
}
这种问题实现方法有很多种,这只是一种解决思路,C++语言编写,如果用转成C的话只需把所有的变量定义在函数头就可以了,rand()是STD库中提供的标准函数。
这个方法有个BUG就是如果当arrA数组中数小于20种,那么这段程序将陷入死循环中,解决办法是在抽取之前判断一下,arrA数组中数是不是小于20种,方法如下。
int datatype = 0arrA数组中数据种类
for(int i = 0i <100i++){
bool D = true
for(int j = 0j <ij++){
if (arrA[j] == arrA[i]){ 逐次判断有无重复
D = false
}
}
if (D) {
datatype++
}
}
如果datatype大于等于20,再执行抽取数据 *** 作。
以上代码未经过编译器,不一定直接能编译过去,但思路已表达清楚,纯手敲,望采纳。
excel 求教 我要在1-37中随机抽取12个不重复的整数,改怎么做?
写了一段VBA程序,执行后,12个数据出现在A1:A12
Sub Get12in37()
Dim RN, I1, I2, X
I1 = 1
While I1 <13
RN = Int(1 + Rnd * 37)
X = 0
For I2 = 1 To I1 - 1
If RN = Range("A" &I2) Then X = 1
Next
If X = 0 Then
Range("A" &I1) = RN
I1 = I1 + 1
End If
Wend
End Sub
excel数据怎么提取不重复的数据
开要过滤的excel文档,鼠标单击数据区,然后点击菜单栏中【数据】--【筛选】如下图所示,
Excel如何提取不重复内容,excel如何过滤重复
点击【高级筛选】
Excel如何提取不重复内容,excel如何过滤重复
在d出的对话框中,选中【将筛选结果复制到其他位置】,如下图所示
求大神做一vb程序。0-100里随机抽取50个不重复的整数
Randomize TimerDim a(100) As IntegerFor i = 1 To 100a(i) = iNextFor i = 1 To 9999x = Int(Rnd * 101): y = Int(Rnd * 101)t = a(x): a(x) = a(y): a(y) = tNextFor i = 1 To 50Debug.Print a(i)Next
excell中怎么设置函数,按F9就能从1到30个数中随机抽取10个不重复的整数
假设在A2向下得到不重复的1到30的整数,A2公式:
=IF(ROW(A1)=1,RANDBETWEEN(1,30),LARGE(IF(COUNTIF(A$1:A1,ROW($1:$30))=0,ROW($1:$30)),RANDBETWEEN(1,30-ROW(A1)+1)))
数组公式,需要按CTRL+SHIFT+回车完成公式,下拉到A11;
生成数据后,每按一次F9将随机生成10个不重复的数据。
随机产生几个不重复的数,vb
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
Randomize
a = 10 * Rnd
1: b = 10 * Rnd
If b = a Then
GoTo 1
End If
2: c = 10 * Rnd
If c = b Or c = a Then
GoTo 2
End If
Text1 = a &b &c
End Sub
EXCEL中如何从1、2、3、4、5、6中随机取2个不重复的数字。谢谢
如果只用EXCEL内部函数,可以在两个格中分别输入公式=INT(RAND()*5+1)
然后不停按F9键,直到不重复为止.
还可以用自定义函数,可直接得到不重复结果.
函数代码 如下:
Function zrnd(a, b)
Dim c As Integer, d As Integer
Application.Volatile True
10:00
c = Rnd() * (6 - a) + a
d = Rnd() * (6 - a) + a
If c = d Then GoTo 10
zrnd = c &" " &d
End Function
在任意格中输入公式zrnd(1,6)就可以得到两个不重复的1至6的随机数.
怎么从arraylist中读出不重复的 随机数,数组里面没有重复的数
Random r = new Random() List<int>list = new List<int>() for (int i = 0i <100i++){list.Add(r.Next(1, 100)) }int[] x 中,不包含重复的数int[] x = list.Distinct().ToArray()
excel 一行数据 有多少个不重复的数据
假设你的数据在a1:g1,输入数组公式
=SUM(--(MATCH(A1:G1&" ",A1:G1&" ",0)=COLUMN(A:G)))
假设你的数据在a1:a7,输入数组公式
=SUM(--(MATCH(A1:A7&" ",A1:A7&" ",0)=ROW(1:7)))
公式输入后以ctrl+shift+enter结束,用以添加花括号
公式的计算原理,利用数据在区域内的位置与行号(或列号)做比较,从而统计不重复数据的个数
优点是当区域内存在空值时,公式计算依然正确,
卓越语音点名、梦畅语音点名。1、卓越语音点名是一款免费的随机抽取语音点名工具,可以随机抽取事先编辑好的人员名单并以语音的形式报出,是一款非常适合年会抽奖等场合的软件。
2、梦畅语音点名软件是一款支持语音播报点名结果的随机点名软件,可以自定义名单,点击开始,点名软件会快速滚动显示名字,增加紧张气愤。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)