=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 = 0; i < 100; i++) arrA[i] = rand(); 长度为100的数组中填充随机数,可能有重复的数字
for(int i = 0; i < 20; i++) { 从100个数中抽取20个数
while(1){
int tempB = arrA[rand % 100]; 从100个数中随机抽取一个数
bool C = true; 定义布尔变量 如果重复则false 反之则true 默认重复
for(int j = 0; j < i; j++){
if (arrB[j] == tempB){ 判断有无重复
C = false;
}
}
if (C){ 如果无重复
arrB[i] = tempB; 赋值
break; 跳出本次While循环进行下个数的抽取
}
}
}
这种问题实现方法有很多种,这只是一种解决思路,C++语言编写,如果用转成C的话只需把所有的变量定义在函数头就可以了,rand()是STD库中提供的标准函数。
这个方法有个BUG就是如果当arrA数组中数小于20种,那么这段程序将陷入死循环中,解决办法是在抽取之前判断一下,arrA数组中数是不是小于20种,方法如下。
int datatype = 0; arrA数组中数据种类
for(int i = 0; i < 100; i++){
bool D = true;
for(int j = 0; j < i; j++){
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 100 a(i) = iNextFor i = 1 To 9999 x = Int(Rnd 101): y = Int(Rnd 101) t = a(x): a(x) = a(y): a(y) = tNextFor i = 1 To 50DebugPrint 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
ApplicationVolatile 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 = 0; i < 100; i++) { listAdd(rNext(1, 100)); } int[] x 中,不包含重复的数 int[] x = listDistinct()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结束,用以添加花括号
公式的计算原理,利用数据在区域内的位置与行号(或列号)做比较,从而统计不重复数据的个数
优点是当区域内存在空值时,公式计算依然正确,我现在增驾A2,在增驾之前扣了5分,若没有处理,则拿到新证这5分算在A2的里面的。
根据《机动车驾驶证申领和使用规定》
第六十九条机动车驾驶人在一个记分周期内记分未达到12分,所处罚款已经缴纳的,记分予以清除;记分虽未达到12分,但尚有罚款未缴纳的,记分转入下一记分周期。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)